summaryrefslogtreecommitdiff
path: root/src/qmi-firmware-update/qfu-udev-helpers.h
AgeCommit message (Collapse)AuthorFilesLines
2018-01-20qmi-firmware-update: support USB3->USB2 mode changes during upgradeBjørn Mork1-0/+3
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>
2017-02-13qmi-firmware-update: allow building without udevAleksander Morgado1-8/+14
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).
2017-02-10build: update copyright yearsAleksander Morgado1-1/+1
2017-02-01qmi-firmware-update: no gudev header needed in helpers headerAleksander Morgado1-1/+0
2017-01-20qmi-firmware-update: new generic monitor to debug all udev eventsAleksander Morgado1-0/+4
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
2017-01-16qmi-firmware-update: new 'device selection' objectAleksander Morgado1-7/+12
This new object contains the logic to select which device needs to be used as target of the firmware upgrade.
2017-01-16qmi-firmware-update: allow specifying devices by vid:pid or bus:devAleksander Morgado1-16/+21
2017-01-16qmi-firmware-update: wait for cdc-wdm device after image downloadAleksander Morgado1-6/+12
2017-01-16qmi-firmware-update: wait for TTY after resetAleksander Morgado1-0/+8
2017-01-16qmi-firmware-update: new QfuUpdater with the core upgrade logicAleksander Morgado1-0/+37
Initially, load sysfs path and setup state machine.