MC7421 Firmware Upgrade Failure

Hello,

I have been trying to get running a new MC7421. I tried to use the built-in tools to do the firmware upgrade but then I would always get stopped around “FW download failed: eSDP_FWDWL_ERR_FIREHOSE_STATE_ERR(120)” I then tried to upgrade the linux drivers and then the problem simply got worse. When I attempted to flash it the next time, it would not even recognize that it is in boot and hold mode and just stop there. I then tried to move to using qmi-firmware-upgrade and that seemed to have made this even worse. It downloaded all the way until there was an error at 100%: “(–*—) 100.0%error: error downloading image: couldn’t write in session: couldn’t send last end-of-transfer blocktimed out waiting to write”

After the that module is completely bricked. It shows up as a device:

Bus 001 Device 005: ID 1199:9090 Sierra Wireless, Inc. Sierra Wireless MC7421 Qualcomm® Snapdragon™ X16 LTE-A

with the qcserial driver mounted on it:

/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 5, If 0, Class=Vendor Specific Class, Driver=qcserial, 480M

but I am not able to flash anything to that port. When I attempt to run qmi-firmware-update it just says that it is an “unsupported download protocol.”

Does it work for fdt2.exe in windows?

fdt2.exe -f SWI9X50C_01.14.22.00.cwe SWI9X50C_01.14.22.00_GENERIC_002.057_000.nvu

I have not tried anything on windows. I don’t have the mini PCIE to USB adapter, however I just ordered one. Is there anything on Linux I can try in the meantime?

See if this helps

Got it. I am using R35.
Here is my console output:

Application version: 1.0.2307.1
INFO: QDL Port: /dev/ttyUSB0
INFO: Device Path: 
INFO: FW Path: Images/
Target image Info:
Carrier    :GENERIC
FW Version :01.14.13.00
Model ID   :SWI9X50C
Package ID :000
PRI Version:002.048
SKU        :9999999
Modem is already in QDL mode. Continuing FW download.
Waiting for modem to come up in BOOT and HOLD mode ...
BOOT and HOLD Mode. Downloading firmware ...
FW download failed: eSDP_FWDWL_ERR_DATA_SENDING_ERR(116)

And here is the full output of the log file.

[14:22:26.856][7]System date/time: 03/04/2024 14:22:26
[14:22:26.856][7]1.0.2307.1
[14:22:26.861][7]Kernel: Linux raspberrypi 6.6.20+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.20-1+rpt1 (2024-03-07) aarch64 GNU/Linux

[14:22:26.862][6]Driver qcserial is loaded using insmod or modprobe

[14:22:26.862][6]Module name: qcserial.  Version: 1.11.2302.2

[14:22:26.862][6]Driver usb_wwan is loaded using insmod or modprobe

[14:22:26.862][6]Module name: usb_wwan.  Version: 1.2.2302.2

[14:22:26.862][7]File not found: /sys/module/cdc_mbim/version

[14:22:26.862][7]Unable to get cdc_mbim driver's version from file '/sys/module/cdc_mbim/version' trying using modinfo

[14:22:26.877][7]Unable to log cdc_mbim version info. Drivers from MBPL R17 or newer are required.
[14:22:26.877][7]File not found: /sys/module/qmi_wwan/version

[14:22:26.877][7]Unable to get qmi_wwan driver's version from file '/sys/module/qmi_wwan/version' trying using modinfo

[14:22:26.892][7]Unable to log qmi_wwan version info. Drivers from MBPL R17 or newer are required.
[14:22:26.892][7]File not found: /sys/module/mhictrl/version

[14:22:26.892][7]Unable to get mhictrl driver's version from file '/sys/module/mhictrl/version' trying using modinfo

[14:22:26.901][7]Unable to log mhictrl version info. Drivers from MBPL R17 or newer are required.
[14:22:26.901][7]File not found: /sys/module/mhinet/version

[14:22:26.901][7]Unable to get mhinet driver's version from file '/sys/module/mhinet/version' trying using modinfo

[14:22:26.910][7]Unable to log mhinet version info. Drivers from MBPL R17 or newer are required.
[14:22:26.910][7]File not found: /sys/module/mhitty/version

[14:22:26.910][7]Unable to get mhitty driver's version from file '/sys/module/mhitty/version' trying using modinfo

[14:22:26.919][7]Unable to log mhitty version info. Drivers from MBPL R17 or newer are required.
[14:22:26.919][7]./fwdl2
[14:22:26.919][7]-c
[14:22:26.919][7]QMI
[14:22:26.919][7]-m
[14:22:26.919][7]4
[14:22:26.919][7]-d
[14:22:26.919][7]/dev/ttyUSB0
[14:22:26.919][7]-f
[14:22:26.919][7]Images/
[14:22:26.919][7]-l
[14:22:26.919][7]log_nd_1.txt
[14:22:27.002][7]User specified read block size: 0 bytes
[14:22:27.002][7]**************************************************
[14:22:27.002][7]Copyright: © 2015-2017 Sierra Wireless, Inc. all rights reserved
[14:22:27.003][7]lite-fw is only permitted to be used with Sierra Wireless Modems
[14:22:27.003][7]lite-fw version lite-fwMBPL_SDK_R35_ENG4
[14:22:27.003][7]**************************************************
[14:22:27.003][6]Device is in BOOT&HOLD mode.
[14:22:27.003][6]Images list:
[14:22:27.003][6]Image[0]: Images//SWI9X50C_01.14.13.00.cwe
[14:22:27.003][6]Image[1]: Images//SWI9X50C_01.14.13.00_GENERIC_002.048_000.nvu
[14:22:27.007][7]find_dev_ss_loc: Found device SS path '/sys/bus/usb/devices/1-1.3/power/control'
[14:22:27.007][7]disable_ss: SS is not enabled, no need to disable SS.
[14:22:27.007][6]litefw_download: Adjust download_type from 1 to REG_DWLD as device is already in B&H mode.
[14:22:27.007][7]Waiting for modem to come up in B&H mode ...
[14:22:28.007][7]Modem is in B&H mode. Downloading firmware ...
[14:22:28.011][7]find_dev_ss_loc: Found device SS path '/sys/bus/usb/devices/1-1.3/power/control'
[14:22:28.011][7]disable_ss: SS is not enabled, no need to disable SS.
[14:22:28.012][7]QDL Port :/dev/ttyUSB0
[14:22:33.012][7]Read payload [48]
[14:22:33.012][7]Read 48 bytes
[14:22:33.012][7]<-  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     ....0...........................
[14:22:33.012][7]<-  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00                                                        ................
[14:22:33.012][7]Current mode: 0, previous max_reads_allowed: 29
[14:22:33.012][7]Send 48 bytes
[14:22:33.012][7]->  02 00 00 00 30 00 00 00  02 00 00 00 02 00 00 00   00 00 00 00 03 00 00 00  01 00 00 00 02 00 00 00     ....0...........................
[14:22:33.012][7]->  03 00 00 00 04 00 00 00  05 00 00 00 06 00 00 00                                                        ................
[14:22:33.012][7]Sahara Hello Rsp sent successfully, max_reads_allowed reset to 30
[14:22:33.013][7]Read payload [8]
[14:22:33.013][7]Read 8 bytes
[14:22:33.013][7]<-  0b 00 00 00 08 00 00 00                                                                                 ........
[14:22:33.013][7]Current mode: 1, previous max_reads_allowed: 29
[14:22:33.013][7]Send 12 bytes
[14:22:33.013][7]->  0d 00 00 00 0c 00 00 00  00 ff 00 00                                                                    ............
[14:22:33.013][7]Sahara Command Execute packet sent successfully, max_reads_allowed reset to 30
[14:22:33.032][7]Read payload [16]
[14:22:33.032][7]Read 16 bytes
[14:22:33.032][7]<-  0e 00 00 00 10 00 00 00  00 ff 00 00 09 00 00 00                                                        ................
[14:22:33.032][7]Current mode: 2, previous max_reads_allowed: 29
[14:22:33.032][7]Send 12 bytes
[14:22:33.032][7]->  0f 00 00 00 0c 00 00 00  00 ff 00 00                                                                    ............
[14:22:33.032][7]Sahara Switch to Firehose command sent successfully, max_reads_allowed reset to 30
[14:22:33.043][7]Read payload [9]
[14:22:33.043][7]Read 9 bytes
[14:22:33.043][7]<-  63 6f 6e 66 69 72 6d 65  64                                                                             confirmed
[14:22:33.043][7]Current mode: 15, previous max_reads_allowed: 29
[14:22:33.043][7]Leaving Sahara ...
[14:22:33.544][7]read timeout
[14:22:33.544][7]Current mode: 3, previous max_reads_allowed: 89
[14:22:33.544][7]Tx: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<NOP value="ping"/>
</data>

[14:22:33.544][7]Firehose nop cmd sent, max_reads_allowed reset to 60
[14:22:35.545][7]read timeout
[14:22:35.545][7]Current mode: 3, previous max_reads_allowed: 59
[14:22:35.545][7]Tx: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<NOP value="ping"/>
</data>

[14:22:35.545][7]Firehose nop cmd sent, max_reads_allowed reset to 60
[14:22:37.546][7]read timeout
[14:22:37.546][7]Current mode: 3, previous max_reads_allowed: 59
[14:22:37.546][7]Tx: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<NOP value="ping"/>
</data>

[14:22:37.546][7]Firehose nop cmd sent, max_reads_allowed reset to 60
[14:22:39.548][7]read timeout
[14:22:39.548][7]Current mode: 3, previous max_reads_allowed: 59
[14:22:39.548][7]Tx: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<NOP value="ping"/>
</data>

[14:22:39.548][7]Firehose nop cmd sent, max_reads_allowed reset to 60
[14:22:41.549][7]read timeout
[14:22:41.549][7]Current mode: 3, previous max_reads_allowed: 59
[14:22:42.801][7]Tx: <?xml version="1.0" encoding="UTF-8" ?>
<data>
<NOP value="ping"/>
</data>

[14:22:42.801][7]Firehose nop cmd sent, max_reads_allowed reset to 60
[14:22:42.930][7]Current mode: 3, previous max_reads_allowed: 59
[14:22:42.930][7]local_write: write failed with errno:5
[14:22:42.930][7]local_write: IO error, maybe device unplugged, exit with -1
[14:22:42.930][7]Failed to send Firehose nop cmd: -1, 75

do you have another MC7421 to compare?

see if this helps:

Unfortunately, we don’t. This is the command that I am running

sudo ./fwdl2 -c QMI -m 4 -d /dev/ttyUSB0 -f Images/

(fwdl2 is just renamed fwdwl-literpi)
Based on the command that is being ran, I do not think I am explicitly specifying the cwe and nvu which appears to the the issue in the post that you linked. Unless I am mistaken.

no idea, probably you need to get another good module to compare
Or you can try in Windows