get software version

Bjørn Mork bjorn at mork.no
Fri Jan 20 15:10:21 UTC 2017


Hello,

I noticed that you have implemented Get Software Version in qmicli and
tried it out. Looks like it has been extended since the version we have
documented in data/qmi-service-dms.json.  Running it on my EM7455 gives:


[20 Jan 2017, 15:13:44] [Debug] [/dev/cdc-wdm0] Received message (translated)...
>>>>>> QMUX:
>>>>>>   length  = 294
>>>>>>   flags   = 0x80
>>>>>>   service = "dms"
>>>>>>   client  = 3
>>>>>> QMI:
>>>>>>   flags       = "response"
>>>>>>   transaction = 1
>>>>>>   tlv_length  = 282
>>>>>>   message     = "Get Software Version" (0x0051)
>>>>>> TLV:
>>>>>>   type       = "Result" (0x02)
>>>>>>   length     = 4
>>>>>>   value      = 00:00:00:00
>>>>>>   translated = SUCCESS
>>>>>> TLV:
>>>>>>   type       = "Version" (0x01)
>>>>>>   length     = 32
>>>>>>   value      = 2E:32:2E:35:2E:31:2E:63:31:2D:30:30:31:31:30:2D:4D:39:36:33:35:54:41:41:41:41:4E:41:5A:4D:2D:31
>>>>>>   translated = .2.5.1.c1-00110-M9635TAAAANAZM-1
>>>>>> TLV:
>>>>>>   type   = 0x10
>>>>>>   length = 237
>>>>>>   value  = 05:01:00:00:00:2F:42:4F:4F:54:2E:42:46:2E:32:2E:32:2D:32:2E:32:2E:30:36:30:30:35:3A:41:41:41:54:41:4E:41:5A:41:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32:02:00:00:00:29:54:5A:2E:42:46:2E:32:2E:33:2D:30:30:31:33:37:3A:4A:41:46:41:41:4E:42:41:41:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32:04:00:00:00:2A:52:50:4D:2E:42:46:2E:31:2E:33:2D:30:30:31:35:37:3A:41:41:41:41:41:4E:41:41:52:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32:09:00:00:00:30:4D:50:53:53:2E:42:4F:2E:32:2E:35:2E:31:2E:43:31:2D:30:30:31:31:30:3A:54:41:41:41:41:4E:41:5A:51:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32:0A:00:00:00:21:41:44:53:50:2E:42:46:2E:32:2E:34:2E:35:2D:30:30:30:37:33:3A:41:41:41:41:41:41:41:41:51:3A:43:52:4D

[/dev/cdc-wdm0] Software version: .2.5.1.c1-00110-M9635TAAAANAZM-1


TLV 0x10 looks like an array of type(?) and version string for different
parts of the system, where "type" is a 32bit number with the values 1,
2, 4, 9 and 10 in my case. Do these match any known enums?

The array starts with a one-byte number of elements, and each string
value is prefixed with a one-byte length.  Trying to decode the above
gives:

 5 elements (05)

  type   = 1 (01:00:00:00)
  strlen = 47 (2F)
  string = BOOT.BF.2.2-2.2.06005:AAATANAZA:CARMD-EV-FRMWR2 (42:4F:4F:54:2E:42:46:2E:32:2E:32:2D:32:2E:32:2E:30:36:30:30:35:3A:41:41:41:54:41:4E:41:5A:41:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32)

  type   = 2 (02:00:00:00)
  strlen = 41 (29)
  string = TZ.BF.2.3-00137:JAFAANBAA:CARMD-EV-FRMWR2 (54:5A:2E:42:46:2E:32:2E:33:2D:30:30:31:33:37:3A:4A:41:46:41:41:4E:42:41:41:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32)

  type   = 4 (04:00:00:00)
  strlen = 42 (2A)
  tring  = RPM.BF.1.3-00157:AAAAANAAR:CARMD-EV-FRMWR2 (52:50:4D:2E:42:46:2E:31:2E:33:2D:30:30:31:35:37:3A:41:41:41:41:41:4E:41:41:52:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32)

  type   = 9 (09:00:00:00)
  strlen = 48 (30)
  string =  MPSS.BO.2.5.1.C1-00110:TAAAANAZQ:CARMD-EV-FRMWR2 (4D:50:53:53:2E:42:4F:2E:32:2E:35:2E:31:2E:43:31:2D:30:30:31:31:30:3A:54:41:41:41:41:4E:41:5A:51:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32)
 
  type   = 10 (0A:00:00:00)
  strlen = 33 (21)
  string = ADSP.BF.2.4.5-00073:AAAAAAAAQ:CRM (41:44:53:50:2E:42:46:2E:32:2E:34:2E:35:2D:30:30:30:37:33:3A:41:41:41:41:41:41:41:41:51:3A:43:52:4D)


Useful for the firmware update utilities?  This request seems to deal
with the Qualcomm parts of the firmware, possibly using Qualcomm version
strings?  Might make them comparable between vendors using the same
chips?


Bjørn


More information about the libqmi-devel mailing list