EM7590 stuck in c081 or c082 and not updating firmware

System Environment:

  • Host Hardware: OnLogic Helix 52X (HX521)

  • USB Controller: Renesas uPD720202 USB 3.0 Host Controller (PCI 0000:26:00.0)

  • Modem: Sierra Wireless AirPrime EM7590 (Target Carrier: Odido / Generic Worldwide)

  • OS: Ubuntu 22.04.1

The very initial issue started when I was trying to connect to my mobile network provider (Odido in the Netherlands). The modem was not registering on the network or establishing a data connection properly with the default configuration.

Because I couldn’t connect I tried to flash the firmware (SWIX12C_03.01.02.00_GENERIC). When I tried using the Sierra flashing tools, it led to validation errors and the modem getting stuck in c081.

I started by trying to use the FDTL utility to flash the firmware. However, the tool immediately failed its hardware handshake, throwing this error: ‘Check model name failed, FDTL only support EM7590 or EM7595 or EM8695. Check image information failed. Exit download process.’ Modifying the FDTL source code to bypass this validation didn’t work.

Because FDTL failed, I switched to the modern Sierra MBPL SDK toolset (MBPL_SDK_R47_ENG4). I ran the firmware download utility, and it successfully connected and streamed the full .sop generic firmware payload to the card.

Right after the flash completed, the modem’s normal serial/AT ports completely disappeared. picocom could no longer open /dev/ttyUSB2 because the node was gone.

I checked lsusb and saw the modem was stuck in Qualcomm Download mode with Product ID 1199:c082, exposing only a single endpoint on /dev/ttyUSB0

I performed a full host cold-boot power cycle to force a hardware reset. After booting back up, the modem dropped to Product ID 1199:c081, which is where it is permanently looping right now.

How can I force it out of these states or successfully flash the firmware so that I can start connecting to the network?

from the patch here, c081 should be the normal boot:

BTW, is it possible to try in Windows platform?

Hello,

Thanks for replying so fast.

The thing is, it never finishes this:

Gets to Processing, but then it doesn’t finish. Says that the image is not found?

Also, I did try updating it on windows using the windows firmware but it runs into an issue as well and says it cannot update it.

but from your log, it can have /dev/ttyUSB2

Yes, /dev/ttyUSB2 was working perfectly at the very beginning when the tool first connected.

However, during the (Processing......), the flash process failed and hung. Right after that failure, the modem completely disconnected and changed its USB identity.

Currently, /dev/ttyUSB2 does not exist anymore. Running lsusb shows the card is stuck in Product ID 1199:c081 and it is only exposing a single endpoint on /dev/ttyUSB0.

Ans this is kind of the loop that keeps happening

If you now run the tool again, can it see /dev/ttyUSB2 ?

Yes, if I restart it yes, but once I use the tool and it sets the port then only one port shows (usb0)

Then i don’t quite understand why the tool can see AT command port, but you cannot