MC7455 stuck in MBIM-only USB composition

Hi,

I’m using MC7455 modem on a Linux system, with latest firmware revision (SWI9X30C_02.08.02.00, Generic). I switched USB composition using AT!USBCOMP and AT!USBPID to check QMI and MBIM modes, but now the device is only exposing two MBIM interfaces… So I’m stuck and don’t know how to get back to another USB composition.

I found some threads (https://forum.sierrawireless.com/t/my-mc7710-cant-work-on-linux-after-plug-in-it-to-windows8/7986/1) which seem related, but the method is exactly what I tried to implement at first. I’m able to switch between USB compositions with MC7710 or MC73xx devices using QMI messages (DMS messages 0x555B and 0x555C) embedded into MBIM, but these QMI messages are invalid to MC7455.

Does anyone have some ideas about this issue?

Thank you in advance.

Huh? I think we need more details regarding how you send those QMI messages and what kind of response you see.

I’ve been switching MC7455 back and forth between QMI and MBIM mode many times using those QMI requests as well as the AT command interface. Even after upgrading to SWI9X30C_02.08.02.00.

(I also have another switching trick using a specially prepared .nvu file, but I consider that method a bit too experimental at the moment. Let’s try to figure out the QMI problem first)

Hi,

First of all, thank you for your fast reply.
It’s good news to read that a simple solution probably exists!

Here is the list of the interfaces currently exposed by my MC7455 (I made use of this useful script):

lsusb.py -ci
 1-2            0424:2517 09  2.00 480MBit/s 2mA 1IFs () hub
  1-2.1         1199:68b1 00  2.10 480MBit/s 500mA 2IFs (Sierra Wireless, Incorporated MC7455 LQ54510003041005)
   1-2.1:1.0    (IF) 02:0e:00 1EPs () cdc_mbim net/wwan0
   1-2.1:1.1    (IF) 0a:00:02 2EPs () cdc_mbim

lsusb -vd 1199:68b1
Bus 001 Device 010: ID 1199:68b1 Sierra Wireless, Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x1199 Sierra Wireless, Inc.
  idProduct          0x68b1
  bcdDevice            0.06
  iManufacturer           1 Sierra Wireless, Incorporated
  iProduct                2 MC7455
  iSerial                 3 LQ54510003041005
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           95
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              500mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         2
      bFunctionClass          2 Communications
      bFunctionSubClass      14
      bFunctionProtocol       0
      iFunction               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass     14
      bInterfaceProtocol      0
      iInterface              0
      CDC Header:
        bcdCDC               1.10
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1
      UNRECOGNIZED CDC:  0c 24 1b 00 01 00 10 20 80 00 08 20
      UNRECOGNIZED CDC:  08 24 1c 00 01 40 dc 05
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               9
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      2
      iInterface              0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      2
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Status:     0x0000
  (Bus Powered)

Then I’ll take the example of the command I send to read current and available USB compositions (QMI DMS 0x555b message).
DMS client ID is already allocated and correct.

Result with MC7304:

> 03 00 00 00 3d 00 00 00 08 00 00 00 01 00 00 00  ....=...........
   00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2  .........znC.e..
   4f b0 f0 d3 01 00 00 00 01 00 00 00 0d 00 00 00  O...............
   01 0c 00 00 02 02 00 01 00 5b 55 00 00           .........[U..   
<<<<<< Header:
<<<<<<   length      = 61
<<<<<<   type        = command (0x00000003)
<<<<<<   transaction = 8
<<<<<<  Fragment header:
<<<<<<   total   = 1
<<<<<<   current = 0
<<<<<< Contents:
<<<<<<   service = 'qmi-over-mbim' (d1a30bc2-f97a-6e43-bf65-c7e24fb0f0d3)
<<<<<<   cid     = 'unknown' (0x00000001)
<<<<<<   type    = 'set' (0x00000001)

< 03 00 00 80 56 00 00 00 08 00 00 00 01 00 00 00  ....V...........
   00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2  .........znC.e..
   4f b0 f0 d3 01 00 00 00 00 00 00 00 26 00 00 00  O...........&...
   01 25 00 80 02 02 02 01 00 5b 55 19 00 02 04 00  .%.......[U.....
   00 00 00 00 10 01 00 08 11 0b 00 0a 01 06 07 08  ................
   09 0a 0b 0c 0e 13                                ......          
 >>>>>> Header:
>>>>>>   length      = 86
>>>>>>   type        = command-done (0x80000003)
>>>>>>   transaction = 8
>>>>>> Fragment header:
>>>>>>   total   = 1
>>>>>>   current = 0
>>>>>> Contents:
>>>>>>   status error = 'None' (0x00000000)
>>>>>>   service      = 'qmi-over-mbim' (d1a30bc2-f97a-6e43-bf65-c7e24fb0f0d3)
>>>>>>   cid          = 'unknown' (0x00000001)

Current USB composition is 8, and I receive a list of available compositions which is coherent with AT!UDUSBCOMP result (1, 6, 7, 8, 9, 10, 11, 12, 14, 19).

Result with MC7455:

> 03 00 00 00 3d 00 00 00 08 00 00 00 01 00 00 00  ....=...........
   00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2  .........znC.e..
   4f b0 f0 d3 01 00 00 00 01 00 00 00 0d 00 00 00  O...............
   01 0c 00 00 02 03 00 01 00 5b 55 00 00           .........[U..   
<<<<<< Header:
<<<<<<   length      = 61
<<<<<<   type        = command (0x00000003)
<<<<<<   transaction = 8
<<<<<<  Fragment header:
<<<<<<   total   = 1
<<<<<<   current = 0
<<<<<< Contents:
<<<<<<   service = 'qmi-over-mbim' (d1a30bc2-f97a-6e43-bf65-c7e24fb0f0d3)
<<<<<<   cid     = 'unknown' (0x00000001)
<<<<<<   type    = 'set' (0x00000001)

< 03 00 00 80 44 00 00 00 08 00 00 00 01 00 00 00  ....D...........
   00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2  .........znC.e..
   4f b0 f0 d3 01 00 00 00 00 00 00 00 14 00 00 00  O...............
   01 13 00 80 02 03 02 01 00 5b 55 07 00 02 04 00  .........[U.....
   01 00 5e 00                                      ..^.            
>>>>>> Header:
>>>>>>   length      = 68
>>>>>>   type        = command-done (0x80000003)
>>>>>>   transaction = 8
>>>>>> Fragment header:
>>>>>>   total   = 1
>>>>>>   current = 0
>>>>>> Contents:
>>>>>>   status error = 'None' (0x00000000)
>>>>>>   service      = 'qmi-over-mbim' (d1a30bc2-f97a-6e43-bf65-c7e24fb0f0d3)
>>>>>>   cid          = 'unknown' (0x00000001)

So, MC7455 gives me the error code 94 (0x005e), indicating operation is not supported.
The way I implemented qmi-over-mbim service does not seem to be wrong, since I’m able to get and set bands configuration for MC7455 (for example).

Feel free to ask for any further detail.
Thank you for your help!

This is weird. The request you send is fine, as proven by the MC7304 succcess. I do not understand why you get that error with the MC7455.

To be absolutely sure that I didn’t miss anything, I switched my MC7455 to MBIM mode and tried the exact same command. Down to actually copying your requests and writing it directly to /dev/cdc-wdm0, after doing an MBIM open and allocating the same DMS CID.

perl -e 'print pack("C*", map { hex } @ARGV)'  03 00 00 00 3d 00 00 00 08 00 00 00 01 00 00 00    00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2     4f b0 f0 d3 01 00 00 00 01 00 00 00 0d 00 00 00    01 0c 00 00 02 03 00 01 00 5b 55 00 00 >/dev/cdc-wdm0

And it worked! I got this reply:

03 00 00 80 4f 00 00 00 08 00 00 00 01 00 00 00 00 00 00 00 d1 a3 0b c2 f9 7a 6e 43 bf 65 c7 e2 4f b0 f0 d3 01 00 00 00 00 00 00 00 1f 00 00 00 01 1e 00 80 02 03 02 01 00 5b 55 12 00 02 04 00 00 00 00 00 10 01 00 08 11 04 00 03 06 08 09

The firmware version is the same as yours:

$ mbimcli -d /dev/cdc-wdm0 --query-device-caps
[/dev/cdc-wdm0] Device capabilities retrieved:
              Device type: 'remote'
           Cellular class: 'gsm'
              Voice class: 'no-voice'
                Sim class: 'removable'
               Data class: 'umts, hsdpa, hsupa, lte'
                 SMS caps: 'pdu-receive, pdu-send'
                Ctrl caps: 'reg-manual'
             Max sessions: '8'
        Custom data class: 'unknown'
                Device ID: '35907206000xxxx'
            Firmware info: 'SWI9X30C_02.08.02.00'
            Hardware info: 'MC7455'

I have no idea what is going on here, which makes it even more risky to play with. But I’ll send you an .nvu file with instructions in private so you can consider trying that trick.

So the only solution was to try the tools you sent to me… And it worked! That’s really great job!

I let you decide whether it’s worth sharing, as far as I’m concern I keep it safe in case it happens again. I think I misused AT!USBCOMP and AT!USBPID commands, hence entering into an unexpected mode… But you sometimes need to expect the unexpected.

Thank you very much for your kind and fast help on this!


Edit:

Here are more information on the root of it.
These are the commands I had used:

AT!USBPID=68B1,68B0
OK
AT!USBCOMP?
Config Index: 1
Config Type:  2 (USBIF-MIBM)
Interface bitmask: 00001000 (mbim)

OK

And so, if your device is reset at this stage… You’ll find it back with MBIM only.
You have to activate more interfaces, for example:

AT!USBCOMP=1,1,100C
OK

FYI, I’m still unable to use QMI USB composition messages with this MBIM configuration, facing the “NOT SUPPORTED” issue (error 94).

Glad to hear that it worked. I’ll definitely consider sharing it if/when I feel confident enough about all the guesswork it is based on, and have cleaned up the code somewhat. The current state is mostly a proof-of-concept with notes scribbled all over, as you could see.

OK… Never tried that. The statements in the docs regarding type 2/3 has scared me away. But I do worry a lot :slight_smile:

Did you still have that PID after fixing up the USBCOMP?

Let’s assume it is related to the PID/type2 thing. It could very well be a deliberate feature. Maybe you aren’t supposed to be able to switch modes at all when using that PID? Only Sierra knows.

I’d recommend staying with the default PID. But you already know that now, don’t you :slight_smile:

Indeed, the statements of AT!USBCOMP=? scared me away as well, but I haven’t take enough precautions while switching, I haven’t thought all serial interfaces would have gone down… Yes, as a comparison I don’t always worry a lot… :slight_smile:

The PID stays the same that the one given by AT!USBPID, even if you can have multiple USB compositions for a specific PID. That really makes a lot of possibilities, but following my example, user has to be cautious. I definitely think this MBIM-only composition is a feature, what I don’t understand is why the QMI switching commands (in MBIM or direct) works in your case and not in mine.

Did you try it after resetting the Config Type to 1? I wonder what the true meaning of this config type value is? It could be related to which switching options are supported/available.

That was the first thing I tried, by directly using QMI this time, and result was the same : NOT SUPPORTED (0x5E).

Then I was on the move to produce some inputs for you, and it finally worked and returned 3 USB compositions (6, 8 and 9).
Here is my current configuration :

AT!USBPID?
!USBPID:
APP : 9071
BOOT: 9070
OK

AT!USBCOMP?
Config Index: 1
Config Type:  1 (Generic)
Interface bitmask: 0000050D (diag,nmea,modem,rmnet0,rmnet1)
OK

I would have said that was the configuration I was in when doing the first attempt, but I probably just don’t recall it right… :slight_smile:
So you’re probably right, on some configurations you just can’t get nor set USB composition.

Using my own experience, I would recommend to use carefully AT!USBPID and AT!USBCOMP, and to check them before a reboot : I had some difficulties in reaching available states (sometimes the sequence matters).

Hi!

I had the same problem. I changed the pid module em7455 and now I can’t change the composition. Only MBIM
mode is available. Can you give me a .nvu file that changes PID?

It’s been 3 years. My long term memory is closer to 3 minutes…

But more importantly: A lot has happend wrt support for many of the commands Sierra has been nice enough to provide both via AT and QMI. The latter should also be available in MBIM mode, using the Qualcomm QMUX MBIM service. Support for this is built into tools like qmicli nowadays. So you shouldn’t really have to mess with any sort of unsupported hack…

At least I’d like to see that all other alternatives are exhausted first. Please provide info on what you did to end up in this state, and what you have tried so far to get out of it. I am sure there are many ways to fix it. Some might even be supported by Sierra :slight_smile:

I changed the PID device to 68b1. The composition is only MBIM and I can’t get it back.
[ 1466.219604] usb 1-1: new high-speed USB device number 3 using ehci-pci
[ 1466.561555] cdc_mbim 1-1:1.0: cdc-wdm0: USB WDM device
[ 1466.563886] cdc_mbim 1-1:1.0 wwan0: register ‘cdc_mbim’ at usb-0000:00:0b.0-1, CDC MBIM, 42:91:f7:bf:37:03
[root@host-15 ~]# lsusb -vd 1199:68b1

Bus 001 Device 003: ID 1199:68b1 Sierra Wireless, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x1199 Sierra Wireless, Inc.
idProduct 0x68b1
bcdDevice 0.06
iManufacturer 1 Sierra Wireless, Incorporated
iProduct 2 EM7455
iSerial 3 LF53941104021012
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 95
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 2 Communications
bFunctionSubClass 14
bFunctionProtocol 0
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 14
bInterfaceProtocol 0
iInterface 0
CDC Header:
bcdCDC 1.10
CDC Union:
bMasterInterface 0
bSlaveInterface 1
CDC MBIM:
bcdMBIMVersion 1.00
wMaxControlMessage 4096
bNumberFilters 32
bMaxFilterSize 128
wMaxSegmentSize 2048
bmNetworkCapabilities 0x20
8-byte ntb input size
CDC MBIM Extended:
bcdMBIMExtendedVersion 1.00
bMaxOutstandingCommandMessages 64
wMTU 1500
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 9
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 2
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 2
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 12
bNumDeviceCaps 1
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000000
(Missing must-be-set LPM bit!)
can’t get debug descriptor: Resource temporarily unavailable
Device Status: 0x0000
(Bus Powered)

I changed the PID device to 68b1. The composition is only MBIM and I can’t get it back.
[ 1466.219604] usb 1-1: new high-speed USB device number 3 using ehci-pci
[ 1466.561555] cdc_mbim 1-1:1.0: cdc-wdm0: USB WDM device
[ 1466.563886] cdc_mbim 1-1:1.0 wwan0: register ‘cdc_mbim’ at usb-0000:00:0b.0-1, CDC MBIM, 42:91:f7:bf:37:03
[root@host-15 ~]# lsusb -vd 1199:68b1

Bus 001 Device 003: ID 1199:68b1 Sierra Wireless, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x1199 Sierra Wireless, Inc.
idProduct 0x68b1
bcdDevice 0.06
iManufacturer 1 Sierra Wireless, Incorporated
iProduct 2 EM7455
iSerial 3 LF53941104021012
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 95
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 2 Communications
bFunctionSubClass 14
bFunctionProtocol 0
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 14
bInterfaceProtocol 0
iInterface 0
CDC Header:
bcdCDC 1.10
CDC Union:
bMasterInterface 0
bSlaveInterface 1
CDC MBIM:
bcdMBIMVersion 1.00
wMaxControlMessage 4096
bNumberFilters 32
bMaxFilterSize 128
wMaxSegmentSize 2048
bmNetworkCapabilities 0x20
8-byte ntb input size
CDC MBIM Extended:
bcdMBIMExtendedVersion 1.00
bMaxOutstandingCommandMessages 64
wMTU 1500
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 9
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 2
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 2
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 12
bNumDeviceCaps 1
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000000
(Missing must-be-set LPM bit!)
can’t get debug descriptor: Resource temporarily unavailable
Device Status: 0x0000
(Bus Powered)

Please try qmicli --dms-swi-set-usb-composition=8 before giving up.

qmicli --dms-swi-get-usb-composition should list the supported alternatives, even in MBIM mode:

# qmicli --device-open-mbim -p -d /dev/cdc-wdm0   --dms-swi-get-usb-composition 
[/dev/cdc-wdm0] Successfully retrieved USB compositions:
            USB composition 6: DM, NMEA, AT, QMI
        [*] USB composition 8: DM, NMEA, AT, MBIM
            USB composition 9: MBIM

EDIT: If that doesn’t work, then maybe a firmware upgrade will? Try that. It can’t harm, and if you can’t flash an official upgrade then you are stuck anyway.

If the modem is truly locked to MBIM-only due to the PID, then you might try to flash https://www.mork.no/~bjorn/em7455-USB_APP_BOOT_PIDS-90719070-USB_COMP-0000100f.nvu

But this is very risky. I have never tested it, and never will… It’s a hack at best. And I do not know how the module will react. I have no docs. It’s all experimental. And just to repeat: I have not tried this myself…

FWIW, the contents of that NVU file is:

$ parsecwe.pl  em7455-USB_APP_BOOT_PIDS-90719070-USB_COMP-0000100f.nvu 
FLEHDR: FULL: val=1, code=3, hdrsz=400, imgsz=1289
CWEHDR: SPKG: crc=0x0007d14e, rev=3, val=NOPE, prod=9X30, imgsz=1289, imgcrc=0x31c3a892, date=06/25/19, compat=0x00000000, xxx=0x00000001
  imgcrc OK, version string: 'INTERNAL_9901234_SWI9X30C_00.00.00.00_00_BJORN_000.000_000'
  CWEHDR: FILE: crc=0xf2697aa7, rev=3, val=NOPE, prod=9X30, imgsz=889, imgcrc=0x09c95fdf, date=06/25/19, compat=0x00000000, xxx=0x00000001
    imgcrc OK, version string: 'INTERNAL_9901234_SWI9X30C_00.00.00.00_00_BJORN_000.000_000'
    CWEHDR: FILE: crc=0xf2697aa7, rev=3, val=NOPE, prod=9X30, imgsz=489, imgcrc=0x24cb1ecc, date=06/25/19, compat=0x01000000, xxx=0x00000001
      imgcrc OK, version string: '/nvup/NVUP_BJORN.022'
      CWEHDR: NVUP: crc=0xf2697aa7, rev=3, val=GOOD, prod=9X30, imgsz=89, imgcrc=0x72758a4a, date=06/25/19, compat=0x00000001, xxx=0x50617273
        imgcrc OK, version string: 'INTERNAL_9901234_SWI9X30C_00.00.00.00_00_BJORN_000.000_000'
        NVUP: 89 bytes, ver=1, count=2, foo=0001, bar=00000001
          #1     37 bytes: b=0001, c=0001, <08> USB_COMP => 01:00:00:00:0f:10:00:00
          #2     42 bytes: b=0001, c=0001, <08> USB_APP_BOOT_PIDS => 71:90:70:90