Firmware/Image switching guides from Sierra

Bjørn Mork bjorn at mork.no
Thu Jan 19 13:39:39 UTC 2017


Aleksander Morgado <aleksander at aleksander.es> writes:

> On Thu, Jan 19, 2017 at 11:06 AM, Bjørn Mork <bjorn at mork.no> wrote:
>>> In particular, I'm interested in adding support for the Sierra
>>> specific SLQSSwiGetAllCarrierImages() and SLQSSwiGetFirmwareCurr()
>>> messages; would like to see whether these have the same issue with the
>>> slot index.
>>
>> I suspect that these are simple wrappers around the same QMI requests,
>> just taking the images on the host into account as well.
>>
>> If you can run the GobiNet driver and the SDK, then you should be able
>> to see all QMI requests if you load the driver with 'debug=1' (which is
>> a very nice feature - thanks for that!).  That's a simple way to figure
>> out what the SDK is doing behind the scene.
>
> I didn't run the SDK, but I suspect the SLQSSwiGetFirmwareCurr() could
> be the DMS 0x5556 command that we have mapped as "Change device
> download mode" used for the HP lt4120....
>
> Quoted from https://lists.freedesktop.org/archives/libqmi-devel/2015-December/001445.html:
>
>> Please select one of the following options or press <Enter> to exit:
>> 1. Display the information for the executing device image
>> 2. Download a boot loader image to the device
>> 3. Download a firmware image to the device
>> 4. Download an NV item to the device
>> 5. Display the information for a particular spk/cwe image located on the host
>> 6. Display the information for a particular nvu image located on the host
>> Option: 1
>>
>> CWE Image Fields
>> ----------------
>> BOOT Version: SWI9X15C_05.05.58.00 r27038 carmd-fwbuild1 2015/03/04 18:38:46
>> AMSS Version: SWI9X15C_05.05.58.00 r27038 carmd-fwbuild1 2015/03/04 21:30:23
>> PRI Version: 9903554 05.02
>>
>> SPKG CWE Image Fields
>> ---------------------
>> Model ID: MC7304
>> BOOT Version: SWI9X15C_05.05.58.00 r27038 carmd-fwbuild1 2015/03/04 18:38:46
>> AMSS Version: SWI9X15C_05.05.58.00 r27038 carmd-fwbuild1 2015/03/04 21:30:23
>> SKU ID: 1102241
>> Package ID: 1102241_9903554_SWI9X15C_05.05.16.02_00_Generic_005.002_000
>> Carrier: 1
>> PRI version: 05.02
>
>
> The list of fields reported as "SPKG CWE Image Fields" seems to be
> very much in line with the TLVs I see in the DMS 0x5556 response:
>
> [19 ene 2017, 12:13:03] [Debug] [/dev/cdc-wdm2] Received message...
>>>>>>> RAW:
>>>>>>>   length = 131
>>>>>>>   data   = 01:82:00:80:02:03:02:01:00:56:55:76:00:02:04:00:00:00:00:00:18:0C:00:30:30:32:2E:30:32:36:5F:30:30:30:00:17:08:00:56:45:52:49:5A:4F:4E:00:16:08:00:30:30:30:2E:30:30:35:00:15:02:00:35:00:13:08:00:31:31:30:32:34:37:36:00:12:15:00:53:57:49:39:58:33:30:43:5F:30:32:2E:32:30:2E:30:33:2E:32:32:00:11:15:00:53:57:49:39:58:33:30:43:5F:30:32:2E:32:30:2E:30:33:2E:32:32:00:10:07:00:4D:43:37:34:35:35:00
>
> [19 ene 2017, 12:13:03] [Debug] [/dev/cdc-wdm2] Received message (translated)...
>>>>>>> QMUX:
>>>>>>>   length  = 130
>>>>>>>   flags   = 0x80
>>>>>>>   service = "dms"
>>>>>>>   client  = 3
>>>>>>> QMI:
>>>>>>>   flags       = "response"
>>>>>>>   transaction = 1
>>>>>>>   tlv_length  = 118
>>>>>>>   message     = "Change Device Download Mode" (0x5556)
>>>>>>> TLV:
>>>>>>>   type       = "Result" (0x02)
>>>>>>>   length     = 4
>>>>>>>   value      = 00:00:00:00
>>>>>>>   translated = SUCCESS
>>>>>>> TLV:
>>>>>>>   type       = "Field 0x18" (0x18)
>>>>>>>   length     = 12
>>>>>>>   value      = 30:30:32:2E:30:32:36:5F:30:30:30:00
>>>>>>>   translated = 002.026_000
>>>>>>> TLV:
>>>>>>>   type       = "Field 0x17" (0x17)
>>>>>>>   length     = 8
>>>>>>>   value      = 56:45:52:49:5A:4F:4E:00
>>>>>>>   translated = VERIZON
>>>>>>> TLV:
>>>>>>>   type       = "Field 0x16" (0x16)
>>>>>>>   length     = 8
>>>>>>>   value      = 30:30:30:2E:30:30:35:00
>>>>>>>   translated = 000.005
>>>>>>> TLV:
>>>>>>>   type       = "Field 0x15" (0x15)
>>>>>>>   length     = 2
>>>>>>>   value      = 35:00
>>>>>>>   translated = 5
>>>>>>> TLV:
>>>>>>>   type       = "Field 0x13" (0x13)
>>>>>>>   length     = 8
>>>>>>>   value      = 31:31:30:32:34:37:36:00
>>>>>>>   translated = 1102476
>>>>>>> TLV:
>>>>>>>   type       = "Field 0x12" (0x12)
>>>>>>>   length     = 21
>>>>>>>   value      = 53:57:49:39:58:33:30:43:5F:30:32:2E:32:30:2E:30:33:2E:32:32:00
>>>>>>>   translated = SWI9X30C_02.20.03.22
>>>>>>> TLV:
>>>>>>>   type       = "Field 0x11" (0x11)
>>>>>>>   length     = 21
>>>>>>>   value      = 53:57:49:39:58:33:30:43:5F:30:32:2E:32:30:2E:30:33:2E:32:32:00
>>>>>>>   translated = SWI9X30C_02.20.03.22
>>>>>>> TLV:
>>>>>>>   type       = "Field 0x10" (0x10)
>>>>>>>   length     = 7
>>>>>>>   value      = 4D:43:37:34:35:35:00
>>>>>>>   translated = MC7455
>
> i.e.
>
> TLV 0x10 --> Model (MC7455)
> TLV 0x11 --> BOOT version (SWI9X30C_02.20.03.22)
> TLV 0x12 --> AMSS version (SWI9X30C_02.20.03.22)
> TLV 0x13 --> SKU ID (1102476)
> TLV 0x14 -->
> Package ID (not given)
> TLV 0x15 --> Carrier id (5)
> TLV 0x16 --> PRI version (000.005)
> TLV 0x17 --> Carrier string (VERIZON)
> TLV 0x18 --> Config version/Unique ID (002.026_000)
>
> What do you think?

Sounds likely.

Another datapoint: This is from an almost 5 year old upgrade session
with my MC7710 (using an older version of the utility with fewer
options):



Please select one of the following options or press <Enter> to exit:
1. Display the information for the executing device image
2. Download an image to the device
3. Display the information for a particular image located on the host
2

Please specify the path (upto 510 Characters) or press <Enter> to return to the main menu: /home/bjorn/docs/hardware/sierra/mc7710/firmware/unpacked/QMI

-- Active Device Image Before Download --

CWE Image Fields
----------------
BOOT Version: SWI9200X_03.00.08.02BT R3715 CARMD-EN-10526 2011/11/14 18:34:41
AMSS Version: SWI9200X_03.00.08.02AP R3715 CARMD-EN-10526 2011/11/14 18:42:43
PRI Version: 9901463 01.01

SPKG CWE Image Fields
---------------------
Model ID: MC7710
BOOT Version: SWI9200X_03.00.08.02BT R3715 CARMD-EN-10526 2011/11/14 18:34:41
AMSS Version: SWI9200X_03.00.08.02AP R3715 CARMD-EN-10526 2011/11/14 18:42:43
SKU ID: 
Package ID: 
Carrier: 0
PRI version: 

-- Preparing to Download SPKG CWE image --


SPKG CWE Image Fields
---------------------
Model ID: SWI9200M
BOOT Version: 03.00.08.02
AMSS Version: 03.00.08.02
SKU ID: 9999999
Package ID: 001
Carrier: Generic
PRI version: 000.000




And it included this QMI request and reply:

01 0c 00 00 02 01 00 05 00 56 55 00 00

decoded:
<<<<<< QMUX:
<<<<<<   length  = 12
<<<<<<   flags   = 0x00
<<<<<<   service = "dms"
<<<<<<   client  = 1
<<<<<< QMI:
<<<<<<   flags       = "none"
<<<<<<   transaction = 5
<<<<<<   tlv_length  = 0
<<<<<<   message     = "Change Device Download Mode" (0x5556)


 01 a8 00 80 02 01 02 02 00 56 55 9c 00 02 04 00  00 00 00 00 10 07 00 4d 43 37 37 31 30 00 11 40  00 53 57 49 39 32 30 30 58 5f 30 33 2e 30 30 2e  30 38 2e 30 32 42 54 20 52 33 37 31 35 20 43 41  52 4d 44 2d 45 4e 2d 31 30 35 32 36 20 32 30 31  31 2f 31 31 2f 31 34 20 31 38 3a 33 34 3a 34 31  00 12 40 00 53 57 49 39 32 30 30 58 5f 30 33 2e  30 30 2e 30 38 2e 30 32 41 50 20 52 33 37 31 35  20 43 41 52 4d 44 2d 45 4e 2d 31 30 35 32 36 20  32 30 31 31 2f 31 31 2f 31 34 20 31 38 3a 34 32  3a 34 33 00 15 02 00 30 00

decoded:
>>>>>> QMUX:
>>>>>>   length  = 168
>>>>>>   flags   = 0x80
>>>>>>   service = "dms"
>>>>>>   client  = 1
>>>>>> QMI:
>>>>>>   flags       = "response"
>>>>>>   transaction = 2
>>>>>>   tlv_length  = 156
>>>>>>   message     = "Change Device Download Mode" (0x5556)
>>>>>> TLV:
>>>>>>   type       = "Result" (0x02)
>>>>>>   length     = 4
>>>>>>   value      = 00:00:00:00
>>>>>>   translated = SUCCESS
>>>>>> TLV:
>>>>>>   type   = 0x10
>>>>>>   length = 7
>>>>>>   value  = 4D:43:37:37:31:30:00
>>>>>> TLV:
>>>>>>   type   = 0x11
>>>>>>   length = 64
>>>>>>   value  = 53:57:49:39:32:30:30:58:5F:30:33:2E:30:30:2E:30:38:2E:30:32:42:54:20:52:33:37:31:35:20:43:41:52:4D:44:2D:45:4E:2D:31:30:35:32:36:20:32:30:31:31:2F:31:31:2F:31:34:20:31:38:3A:33:34:3A:34:31:00
>>>>>> TLV:
>>>>>>   type   = 0x12
>>>>>>   length = 64
>>>>>>   value  = 53:57:49:39:32:30:30:58:5F:30:33:2E:30:30:2E:30:38:2E:30:32:41:50:20:52:33:37:31:35:20:43:41:52:4D:44:2D:45:4E:2D:31:30:35:32:36:20:32:30:31:31:2F:31:31:2F:31:34:20:31:38:3A:34:32:3A:34:33:00
>>>>>> TLV:
>>>>>>   type   = 0x15
>>>>>>   length = 2
>>>>>>   value  = 30:00



So that's the same (including the redundant 0 string terminator):

 TLV 0x10 --> Model (MC7710)
 TLV 0x11 --> BOOT version (SWI9200X_03.00.08.02BT R3715 CARMD-EN-10526 2011/11/14 18:34:41)
 TLV 0x12 --> AMSS version (SWI9200X_03.00.08.02AP R3715 CARMD-EN-10526 2011/11/14 18:42:43)
 TLV 0x15 --> Carrier id (0)

but missing all the other TLVs. Many have no meaning on the MC7710
anyway, since it doesn't support carrier switching on the device.



Bjørn


More information about the libqmi-devel mailing list