summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* qmi-firmware-update: new generic monitor to debug all udev eventsaleksander/qmi-firmware-updateAleksander Morgado2017-01-203-3/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | As soon as we know the sysfs path of the device to use, we'll setup a generic udev monitor for all tty, net and usb devices so that we get notified of all their additions or removals. E.g. when going from normal mode to QDL download mode: [20 ene 2017, 12:49:26] [Debug] [qfu-udev] event: remove ttyUSB0 [20 ene 2017, 12:49:26] [Debug] [qfu-udev] event: remove ttyUSB1 [20 ene 2017, 12:49:26] [Debug] [qfu-udev] event: remove 4-1.4:1.0 [20 ene 2017, 12:49:26] [Debug] [qfu-udev] event: remove wwan0 [20 ene 2017, 12:49:26] [Debug] [qfu-udev] event: remove 4-1.4:1.2 [20 ene 2017, 12:49:26] [Debug] [qfu-udev] event: remove ttyUSB2 [20 ene 2017, 12:49:26] [Debug] [qfu-udev] event: remove 4-1.4:1.3 [20 ene 2017, 12:49:26] [Debug] [qfu-udev] event: remove cdc-wdm2 [20 ene 2017, 12:49:26] [Debug] [qfu-udev] event: remove 4-1.4:1.8 [20 ene 2017, 12:49:26] [Debug] [qfu-udev] event: remove wwan1 [20 ene 2017, 12:49:26] [Debug] [qfu-udev] event: remove cdc-wdm3 [20 ene 2017, 12:49:26] [Debug] [qfu-udev] event: remove 4-1.4:1.10 [20 ene 2017, 12:49:26] [Debug] [qfu-udev] event: remove 4-1.4 [20 ene 2017, 12:49:27] [Debug] [qfu-udev] event: add 4-1.4 [20 ene 2017, 12:49:27] [Debug] [qfu-udev] event: add 4-1.4:1.0 [20 ene 2017, 12:49:27] [Debug] [qfu-udev] event: add ttyUSB0 [20 ene 2017, 12:49:27] [Debug] [qfu-udev] waiting device (tty) matched: ttyUSB0 [20 ene 2017, 12:49:27] [Debug] [qfu-updater] TTY device found: /dev/ttyUSB0
* qmicli,dms: fix typos and poorly formated text messagesAleksander Morgado2017-01-191-2/+2
|
* qmi-firmware-update: fix CRC checkingChristophe Ronco2017-01-171-1/+1
| | | | CRC is not well checked if there is an escape char in input buffer.
* qmi-firmware-update: fix seg fault in case of error in hdlc_unframeChristophe Ronco2017-01-171-1/+1
|
* qmi-firmware-update: new --modem-storage-index optionAleksander Morgado2017-01-168-1/+62
|
* qmi-firmware-update: new --override-download optionAleksander Morgado2017-01-165-1/+20
| | | | | | | | | | | | | | The Set Firmware Preference command may return an empty list of images to be downloaded. If that happens and we just power cycle, we won't get into QDL download mode, the module will just apply the new firmware selection preference. With the new --override-download option, we tell the module that even if we already have the images, we want to perform the download. This option doesn't apply to older SWI9200 devices as these don't have any firmware preference setting. The option is implicit for these devices, though, the download always happens.
* qmi-firmware-update: rename --force to --ignore-version-errorsAleksander Morgado2017-01-165-24/+24
| | | | The --force name is too generic, and we may want to have other similar flags.
* qmi-firmware-update: QmiDevice open flags are genericAleksander Morgado2017-01-161-8/+8
| | | | | These are no longer update-action specific, as they also apply e.g. when doing a reset.
* qmi-firmware-update: waiting for power cycle up to 120sAleksander Morgado2017-01-161-1/+1
| | | | | The MC7455 may need around 70s for a complete reboot when selecting a firmware preference for already stored images.
* qmi-firmware-update: print firmware preference before/after updateAleksander Morgado2017-01-164-58/+114
|
* qmi-firmware-update: if no download needed, still run resetAleksander Morgado2017-01-161-4/+10
| | | | | | | When selecting firmware preference we may be told that no firmware image needs to be downloaded, because it is already there. BUT, we still need to run the module power cycle so that on the next boot the new firmware preference is applied.
* qmi-firmware-update: allow skipping new firmware validationAleksander Morgado2017-01-168-10/+44
| | | | And increase amount of retries.
* qmi-firmware-update: use SYNC flag when opening deviceAleksander Morgado2017-01-161-1/+1
| | | | So that we reset any existing client ids.
* qmi-firmware-update: try to use DMS 0x0050 for boot and hold as wellAleksander Morgado2017-01-161-5/+88
| | | | | This is what more generic Qualcomm software (E.g. Novatel E396) does to get into QDL download mode.
* qmi-firmware-update: offline+reset based power cycle as helperAleksander Morgado2017-01-163-63/+151
|
* qmi-firmware-update: small fix in udev event managementChristophe Ronco2017-01-161-0/+2
|
* qmi-firmware-update: fix compilation inside yoctoChristophe Ronco2017-01-161-3/+3
| | | | | In Yocto, build is done outside source directory. Without this patch, generated enum files are empty.
* qmi-firmware-update: by default no warning messages, only errorsAleksander Morgado2017-01-162-2/+1
|
* qmi-firmware-update: retry reloading device info several timesAleksander Morgado2017-01-161-4/+20
| | | | | The device may need some extra time to properly boot after the cdc-wdm device is exposed by the kernel, so setup several retries to do so.
* qmi-firmware-update: improve stdout progress reportingAleksander Morgado2017-01-161-15/+47
|
* qmi-firmware-update: new option to enable verbose logging file outputAleksander Morgado2017-01-164-36/+79
| | | | | | So that we can run the operation in stdout with standard logging level but storing in an external file the verbose logs in case they have to be analyzed later on, e.g. if the update failed.
* qmi-firmware-update: load and print device capabilities after updateAleksander Morgado2017-01-161-5/+88
|
* qmi-firmware-update: load capabilities of the modem earlyAleksander Morgado2017-01-164-61/+201
| | | | Only for the update operation, though.
* qmi-firmware-update: warn about last chunk ack step taking longAleksander Morgado2017-01-161-1/+4
|
* qmi-firmware-update: don't release CID if reset operation successfulAleksander Morgado2017-01-162-34/+21
|
* qmi-firmware-update: prefer DMS 0x003e for boot & hold resetAleksander Morgado2017-01-166-49/+188
|
* qmi-firmware-update: make QMI client allocation a common utilAleksander Morgado2017-01-165-130/+222
|
* qmi-firmware-update: new 'device selection' objectAleksander Morgado2017-01-1613-347/+587
| | | | | This new object contains the logic to select which device needs to be used as target of the firmware upgrade.
* dms: add support for 'Set firmware id'Aleksander Morgado2017-01-163-0/+57
| | | | | | This command is the one used by Sierra modems to get into Boot & Hold mode, and very likely has a set of TLVs that we don't know about. For now, just an empty message.
* qmicli,dms: new '--dms-get-software-version' operationAleksander Morgado2017-01-161-0/+52
|
* qmicli,dms: implement '--dms-get|set-boot-image-download-mode'Aleksander Morgado2017-01-163-0/+156
|
* dms: implement 'Get/Set Boot Image Download Mode'Aleksander Morgado2017-01-164-0/+51
|
* qmi-firmware-update: fix help of --vid-pidAleksander Morgado2017-01-161-1/+1
|
* qmi-firmware-update: use progress only for n_chunks-1Aleksander Morgado2017-01-161-4/+10
| | | | | | | | So that we don't get stuck e.g. at 98% on the last chunk waiting for it to be ack-ed, which may take a very long time. Instead, use progress for all chunks except for the last one and in the last one just say a generic "finalizing download...".
* qmi-firmware-update: enable libmbim-glib traces in verbose modeAleksander Morgado2017-01-162-0/+15
|
* qmi-firmware-update: don't use libqmi to flag verbosityAleksander Morgado2017-01-167-73/+163
|
* qmi-firmware-update: increase timeout for ACK-ing frameAleksander Morgado2017-01-161-1/+1
| | | | | | | | | | | | | | | | | | The last chunk in the MC7455 may take quite some time: [08 dic 2016, 22:39:18] [Debug] [qfu-image] reading chunk #61 [08 dic 2016, 22:39:18] [Debug] [qfu-image] chunk #61 size: 418062 bytes [08 dic 2016, 22:39:18] [Debug] [qfu-image] chunk #61 offset: 63963536 bytes [08 dic 2016, 22:39:18] [Debug] [qfu-image] chunk #61 successfully read [08 dic 2016, 22:39:18] [Debug] [qfu,qdl-message] sent write-unframed-req: [08 dic 2016, 22:39:18] [Debug] [qfu,qdl-message] sequence: 61 [08 dic 2016, 22:39:18] [Debug] [qfu,qdl-message] chunk size: 418062 [08 dic 2016, 22:39:18] [Debug] [qfu-qdl-device] >> 27:3D:00:00:00:00:00:0E:61:06:00:CE:63:... [418075] [08 dic 2016, 22:40:08] [Debug] [qfu-qdl-device] << 7E:28:3D:00:00:00:00:00:00:00:41:6E:7E [13] [08 dic 2016, 22:40:08] [Debug] [qfu-qdl-device] << 28:3D:00:00:00:00:00:00:00 [9, unframed] [08 dic 2016, 22:40:08] [Debug] [qfu,qdl-message] received write-unframed-rsp [08 dic 2016, 22:40:08] [Debug] [qfu,qdl-message] status: 0 [08 dic 2016, 22:40:08] [Debug] [qfu,qdl-message] sequence: 61
* qmi-firmware-update: make DLOAD SDP step optionalAleksander Morgado2017-01-161-2/+7
| | | | | | | | | | | | | | E.g. for the MC7455: [qfu-qdl-device] setting terminal in raw mode... [qfu,dload-message] sent sdp: [qfu-qdl-device] >> 70:00:00 [3, unframed] [qfu-qdl-device] >> 7E:70:00:00:14:46:7E [7] [qfu-qdl-device] << 7E:0D:16:00:00:00:00:88:4D:7E [10] [qfu-qdl-device] << 0D:16:00:00:00:00 [6, unframed] [qfu,qdl-message] received error [qfu,qdl-message] error: 22 [qfu,qdl-message] errortxt: 0 [qfu-qdl-device] error (ignored): DLOAD SDP not supported
* qmi-firmware-update: ignore QMI release/close errorsAleksander Morgado2017-01-161-14/+8
| | | | Because the module may already be power cycling itself.
* qmi-firmware-update: show progress while downloading imageAleksander Morgado2017-01-161-0/+19
|
* qmi-firmware-update: use PERMISSION_DENIED to flag errors that may be forcedAleksander Morgado2017-01-162-9/+7
|
* qmi-firmware-update: add note about spk files for 9x15Aleksander Morgado2017-01-161-2/+10
|
* qmi-firmware-update: fix error messagesAleksander Morgado2017-01-162-2/+2
|
* qmi-firmware-update: error out if no device specified in any wayAleksander Morgado2017-01-161-0/+4
|
* qmi-firmware-update: automatically detect firmware/config/carrierAleksander Morgado2017-01-165-65/+256
| | | | Only if required; e.g. for modems supporting Get/Set Firmware Preference.
* qmi-firmware-update: improve verify operation help examplesAleksander Morgado2017-01-161-1/+10
|
* qmi-firmware-update: try to parse firmware/config/carrier in CWEAleksander Morgado2017-01-163-6/+158
|
* qmi-firmware-update: don't try to download if modem doesn't need itAleksander Morgado2017-01-161-2/+15
| | | | | | | | If modem reports that there is nothing to download, it means it already has the specified firmware/config versions running, so nothing to do. Don't try to do offline/reset in that case because we'll end up in normal mode again, not in QDL download mode.
* qmi-firmware-update: new parser for firmware/config/carrier stringsAleksander Morgado2017-01-167-0/+203
|
* qmi-firmware-update: improve help and examplesAleksander Morgado2017-01-161-16/+77
|