Age | Commit message (Collapse) | Author | Files | Lines |
|
Modems operating in USB3 SuperSpeed mode may change to
USB2 HighSpeed mode while in boot-and-hold. This changes
the USB port name, causing device matching failure.
Fix by accepting matches on both the original USB(3) port and
the "peer" USB(2) port.
With this, a Sierra Wireless EM7455 can be successfully upgraded
while connected to a USB3 port:
[qfu,utils] operating mode set successfully...
[qfu-updater] reset requested successfully...
[qfu-updater] cleaning up QMI device...
[/dev/cdc-wdm0] Releasing 'dms' client with flags 'none'...
[/dev/cdc-wdm0] Unregistered 'dms' client with ID '2'
[qfu-updater] reset requested, now waiting for TTY device...
[/dev/cdc-wdm0] Sent message...
[/dev/cdc-wdm0] Sent message (translated)...
[/dev/cdc-wdm0] Received message...
[qfu-udev] event: remove ttyUSB0
[qfu-udev] event: remove ttyUSB1
[qfu-udev] event: remove 2-6:1.1
[qfu-udev] event: remove ttyUSB2
[qfu-udev] event: remove wwan0
[qfu-udev] event: remove 2-6:1.0
[qfu-udev] event: remove 2-6:1.3
[qfu-udev] event: remove 2-6:1.2
[qfu-udev] event: remove cdc-wdm0
[qfu-udev] event: remove 2-6:1.12
[qfu-udev] event: remove 2-6:1.13
[qfu-udev] event: remove 2-6
[qfu-udev] event: add 1-6
[qfu-udev] event: add 1-6:1.0
[qfu-udev] event: add ttyUSB0
[qfu-udev] peer lookup for ttyUSB0: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-0:1.0/usb1-port6 => /sys/devices/pci0000:00/0000:00:14.0/usb1/1-6
[qfu-udev] waiting device (tty) matched: ttyUSB0
[qfu-updater] TTY device found: /dev/ttyUSB0
[qfu-qdl-device] opening TTY: /dev/ttyUSB0
[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-updater] no more files to download
[qfu-updater] QDL reset
[qfu,qdl-message] sent reset-req:
[qfu-qdl-device] >> 2D [1, unframed]
[qfu-qdl-device] >> 7E:2D:9F:0A:7E [5]
[qfu-updater] now waiting for cdc-wdm device...
[qfu-udev] event: remove ttyUSB0
[qfu-udev] event: remove 1-6:1.0
[qfu-udev] event: remove 1-6
[qfu-udev] event: add 2-6
[qfu-udev] event: add 2-6:1.1
[qfu-udev] event: add 2-6:1.2
[qfu-udev] event: add 2-6:1.13
[qfu-udev] event: add 2-6:1.3
[qfu-udev] event: add 2-6:1.12
[qfu-udev] event: add cdc-wdm0
[qfu-udev] waiting device (cdc-wdm) matched: cdc-wdm0
[qfu-updater] cdc-wdm device found: /dev/cdc-wdm0
[qfu-updater] waiting some time (5s) before accessing the cdc-wdm device...
[qfu-udev] event: add 2-6:1.0
[qfu-udev] event: add ttyUSB0
[qfu-udev] event: add ttyUSB2
[qfu-udev] event: add ttyUSB1
[qfu-udev] event: add wwan0
[qfu-updater] creating QMI DMS client after upgrade...
Signed-off-by: Bjørn Mork <bjorn@mork.no>
|
|
We allow running FW updates even when udev isn't available in the
system. In this case, though, only the manual operations will be
supported (i.e. --reset and --update-qdl).
|
|
|
|
|
|
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
|
|
This new object contains the logic to select which device needs to be
used as target of the firmware upgrade.
|
|
|
|
|
|
|
|
Initially, load sysfs path and setup state machine.
|