I am trying to use the EM7565 in an M.2-USB adapter board, however, when using the firmware download binaries I am running into the error: FW download failed: eSDP_FWDWL_ERR_FIREHOSE_STATE_ERR(120). I have ran into this error on two different M.2-USB boards. I do not encounter this issue when running the same x86/64 binary on a Latte Panda 3 Delta which is a Single-Board Computer(SBC) that has an M.2 slot built into it. Both my workstation and the Delta are running ubuntu 24.04. Additionally, I have tried the fw-download-toolarm64linaro binary on a raspberry pi 5 and receive the same error.
Are there special hardware conditions that allow the Delta to perform the full firmware flash that the M.2-USB boards do not have? Or any other thoughts on why this error is occurring only on the adapter boards?
$ sudo ~/Downloads/MBPL_SDK_R46_ENG5-fwdwl/SampleApps/fw-download-tool/bin/fw-download-toolhostx86_64 -f ~/Downloads/SWI9X50C_01.14.02.00_TMO_002.003_003 -P 1-7 -t 1 Application version: 1.0.2509.0 INFO: QDL Port: INFO: Device Path: /dev/cdc-wdm2 INFO: Device Port: 1-7 INFO: FW Path: /home/jacob/Downloads/SWI9X50C_01.14.02.00_TMO_002.003_003 Target image Info: Carrier :TMO FW Version :01.14.02.00 Model ID :SWI9X50C Package ID :003 PRI Version:002.003 SKU :9999999 Switching device into download mode for image switch … Modem Needs FW Modem Needs PRI Waiting for modem to disconnect from the host … Modem disconnected from host. Waiting for modem to come up in BOOT and HOLD mode … QDL port found: /dev/ttyUSB0 BOOT and HOLD Mode. Downloading firmware … Downloading: /home/jacob/Downloads/SWI9X50C_01.14.02.00_TMO_002.003_003/SWI9X50C_01.14.02.00.cwe FW download failed: eSDP_FWDWL_ERR_FIREHOSE_STATE_ERR(120)
Full fwdw.log output:
Summary
1. Sahara protocol completes successfully - Hello, command execute, switch to Firehose all work
2. Firehose negotiation works - getStorageInfo returns valid NAND info, ACK received
3. The entire 80 MB CWE image transfers - Total bytes sent: 80240356 bytes
4. Then no ACK received - 300 consecutive 500ms read timeouts (~150 seconds) waiting for the post-write ACK from the modem before bailing with eSDP_FWDWL_ERR_FIREHOSE_STATE_ERR(120)
I am not sure why it is showing up as 2 instead of 0. Probably from attempting the download a few times. There is no other cdc-wdm port active $ ls /dev/cdc* /dev/cdc-wdm2
I tried the sudo chmod +777 /dev/cdc-wdm2 command, but no luck after trying the FW download again
I did try those commands for adding permissions with chmod 777, see my previous reply. I also tried the firmware download command with -d and -p but it still gives the firehose error
$ sudo ~/Downloads/MBPL_SDK_R46_ENG5-fwdwl/SampleApps/fw-download-tool/bin/fw-download-toolhostx86_64 -f ~/Downloads/SWI9X50C_01.14.02.00_TMO_002.003_003 -d /dev/ttyUSB0 -p /dev/cdc-wdm2 -t 1 Application version: 1.0.2509.0 INFO: QDL Port: /dev/ttyUSB0 INFO: Device Path: /dev/cdc-wdm2 INFO: Device Port: 0-0 INFO: FW Path: /home/jacob/Downloads/SWI9X50C_01.14.02.00_TMO_002.003_003 Target image Info: Carrier :TMO FW Version :01.14.02.00 Model ID :SWI9X50C Package ID :003 PRI Version:002.003 SKU :9999999 Switching device into download mode for image switch … Modem Needs PRI Waiting for modem to disconnect from the host … Modem disconnected from host. Waiting for modem to come up in BOOT and HOLD mode … BOOT and HOLD Mode. Downloading firmware … Downloading: /home/jacob/Downloads/SWI9X50C_01.14.02.00_TMO_002.003_003/SWI9X50C_01.14.02.00_TMO_002.003_003.nvu FW download failed: eSDP_FWDWL_ERR_FIREHOSE_STATE_ERR(120)
Yes I am using the R46 MBPL drivers on both systems.
I followed the “Manual Flashing Procedure” in this github readme and it was successful. They used the qmi-firmware-update cli tool
sudo add-apt-repository universe
sudo apt update
apt-get install libqmi-glib5 libqmi-proxy libqmi-utils -y
sudo systemctl stop ModemManager
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 1462:7e06 Micro Star International MYSTIC LIGHT
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 005: ID 0bda:5411 Realtek Semiconductor Corp. RTS5411 Hub
Bus 001 Device 006: ID 8087:0033 Intel Corp. AX211 Bluetooth
Bus 001 Device 007: ID 0bda:5411 Realtek Semiconductor Corp. RTS5411 Hub
Bus 001 Device 008: ID 275d:0ba6 USB OPTICAL MOUSE
Bus 001 Device 010: ID 0bda:5411 Realtek Semiconductor Corp. RTS5411 Hub
Bus 001 Device 011: ID 046d:094d Logitech, Inc. Brio 101
Bus 001 Device 030: ID 1c4f:007e SiGma Micro USB Keyboard
Bus 001 Device 054: ID 1199:9091 Sierra Wireless, Inc. Sierra Wireless EM7565 Qualcomm® Snapdragon™ X16 LTE-A
# vendor:product ID of 1199:9091
$ sudo qmi-firmware-update --update -d 1199:9091 SWI9X50C_01.14.02.00.cwe SWI9X50C_01.14.02.00_TMO_002.003_003.nvu
loading device information before the update...
setting firmware preference:
firmware version: '01.14.02.00'
config version: '002.003_003'
carrier: 'TMO'
rebooting in download mode...
download mode detected
downloading cwe image: SWI9X50C_01.14.02.00.cwe (80.2 MB)...
finalizing download... (may take several minutes, be patient)
successfully downloaded in 113.26s (708.5 kB/s)
downloading cwe image: SWI9X50C_01.14.02.00_TMO_002.003_003.nvu (10.4 kB)...
finalizing download... (may take several minutes, be patient)
successfully downloaded in 0.09s (115.6 kB/s)
rebooting in normal mode...
normal mode detected
------------------------------------------------------------------------
NOTE: in order to validate which is the firmware running in the
module, the program will wait for a complete boot; this process
may take some time and several retries.
------------------------------------------------------------------------
waiting some time for the device to boot...
loading device information after the update (1/12)...
------------------------------------------------------------------------
original firmware revision was:
SWI9X50C_01.14.02.00 2e210b jenkins 2020/08/19 14:18:39
original running firmware details:
Model: EM7565
Boot version: SWI9X50C_01.14.02.00
AMSS version: SWI9X50C_01.14.02.00
SKU ID: 1104207
Carrier ID: 1
Config version: 002.011_002
original firmware preference details:
image 'modem': unique id '002.003_003', build id '01.14.02.00_TMO'
image 'pri': unique id '002.003_003', build id '01.14.02.00_TMO'
new firmware revision is:
SWI9X50C_01.14.02.00 2e210b jenkins 2020/08/19 14:18:39
new running firmware details:
Model: EM7565
Boot version: SWI9X50C_01.14.02.00
AMSS version: SWI9X50C_01.14.02.00
SKU ID: 1104207
Carrier ID: 203
Config version: 002.003_003
new firmware preference details:
image 'modem': unique id '002.003_003', build id '01.14.02.00_TMO'
image 'pri': unique id '002.003_003', build id '01.14.02.00_TMO'
NOTE: this device supports stored image management
with qmicli operations:
--dms-list-stored-images
--dms-select-stored-image
--dms-delete-stored-image
NOTE: this device supports firmware preference management
with qmicli operations:
--dms-get-firmware-preference
--dms-set-firmware-preference
------------------------------------------------------------------------
firmware update operation finished successfully
This doesn’t appear to be the solution as when I try the qmi-firmware-update cli tool with another EM7565 modem, it does not complete. $ sudo qmi-firmware-update --update -d 1199:9091 firmware/SWI9X50C_01.14.02.00.cwe firmware/SWI9X50C_01.14.02.00_TMO_002.003_003.nvu loading device information before the update… setting firmware preference: firmware version: ‘01.14.02.00’ config version: ‘002.003_003’ carrier: ‘TMO’ rebooting in download mode… error: error waiting for serial device in download mode: waiting for device at ‘/sys/devices/pci0000:00/0000:00:14.0/usb1/1-7’ timed out
Looking back at the previous reply, it seems that somehow the firmware got partially loaded on the modem, then the qmi-firmware-update completed the flash. I’m not sure how that happened.
When trying with the sierra wireless binary, it does not get past the step “Modem not coming up in BOOT and HOLD mode in 60 seconds. Please check parameters. Application terminates.”
$ sudo ~/Downloads/MBPL_SDK_R46_ENG5-fwdwl/SampleApps/fw-download-tool/bin/fw-download-toolhostx86_64 -f ~/Downloads/SWI9X50C_01.14.02.00_TMO_002.003_003 -P 1-7 -t 1 Application version: 1.0.2509.0 INFO: QDL Port: INFO: Device Path: /dev/cdc-wdm2 INFO: Device Port: 1-7 INFO: FW Path: /home/jacob/Downloads/SWI9X50C_01.14.02.00_TMO_002.003_003 Target image Info: Carrier :TMO FW Version :01.14.02.00 Model ID :SWI9X50C Package ID :003 PRI Version:002.003 SKU :9999999 Switching device into download mode for image switch … Modem Needs FW Modem Needs PRI Waiting for modem to disconnect from the host … Waiting for modem to come up in BOOT and HOLD mode … QDL port found: /dev/ttyUSB0 Modem not coming up in BOOT and HOLD mode in 60 seconds. Please check parameters. Application terminates.
I tried changing it to mbim mode and did not work with the qmi tool or the sierra wireless tool
$ sudo qmi-firmware-update --update --device-open-mbim -d 1199:9091 firmware/SWI9X50C_01.14.02.00.cwe firmware/SWI9X50C_01.14.02.00_TMO_002.003_003.nvu loading device information before the update… setting firmware preference: firmware version: ‘01.14.02.00’ config version: ‘002.003_003’ carrier: ‘TMO’ rebooting in download mode… error: error waiting for serial device in download mode: waiting for device at ‘/sys/devices/pci0000:00/0000:00:14.0/usb1/1-7’ timed out
$ sudo ~/Downloads/MBPL_SDK_R46_ENG5-fwdwl/SampleApps/fw-download-tool/bin/fw-download-toolhostx86_64 -f ~/Downloads/SWI9X50C_01.14.02.00_TMO_002.003_003 -P 1-7 -t 1 [sudo] password for jacob: Application version: 1.0.2509.0 INFO: QDL Port: INFO: Device Path: /dev/cdc-wdm2 INFO: Device Port: 1-7 INFO: FW Path: /home/jacob/Downloads/SWI9X50C_01.14.02.00_TMO_002.003_003 Target image Info: Carrier :TMO FW Version :01.14.02.00 Model ID :SWI9X50C Package ID :003 PRI Version:002.003 SKU :9999999 Switching device into download mode for image switch … Modem Needs FW Modem Needs PRI Waiting for modem to disconnect from the host … Waiting for modem to come up in BOOT and HOLD mode … Modem not coming up in BOOT and HOLD mode in 60 seconds. Please check parameters. Application terminates.
I get the same results, not getting past the step waiting for modem to come up in boot and hold mode $ sudo ~/Downloads/MBPL_SDK_R46_ENG5-fwdwl/SampleApps/fw-download-tool/bin/fw-download-toolhostx86_64 -f ~/Downloads/SWI9X50C_01.14.02.00_TMO_002.003_003 -d /dev/ttyUSB0 -p /dev/cdc-wdm2 -t 1 Application version: 1.0.2509.0 INFO: QDL Port: /dev/ttyUSB0 INFO: Device Path: /dev/cdc-wdm2 INFO: Device Port: 0-0 INFO: FW Path: /home/jacob/Downloads/SWI9X50C_01.14.02.00_TMO_002.003_003 Target image Info: Carrier :TMO FW Version :01.14.02.00 Model ID :SWI9X50C Package ID :003 PRI Version:002.003 SKU :9999999 Switching device into download mode for image switch … Modem Needs FW Modem Needs PRI Waiting for modem to disconnect from the host … Waiting for modem to come up in BOOT and HOLD mode … Modem not coming up in BOOT and HOLD mode in 60 seconds. Please check parameters. Application terminates.
This is dmesg after I switched AT!USBCOMP=1,1,1009 to change to MBIM mode [1130255.311866] usb 1-7: new high-speed USB device number 98 using xhci_hcd [1130255.435470] usb 1-7: config 1 has an invalid interface number: 4 but max is 3 [1130255.435473] usb 1-7: config 1 has no interface number 3 [1130255.436200] usb 1-7: New USB device found, idVendor=1199, idProduct=9091, bcdDevice= 0.06 [1130255.436201] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [1130255.436202] usb 1-7: Product: Sierra Wireless EM7565 Qualcomm® Snapdragon™ X16 LTE-A [1130255.436203] usb 1-7: Manufacturer: Sierra Wireless, Incorporated [1130255.436204] usb 1-7: SerialNumber: UF22613043041052 [1130255.463518] cdc_mbim 1-7:1.0: cdc-wdm2: USB WDM device [1130255.463627] cdc_mbim 1-7:1.0 wwan0: register ‘cdc_mbim’ at usb-0000:00:14.0-7, CDC MBIM, 26:f0:21:81:71:d4 [1130255.464548] qcserial 1-7:1.2: Qualcomm USB modem converter detected [1130255.464582] usb 1-7: Qualcomm USB modem converter now attached to ttyUSB0
But during the firmware download, it doesn’t show any disconnection or any other messages
For normal boot up, module should enumerate both cdc-wdm port for MBIM and /dev/ttyUSB0 for DM port and /dev/ttyUSB1 for AT command port.
After "Switching device into download mode for image switch ", module should be reset and enumerate only one port /devttyUSB0 for downloading firmware.