MC7455 in QDL mode

Bjørn Mork bjorn at mork.no
Wed Nov 22 07:12:22 UTC 2017


I believe the bootloader places the modern in some sort of debug mode when it falls to boot. And it speaks a different protocol (Sahara?) in this mode. You can download a memory dump using the ramdump tool from the SDK. Unfortunately, the firmware tools don't speak this protocol. 

But you can switch to a mode which allows firmware updates using some magic Sahara command. I have done this once a long time ago. Will see if I  can find my notes from back then.



Bjørn 

On November 22, 2017 6:47:50 AM GMT+01:00, Sebastian Sjoholm <sebastian.sjoholm at gmail.com> wrote:
>Hi,
>
>I seem to have one MC7455 in QDL mode. I can see that after bootup it
>will
>do several USB interface connect/disconnects, and after that set itself
>in
>QDL (this would be normal, according to the specs).
>
>The reason might be a failed FW upgrade done before installation or any
>corruption on the board itself so it can not load the firmware.
>
>I was thinking if there is any way I could solve it without
>disconnecting
>the modem and do the normal FW upgrade in another machine. Since the
>/dev/ttyUSB0 port is exposed, I could, maybe, initiate the FW upgrade
>via
>qmi-firmware update.
>
>Which I tried, but I get following (whole printout at the bottom of the
>email).
>
>[22 Nov 2017, 05:04:07] [Debug] [qfu,dload-message] sent sdp:
>[22 Nov 2017, 05:04:07] [Debug] [qfu-qdl-device] >> 70:00:00 [3,
>unframed]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-qdl-device] >>
>7E:70:00:00:14:46:7E [7]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-qdl-device] <<
>01:00:00:00:30:00:00:00:02:00:00:00:01:00:00:00:00:04:00:00:02:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
>[48]
>error: error creating device: HDLC trailing control character not found
>
>It seems to give some response, but it does not tell me much, is this
>something that could be useful, or nothing that can be done in this
>modem
>state.
>
>Regards,
>Sebastian
>
>Collected printouts:
>
>root at LI17MR702A03:/tmp# lsusb -t
>/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ci_hdrc/1p, 480M
>    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
>        |__ Port 2: Dev 7, If 0, Class=Vendor Specific Class,
>Driver=qcserial, 480M
>/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ci_hdrc/1p, 480M
>root at LI17MR702A03:/tmp# lsusb
>Bus 002 Device 007: ID 1199:9070 Sierra Wireless, Inc.
>Bus 002 Device 002: ID 04b4:6570 Cypress Semiconductor Corp.
>Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
>Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
>root at LI17MR702A03:/tmp#
>
>dmesg:
>...
>[   72.184679] usb 2-1.2: new high-speed USB device number 6 using
>ci_hdrc
>[   72.272009] usb 2-1.2: config 1 has an invalid interface number: 8
>but
>max is 4
>[   72.272030] usb 2-1.2: config 1 has an invalid interface number: 10
>but
>max is 4
>[   72.272048] usb 2-1.2: config 1 has no interface number 1
>[   72.272064] usb 2-1.2: config 1 has no interface number 4
>[   72.281494] qcserial 2-1.2:1.0: Qualcomm USB modem converter
>detected
>[   72.285038] usb 2-1.2: Qualcomm USB modem converter now attached to
>ttyUSB0
>[   72.291251] qcserial 2-1.2:1.2: Qualcomm USB modem converter
>detected
>[   72.295215] usb 2-1.2: Qualcomm USB modem converter now attached to
>ttyUSB1
>[   72.299301] qcserial 2-1.2:1.3: Qualcomm USB modem converter
>detected
>[   72.303149] usb 2-1.2: Qualcomm USB modem converter now attached to
>ttyUSB2
>[   72.311524] qmi_wwan 2-1.2:1.8: cdc-wdm0: USB WDM device
>[   72.315733] qmi_wwan 2-1.2:1.8 wwan0: register 'qmi_wwan' at
>usb-ci_hdrc.1-1.2, WWAN/QMI device, c6:d3:a5:a3:4f:cc
>[   72.324885] qmi_wwan 2-1.2:1.10: cdc-wdm1: USB WDM device
>[   72.329777] qmi_wwan 2-1.2:1.10 wwan1: register 'qmi_wwan' at
>usb-ci_hdrc.1-1.2, WWAN/QMI device, c6:d3:a5:a3:4f:cc
>[   89.914506] usb 2-1.2: USB disconnect, device number 6
>[   89.920615] qcserial ttyUSB0: Qualcomm USB modem converter now
>disconnected from ttyUSB0
>[   89.920802] qcserial 2-1.2:1.0: device disconnected
>[   89.924105] qcserial ttyUSB1: Qualcomm USB modem converter now
>disconnected from ttyUSB1
>[   89.924209] qcserial 2-1.2:1.2: device disconnected
>[   89.929743] qcserial ttyUSB2: Qualcomm USB modem converter now
>disconnected from ttyUSB2
>[   89.929852] qcserial 2-1.2:1.3: device disconnected
>[   89.930433] qmi_wwan 2-1.2:1.8 wwan0: unregister 'qmi_wwan'
>usb-ci_hdrc.1-1.2, WWAN/QMI device
>[   89.942568] qmi_wwan 2-1.2:1.10 wwan1: unregister 'qmi_wwan'
>usb-ci_hdrc.1-1.2, WWAN/QMI device
>[   90.469494] usb 2-1.2: new high-speed USB device number 7 using
>ci_hdrc
>[   90.562727] qcserial 2-1.2:1.0: Qualcomm USB modem converter
>detected
>[   90.566375] usb 2-1.2: Qualcomm USB modem converter now attached to
>ttyUSB0
>...
>
>root at LI17MR702A03:/tmp# qmi-firmware-update -v -U -t /dev/ttyUSB0
>SWI9X30C_02.24.05.06.cwe SWI9X30C_02.24.05.06_GENERIC_002.026_000.nvu
>[22 Nov 2017, 05:04:07] [Debug] [qfu-udev] sysfs path for 'ttyUSB0'
>found:
>/sys/devices/soc0/soc/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb2/2-1/2-1.2
>[22 Nov 2017, 05:04:07] [Debug] [qfu-utils] couldn't ping ModemManager:
>GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name
>"org.freedesktop.ModemManager1" does not exist
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image] loading file info...
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image] opening file for reading...
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe] reading image
>headers...
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe] image offset range:
>[0,64432017]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   image offset range:
>[400,339108]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]     image offset range:
>[800,339108]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   image at offset 800
>is
>valid
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe] image at offset 400 is
>valid
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   image offset range:
>[339108,32081283]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]     image offset range:
>[339508,695676]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   image at offset
>339508 is
>valid
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]     image offset range:
>[695676,849080]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   image at offset
>695676 is
>valid
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]     image offset range:
>[849080,32081283]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   image at offset
>849080 is
>valid
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe] image at offset 339108
>is
>valid
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   image offset range:
>[32081283,64432017]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]     image offset range:
>[32081683,32248855]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   image at offset
>32081683
>is valid
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]     image offset range:
>[32248855,42834575]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   image at offset
>32248855
>is valid
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]     image offset range:
>[42834575,59191456]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   image at offset
>42834575
>is valid
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]     image offset range:
>[59191456,64432017]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   image at offset
>59191456
>is valid
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe] image at offset
>32081283 is
>valid
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe] validating data size...
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe] preloading
>firmware/config/carrier...
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   firmware version:
>02.24.05.06
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   config version:  
>unknown
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   carrier:         
>unknown
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image] loading file info...
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image] opening file for reading...
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe] reading image
>headers...
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe] image offset range:
>[0,3889]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   image offset range:
>[400,3889]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]     image offset range:
>[800,3889]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]       image offset
>range:
>[1200,3889]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]     image at offset
>1200 is
>valid
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   image at offset 800
>is
>valid
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe] image at offset 400 is
>valid
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe] validating data size...
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe] preloading
>firmware/config/carrier...
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   firmware version:
>02.24.05.06
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   config version:
> 002.026_000
>[22 Nov 2017, 05:04:07] [Debug] [qfu-image-cwe]   carrier:         
>GENERIC
>[22 Nov 2017, 05:04:07] [Debug] [qfu,device-selection] single tty
>device
>requested in sysfs path
>'/sys/devices/soc0/soc/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb2/2-1/2-1.2'
>[22 Nov 2017, 05:04:07] [Debug] [qfu,device-selection]   device found:
>/dev/ttyUSB0
>[22 Nov 2017, 05:04:07] [Debug] [qfu,device-selection]   using
>preferred
>device: /dev/ttyUSB0
>[22 Nov 2017, 05:04:07] [Debug] [qfu-qdl-device] opening TTY:
>/dev/ttyUSB0
>[22 Nov 2017, 05:04:07] [Debug] [qfu-qdl-device] setting terminal in
>raw
>mode...
>[22 Nov 2017, 05:04:07] [Debug] [qfu,dload-message] sent sdp:
>[22 Nov 2017, 05:04:07] [Debug] [qfu-qdl-device] >> 70:00:00 [3,
>unframed]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-qdl-device] >>
>7E:70:00:00:14:46:7E [7]
>[22 Nov 2017, 05:04:07] [Debug] [qfu-qdl-device] <<
>01:00:00:00:30:00:00:00:02:00:00:00:01:00:00:00:00:04:00:00:02:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
>[48]
>error: error creating device: HDLC trailing control character not found
>root at LI17MR702A03:/tmp#
>
>root at LI17MR702A03:/tmp# qmicli --version
>
>qmicli 1.19.0
>Copyright (C) 2012-2017 Aleksander Morgado
>License GPLv2+: GNU GPL version 2 or later <
>http://gnu.org/licenses/gpl-2.0.html>
>This is free software: you are free to change and redistribute it.
>There is NO WARRANTY, to the extent permitted by law.
>
>root at LI17MR702A03:/tmp# uname -a
>Linux LI17MR702A03 4.10.17 #1 SMP Sat May 20 14:21:32 MDT 2017 armv7l
>GNU/Linux
>root at LI17MR702A03:/tmp#


More information about the libqmi-devel mailing list