Project

General

Profile

Sierra Wireless Modems » History » Version 3

domi, 08/15/2018 08:22 PM

1 1 laforge
h1. Sierra Wireless Modems
2
3
Sierra Wireless also seems to offer a number of modems that run on MDM9615 or its successors, with Linux inside the module.
4
5
h2. List of related modems
6
7
* EM7455
8
* many others suspected, FIXME.
9
10
h2. Getting access to the Linux system
11
12
Sierra Wireless uses a bitmapped NVRAM variable to tell the system which functions to enable. One of these functions is 'adb'. They also implement an AT command to set this variable, but you cannot enable 'adb' there anymore (or maybe you can, using some other password?).
13
14
This AT command help text is taken from an old memory dump:
15
16
<pre>
17
#AT!USBCOMP=<Config Index>,<Config Type>,<Interface bitmask>
18
#  <Config Index>      - configuration index to which the composition applies, should be 1
19
#  <Config Type>       - 1:Generic, 2:USBIF-MBIM, 3:RNDIS
20
#                        config type 2/3 should only be used for specific Sierra PIDs: 68B1, 9068
21
#                        customized VID/PID should use config type 1
22
#  <Interface bitmask> - DIAG     - 0x00000001,
23
#                        ADB      - 0x00000002,
24
#                        NMEA     - 0x00000004,
25
#                        MODEM    - 0x00000008,
26
#                        RMNET0   - 0x00000100,
27
#                        RMNET1   - 0x00000400,
28
#                        RMNET2   - 0x00000800,
29
#                        MBIM     - 0x00001000,
30
#                        RNDIS    - 0x00004000,
31
#                        AUDIO    - 0x00010000,
32
#                        ECM      - 0x00080000,
33
#                        UBIST    - 0x00200000
34
</pre>
35
36
There are other ways to set this and other variables, so the AT comand interpreter restriction is not a show stopper.  Note that there are invalid gadget combinations, so you can softbrick the modem by changing this variable.
37 2 domi
38 3 domi
h2. Enable DIAG and AT interface - EM7455
39
40 2 domi
Based on my testing done with the EM7455 (found in Lenovo ThinkPads for example) you cannot use AT commands, because the AT serial port is not exposed. To enable the DIAG interface as well as the AT shell you can try to use the script "swi_usbcomp.pl" attached, created by Bjørn Mork. It is capable of showing the USB configurations available, and also changing the configuration.
41
42
Example output - querying the available configurations (the * denotes the active configuration):
43
44
<pre>
45
./swi_usbcomp.pl 
46
Running in MBIM mode (driver=cdc_mbim)
47
MBIM OPEN succeeded
48
QMI msg '0x0021' returned status = 1
49
MBIM QMI support verified
50
supports 33 QMI subsystems:
51
  0x00 (1.5)    'QMI_CTL'    - Control service
52
  0x01 (1.67)    'QMI_WDS'    - Wireless data service
53
  0x02 (1.14)    'QMI_DMS'    - Device management service
54
  0x03 (1.25)    'QMI_NAS'    - Network access service
55
  0x04 (1.6)    'QMI_QOS'    - Quality of service, err, service 
56
  0x05 (1.10)    'QMI_WMS'    - Wireless messaging service
57
  0x07 (1.3)    'QMI_AUTH'    - Authentication service
58
  0x08 (1.2)    'QMI_AT'    - AT command processor service
59
  0x09 (2.1)    'QMI_VOICE'    - Voice service
60
  0x0a (2.24)    'QMI_CAT2'    - Card application toolkit service (new)
61
  0x0b (1.45)    'QMI_UIM'    - UIM service
62
  0x0c (1.4)    'QMI_PBM'    - Phonebook service
63
  0x0f (1.0)    'QMI_TEST'    - Test service
64
  0x10 (2.0)    'QMI_LOC'    - Location service 
65
  0x11 (1.0)    'QMI_SAR'    - Specific absorption rate service
66
  0x17 (1.0)    'QMI_TS'    - Thermal sensors service
67
  0x18 (1.0)    'QMI_TMD'    - Thermal mitigation device service
68
  0x1a (1.16)    'QMI_WDA'    - Wireless data administrative service
69
  0x1d (1.1)    'QMI_CSVT'    - Circuit switched videotelephony service
70
  0x22 (1.0)    'QMI_COEX'    - Coexistence service
71
  0x24 (1.0)    'QMI_PDC'    - Persistent device configuration service
72
  0x29 (1.0)    'QMI_RFRPE'    - RF radiated performance enhancement service
73
  0x2a (1.0)    'QMI_DSD'    - Data system determination service
74
  0x2b (1.0)    'QMI_SSCTL'    - Subsystem control service
75
  0x2e (1.0)    'unknown'    - 
76
  0x30 (1.0)    'unknown'    - 
77
  0x31 (1.0)    'unknown'    - 
78
  0x36 (1.0)    'unknown'    - 
79
  0xe1 (1.0)    'QMI_RMS'    - Remote management service
80
  0xf0 (1.0)    'unknown'    - 
81
  0xf3 (1.0)    'unknown'    - 
82
  0xf5 (1.0)    'unknown'    - 
83
  0xf6 (1.0)    'unknown'    - 
84
QMI msg '0x0022' returned status = 1
85
Got QMI DMS client ID '3'
86
QMI msg '0x555b' returned status = 1
87
Current USB composition: 9
88
USB compositions:
89
   0 - HIP  DM    NMEA  AT    MDM1  MDM2  MDM3  MS      NOT SUPPORTED
90
   1 - HIP  DM    NMEA  AT    MDM1  MS                  NOT SUPPORTED
91
   2 - HIP  DM    NMEA  AT    NIC1  MS                  NOT SUPPORTED
92
   3 - HIP  DM    NMEA  AT    MDM1  NIC1  MS            NOT SUPPORTED
93
   4 - HIP  DM    NMEA  AT    NIC1  NIC2  NIC3  MS      NOT SUPPORTED
94
   5 - HIP  DM    NMEA  AT    ECM1  MS                  NOT SUPPORTED
95
   6 - DM   NMEA  AT    QMI                             SUPPORTED
96
   7 - DM   NMEA  AT    RMNET1 RMNET2 RMNET3            NOT SUPPORTED
97
   8 - DM   NMEA  AT    MBIM                            SUPPORTED
98
*  9 - MBIM                                             SUPPORTED
99
  10 - NMEA MBIM                                        NOT SUPPORTED
100
  11 - DM   MBIM                                        NOT SUPPORTED
101
  12 - DM   NMEA  MBIM                                  NOT SUPPORTED
102
  13 - Config1: comp6    Config2: comp8                 NOT SUPPORTED
103
  14 - Config1: comp6    Config2: comp9                 NOT SUPPORTED
104
  15 - Config1: comp6    Config2: comp10                NOT SUPPORTED
105
  16 - Config1: comp6    Config2: comp11                NOT SUPPORTED
106
  17 - Config1: comp6    Config2: comp12                NOT SUPPORTED
107
  18 - Config1: comp7    Config2: comp8                 NOT SUPPORTED
108
  19 - Config1: comp7    Config2: comp9                 NOT SUPPORTED
109
  20 - Config1: comp7    Config2: comp10                NOT SUPPORTED
110
  21 - Config1: comp7    Config2: comp11                NOT SUPPORTED
111
  22 - Config1: comp7    Config2: comp12                NOT SUPPORTED
112
QMI msg '0x0023' returned status = 1
113
</pre>
114
115
Changing the configuration is simple:
116
117
<pre>
118
./swi_usbcomp.pl –usbcomp=8
119
./swi_usbcomp.pl –reset
120
</pre>
121
122
As you can see ADB cannot be enabled for EM7455 using swi_usbcomp.pl, but at least DIAG and AT shell can be made accessible.
Add picture from clipboard (Maximum size: 48.8 MB)