EM7355 firmware interoperability and other questions

Hello,

will flashing firmware dedicated for other vendor rended the card unusable? Wll it change VID and PID? Is HP, Lenovo and Sierra-generic firmware switchable? I guess it may be not supported, but how does it work from technical point of view?

Regards,
Krzysztof

No…down loading different FW will not make the module get bricked(not usable) but however might have some registration/status issues depending on FW types. VID and PID will not be changed. I don’t think direct switching of FW is available but needs to be downloaded.

thanks,
Rex

Thanks, the answer was very helpful. Flashing generic firmware didn’t brick the modem and combination of cwe+nvu seems to work correctly.

I have, however, problems running EM7355 under Linux. When first booting into Windows and rebooting into Linux, everything is ok. When cold booting into Linux - the modem refuses to go online:

[size=85]OK
AT+CFUN?
+CFUN: 0

OK
AT+CFUN=1
ERROR
AT!PCINFO?
State: LowPowerMode
LPM force flags - W_DISABLE:0, User:0, Temp:0, Volt:0, BIOS:1, GOBIIM:0
W_DISABLE: 0
Poweroff mode: 0
LPM Persistent: 1[/size]

Is there any possibility to force the modem go to Online mode or ignore the Bios LPM flag?
rfkill doesn’t show any WWAN entry.

mbimcli shows:
Hardware Radio State: on
Software Radio State: off

I have also other problem: when modem is passed to Windows 7 Virtual Machine (regardless if host is on Windows or Linux), drivers for Modem, GPS, Network and Diagnostics couldn’t be started (This device cannot start - Code 10). Parent USB device doesn’t show any problems. The same OS image run on bare metal (VHD boot) works ok. Does the modem driver need to access some bare-metal hardware (possibly masked by virtualization layer) in order to work correctly?

Regards,
Krzysztof

I’ve observerd that enabling EM7355 USB interface number 8 (Network Device) under Windows changes the BIOS LPM flag.

State: LowPowerMode LPM force flags - W_DISABLE:0, User:0, Temp:0, Volt:0, BIOS:1, GOBIIM:0 W_DISABLE: 0 Poweroff mode: 0 LPM Persistent: 0 OK
State: LowPowerMode LPM force flags - W_DISABLE:0, User:0, Temp:0, Volt:0, BIOS:0, GOBIIM:0 W_DISABLE: 0 Poweroff mode: 0 LPM Persistent: 0 OK
State: Online LPM force flags - W_DISABLE:0, User:0, Temp:0, Volt:0, BIOS:0, GOBIIM:0 W_DISABLE: 0 Poweroff mode: 0 LPM Persistent: 0 OK

Which part in Linux drivers is responsible for this action? is this something related to usb_clear_halt()?

I’ve also noticed some “magic” AT Command output sent to host:
^MODE: 5
What is source of this command?

Regards,
Krzysztof

Using QMI drivers S2.20N2.27 (and a workaround…) allowed to remove BIOS lpm force flag.
Worked with CentOS 7 (kernel 3.10.0-123)
Here are the steps:

  1. Switch bConfigurationvalue to 1
  2. Compile and load unmodified GobiUSBNet module
  3. Unload this module
  4. Load modified GobiUSBNet with added proper VID:PID (e.g. {QMI_9X15_DEVICE(0x03f0, 0x4e1d)})
    (optional)
  5. Load GobiSerial Module or qcserial (of course with proper VID:PID added)
    AT!PCINFO? shows modem in Online state

after switching back to default configuration 2, mbimcli -d /dev/cdc-wdm0 --query-radio-state shows:
Hardware Radio State: on
Software Radio State: on

Without loading unmodified module, the modified one hangs for about 15 second and probe fails with error -110.

Regards,
Krzysztof