EM7565 stuck at downloading nvu when trying to upgrade firmware

I want to upgrade the firmware of my EM7565 from 01.08.04.00 to 01.14.02.00. Luckily I was able to download the latest firmware image and fwdwl-lite tool before the Sierra website went down. When trying the update though, the process is always stuck at

Downloading: /work/em7565_firmware/SWI9X50C_01.14.02.00_GENERIC_002.035_000/SWI9X50C_01.14.02.00_GENERIC_002.035_000.nvu

Even waiting for more than a day results in no progress.
I used the guide you can find here: sierra-wireless-modems/Sierra-Linux-QMI-SDK.md at master · danielewood/sierra-wireless-modems · GitHub
The whole output of the applications looks like this:

Application version: 1.0.2101.0
INFO: QDL Port  :  /dev/ttyUSB0
INFO: Device Path: /dev/cdc-wdm1
INFO: FW  Path  :  /work/em7565_firmware/SWI9X50C_01.14.02.00_GENERIC_002.035_000
Target image Info:
Carrier    :GENERIC
FW Version :01.14.02.00
Model ID   :SWI9X50C
Package ID :000
PRI Version:002.035
SKU        :9999999
file_type : 6
Switching device into download mode ...
Set pref ImageTypesSize: 2
Modem Needs FW
Modem Needs PRI
Modem current power state 3
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 ...
Sahara Hello Response sent successfully
Sahara Command Execute sent successfully
Sahara Switch to Firehose command sent successfully
Firehose configure cmd sent successfully
Firehose getstorageinfo cmd sent successfully
Firehose program cmd sent successfully
Downloading: /work/em7565_firmware/SWI9X50C_01.14.02.00_GENERIC_002.035_000/SWI9X50C_01.14.02.00_GENERIC_002.035_000.nvu
-

You can find the content of the log file here: CodePile | Easily Share Piles of Code
There seems to be no error, it’s just doing nothing. This is how the modem is configured:

ati
Manufacturer: Sierra Wireless, Incorporated
Model: EM7565
Revision: SWI9X50C_01.08.04.00 dbb5d0 jenkins 2018/08/21 21:40:11
IMEI: 353533101771205
IMEI SV:  8
FSN: UF046270130210
+GCAP: +CGSM


OK
at!image?
TYPE SLOT STATUS LRU FAILURES UNIQUE_ID   BUILD_ID
FW   1    GOOD   2   0 0      ?_?         01.08.04.00_?
FW   2    GOOD   1   0 0      ?_?         01.07.02.00_?
FW   3    GOOD   1   0 0      ?_?         01.09.04.00_?
FW   4    EMPTY  0   0 0                  
Max FW images: 4
Active FW image is at slot 255

TYPE SLOT STATUS LRU FAILURES UNIQUE_ID   BUILD_ID
PRI  FF   GOOD   0   0 0      002.008_004 01.07.02.00_ATT
PRI  FF   GOOD   0   0 0      002.015_000 01.09.04.00_DOCOMO
PRI  FF   GOOD   0   0 0      002.012_000 01.08.04.00_GENERIC
PRI  FF   GOOD   0   0 0      002.001_000 01.08.04.00_SIERRA
PRI  FF   GOOD   0   0 0      002.017_000 01.09.04.00_SOFTBANK
PRI  FF   GOOD   0   0 0      000.001_001 01.08.04.00_SPRINT
PRI  FF   GOOD   0   0 0      001.000_000 01.07.02.00_TELUS
PRI  FF   GOOD   0   0 0      002.015_001 01.08.04.00_VERIZON
Max PRI images: 50


OK
at!usbcomp?
Config Index: 1
Config Type:  3 (Generic)
Interface bitmask: 0000100D (diag,nmea,modem,mbim) 

OK

Sadly I can’t try the Windows application as the Sierra servers are offline right now. So does anyone have a hint why the linux firmware application might stuck at the downloading process?

what is the module status? what is ‘lsusb -t’ output?
If it is possible, can you provide a tool log with (-l log-name)

The module’s status seems functional. Before flashing the firmware lsusb reports

Bus 002 Device 002: ID 1199:9091 Sierra Wireless, Inc. Sierra Wireless EM7565 Qualcomm® Snapdragon™ X16 LTE-A

lsusb -t reports

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 10000M
    |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=qcserial, 5000M
    |__ Port 1: Dev 2, If 2, Class=Vendor Specific Class, Driver=qcserial, 5000M
    |__ Port 1: Dev 2, If 3, Class=Vendor Specific Class, Driver=qcserial, 5000M
    |__ Port 1: Dev 2, If 12, Class=Communications, Driver=cdc_mbim, 5000M
    |__ Port 1: Dev 2, If 13, Class=CDC Data, Driver=cdc_mbim, 5000M

After the firmware tool stucked, the module is stuck in the BOOTHOLD mode with PID 9090 and only one serial port on /dev/ttyUSB0 until a cold restart is performed.

You can find the log of the tool here: CodePile | Easily Share Piles of Code
I am not able to post it directly here since it contains to many characters.

Your module is in MBIM mode, would you please check which is DM port? I’ve asked our developer to review the log. Thanks

This seems to be a driver issue fixed in R18. Is it possible to try R18 driver?
The same tool works with R18 driver
Application version: 1.0.2101.0
INFO: QDL Port : /dev/ttyUSB0
INFO: Device Path: /dev/cdc-wdm0
INFO: FW Path : /home/dwen/work/mc/fw/75xx/01140200_generic
Target image Info:
Carrier :GENERIC
FW Version :01.14.02.00
Model ID :SWI9X50C
Package ID :000
PRI Version:002.035
SKU :9999999
file_type : 6
Switching device into download mode …
Set pref ImageTypesSize: 2
Modem Needs FW
Modem Needs PRI
Modem current power state 3
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/dwen/work/mc/fw/75xx/01140200_generic/SWI9X50C_01.14.02.00_GENERIC_002.035_000.nvu
Downloading: /home/dwen/work/mc/fw/75xx/01140200_generic/SWI9X50C_01.14.02.00.cwe
litefw_DownloadFW succeeded.
Waiting for modem to come up in ONLINE mode …
Modem is now in ONLINE mode …
FW update status: Successful
FW info from modem:
Model ID : EM7565
FW Version : SWI9X50C_01.14.02.00
Carrier Name : GENERIC
Carrier PRI Revision: 002.035_000
Firmware Download Process completed
Exiting Application!!!

Sorry, I can’t completely follow you. What driver do you mean exactly?

I believe we made some changes in qcserial driver in version R18.

Do you mean this fix: USB: serial: qcserial: fix altsetting probing · torvalds/linux@be4c5eb · GitHub ?
I am using Ubuntu 20.04.2 with kernel version 5.8.0-48. For this kernel version the qcserial driver is directly included in the kernel. The bugfix above is only available for linux kernel version 5.10 or higher though. Since I am bound to Ubuntu 20.04, I can’t update the kernel to 5.10 or above at the moment, as the highest kernel version for Ubuntu 20.04 is 5.8 right now.
Is there a way to get around this problem or is the firmware tool unusable with Ubuntu 20.04 and lower?

Sierra Wireless has some changes to the inbox qcserial driver. If you don’t mind, please sign a agreement from here: Dropbox - Software License Agreement for Wireless Modules (v2021.02.23).pdf - Simplify your life and send it back so I can work to grant you the access to the source code.

You will be asked for your company email address:
Customer Company E-mail address:
(No public email address allowed like @gmail, @hotmail, @yahoo.)

Why in the world would you want to do it as difficult as that for yourself and your customers? If you have a fix for the driver, then just submit it to mainline and be done with it.

It’s not like you can expect to keep the fix to a GPL driver “secret”…

In this case, I have to agree with @dl5162. It would take me weeks until I get the form signed by our bureaucracy. So a public solution would be very desirable.
My ultimate goal is to update the firmware, right now I am only using Linux since I got the software before the Sierra servers went offline. If you can provide me a download link for the Windows tool, I could alternatively just try to update the firmware with Windows.

Thanks for the reply. Currently our servers are down. I don’t have access either. Please wait for a while, the servers could be up shortly, then I can find it out.

Thanks for the feedback. I’ve forwarded your concern to our team.