Project

General

Profile

EC20 Linux » History » Version 6

laforge, 12/26/2016 09:22 PM
qescape mechanism

1 3 laforge
{{>toc}}
2
3 1 laforge
h1. EC20 Linux
4
5 4 laforge
h2. Kernel Version
6
7 5 laforge
It is using a modified version of a [[Qualcomm_Kernel]] which is available from https://source.codeaurora.org/quic/femto/kernel/msm
8
9 4 laforge
<pre>
10
$ for rev in `git tag | grep \^LNX.LE.2`; do patchsize=$(git diff -w $rev | wc -l); echo $patchsize $rev; done
11
19247 LNX.LE.2.0-23056-9x15
12
19188 LNX.LE.2.0-23060-9x15
13
19188 LNX.LE.2.0-23061-9x15
14
127972 LNX.LE.2.0-23115-9x15
15
</pre>
16
17
based on this we can see that the EC20 is using a @LNX.LE.2.0-23060-9x15@ derived version with about 19k lines of residual diff of Quectel specific changes.
18
19 1 laforge
h2. SMD
20
21
<pre>
22
root@9615-cdp:/sys/kernel/debug/smd# cat tbl
23
name=DS cid=0 ch type=0 xfer type=1 ref_count=2
24
name= cid=0 ch type=0 xfer type=0 ref_count=0
25
name= cid=0 ch type=0 xfer type=0 ref_count=0
26
name= cid=0 ch type=0 xfer type=0 ref_count=0
27
name=MSGR_SMD_P1 cid=4 ch type=11 xfer type=2 ref_count=2
28
name=MSGR_SMD_P0 cid=5 ch type=11 xfer type=2 ref_count=2
29
name=IPCRTR cid=6 ch type=1 xfer type=2 ref_count=1
30
name=IPCRTR cid=7 ch type=2 xfer type=2 ref_count=1
31
name=sys_mon cid=8 ch type=1 xfer type=2 ref_count=1
32
name=DIAG_CNTL cid=9 ch type=1 xfer type=2 ref_count=2
33
name=DIAG cid=10 ch type=1 xfer type=2 ref_count=2
34
name=apr_audio_svc cid=11 ch type=1 xfer type=2 ref_count=1
35
name=apr_voice_svc cid=12 ch type=2 xfer type=2 ref_count=2
36
name=apr_apps2 cid=13 ch type=1 xfer type=2 ref_count=1
37
name=RPCRPY_CNTL cid=14 ch type=0 xfer type=2 ref_count=2
38
name=IPCROUTER cid=15 ch type=0 xfer type=0 ref_count=1
39
name=SSM_RTR cid=16 ch type=0 xfer type=2 ref_count=1
40
name=sys_mon cid=17 ch type=0 xfer type=2 ref_count=1
41
name=DIAG_2 cid=18 ch type=0 xfer type=2 ref_count=2
42
name=DIAG_CNTL cid=19 ch type=0 xfer type=2 ref_count=2
43
name=DIAG cid=20 ch type=0 xfer type=2 ref_count=2
44
name=apr_voice_svc cid=21 ch type=0 xfer type=2 ref_count=1
45
name=DATA1 cid=22 ch type=0 xfer type=2 ref_count=2
46
name=DATA2 cid=23 ch type=0 xfer type=2 ref_count=2
47
name=DATA3 cid=24 ch type=0 xfer type=2 ref_count=2
48
name=DATA4 cid=25 ch type=0 xfer type=2 ref_count=2
49
name=DATA11 cid=26 ch type=0 xfer type=1 ref_count=2
50
name=DATA40 cid=27 ch type=0 xfer type=2 ref_count=2
51
name=DATA40_CNTL cid=28 ch type=0 xfer type=2 ref_count=2
52
name=DATA8 cid=29 ch type=0 xfer type=2 ref_count=2
53
name=DATA5_CNTL cid=30 ch type=0 xfer type=2 ref_count=2
54
name=DATA6_CNTL cid=31 ch type=0 xfer type=2 ref_count=2
55
name=DATA7_CNTL cid=32 ch type=0 xfer type=2 ref_count=2
56
name=DATA8_CNTL cid=33 ch type=0 xfer type=2 ref_count=2
57
name=GPSNMEA cid=34 ch type=0 xfer type=2 ref_count=2
58
</pre>
59
60
<pre>
61
root@9615-cdp:/sys/kernel/debug/smd# cat ch 
62
ch00:   OPENED(0000/0000) dcCiwrsb <->   OPENED(0000/0000) dCciwrsB :  2000
63
ch04:   OPENED(12944/12944) DCCiwrsB <->   OPENED(12312/12312) DCCiwrsB :  8000
64
ch05:   OPENED(0000/0000) DCCiwrsb <->   OPENED(28712/28712) DCCiwrsB : 10000
65
ch06:   OPENED(1872/1872) DCCiwrsB <->   OPENED(0216/0216) DCCiwrsB :  2000
66
ch07:   CLOSED(0000/0000) dcciwrsb <->  OPENING(0000/0000) DCCiwrSb :  2000
67
ch08:   CLOSED(0000/0000) dcciwrsb <->  OPENING(0000/0000) DCCiwrSb :   400
68
ch09:   OPENED(0952/0952) DCCiwrsb <->   OPENED(0438/0438) DCCiwrsB :   400
69
ch10:   OPENED(0000/0000) DCCiwrsb <->   OPENED(0000/0000) DCCiwrsb :  2000
70
ch11:   CLOSED(0000/0000) dcciwrsb <->  OPENING(0000/0000) DCCiwrSb :  2000
71
ch12:   OPENED(0000/0000) DCCiwrsb <->   OPENED(0000/0000) DCCiwrsb :  2000
72
ch13:   CLOSED(0000/0000) dcciwrsb <->  OPENING(0000/0000) DCCiwrSb :  2000
73
ch14:   OPENED(0412/0412) DCCiwrsB <->   OPENED(0140/0140) DCCiwrsB :   400
74
ch15:   CLOSED(0000/0000) dcciwrsb <->  OPENING(0000/0000) DCCiwrSb :  2000
75
ch16:   CLOSED(0000/0000) dcciwrsb <->  OPENING(0000/0000) DCCiwrSb :  2000
76
ch17:   CLOSED(0000/0000) dcciwrsb <->  OPENING(0000/0000) DCCiwrSb :   400
77
ch18:   OPENED(0000/0000) DCCiwrsb <->   OPENED(0000/0000) DCCiwrsb :  2000
78
ch19:   OPENED(0952/0952) DCCiwrsb <->   OPENED(0370/0370) DCCiwrsB :   400
79
ch20:   OPENED(0000/0000) DCCiwrsb <->   OPENED(0000/0000) DCCiwrsb :  2000
80
ch21:   CLOSED(0000/0000) dcciwrsb <->  OPENING(0000/0000) DCCiwrSb :  2000
81
ch22:   CLOSED(0000/0000) dcciwrsb <->  OPENING(0000/0000) dCciwrSb :  2000
82
ch23:   OPENED(0000/0000) dcCiwrsb <->   OPENED(0000/0000) dCciwrsb :  2000
83
ch24:   OPENED(0000/0000) DCCiwrsb <->   OPENED(0000/0000) dCciwrsb :  2000
84
ch25:   CLOSED(0000/0000) dcciwrsb <->  OPENING(0000/0000) dCciwrSb :  2000
85
ch26:   CLOSED(0000/0000) dcciwrsb <->  OPENING(0000/0000) dCciwrSb :  2000
86
ch27:   CLOSED(0000/0000) dcciwrsb <->  OPENING(0000/0000) dcciwrSb :  2000
87
ch28:   OPENED(0000/0000) DCCiwrsb <->   OPENED(0000/0000) DCCiwrsB :  2000
88
ch29:   CLOSED(0000/0000) dcciwrsb <->  OPENING(0000/0000) dcciwrSb :  2000
89
ch30:   OPENED(0266/0266) DCCiwrsB <->   OPENED(0807/0807) DCCiwrsB :   400
90
ch31:   OPENED(0237/0237) DCCiwrsB <->   OPENED(0415/0415) DCCiwrsB :   400
91
ch32:   OPENED(0237/0237) DCCiwrsB <->   OPENED(0415/0415) DCCiwrsB :   400
92
ch33:   OPENED(0237/0237) DCCiwrsB <->   OPENED(0415/0415) DCCiwrsB :   400
93
ch34:   OPENED(0000/0000) DCCiwrsb <->   OPENED(0000/0000) dCciwrsb :  2000
94
</pre>
95
96 2 laforge
h2. ASOC
97
98
<pre>
99
root@9615-cdp:/sys/kernel/debug/asoc# cat dais
100
rt5616-aif1
101
null-codec-dai
102
null-codec-dai
103
null-codec-dai
104
null-codec-dai
105
null-codec-dai
106
null-codec-dai
107
null-codec-dai
108
null-codec-dai
109
null-codec-dai
110
null-codec-dai
111
null-codec-dai
112
null-codec-dai
113
null-codec-dai
114
msm-dai-stub
115
DTMF_RX_HOSTLESS
116
SEC_I2S_RX_HOSTLESS
117
MI2S_TX_HOSTLESS
118
VoLTE
119
VOICE_STUB
120
AUXPCM_HOSTLESS
121
HDMI_HOSTLESS
122
AFE-PROXY
123
INT_FM_HOSTLESS
124
SLIMBUS0_HOSTLESS
125
MultiMedia4
126
MultiMedia3
127
VoIP
128
CS-VOICE
129
MultiMedia2
130
MultiMedia1
131
msm-dai-q6.32771
132
msm-dai-q6.32772
133
msm-dai-q6.32773
134
msm-dai-q6.13
135
msm-dai-q6.12
136
msm-dai-q6.3
137
msm-dai-q6.2
138
msm-dai-q6.225
139
msm-dai-q6.241
140
msm-dai-q6.240
141
msm-dai-q6.224
142
msm-dai-q6.5
143
msm-dai-q6.4
144
msm-dai-q6.1
145
msm-dai-q6.0
146
msm-dai-q6.12289
147
msm-dai-q6.12288
148
msm-dai-q6.16385
149
msm-dai-q6.16384
150
msm-stub-tx
151
msm-stub-rx
152
</pre>
153
154
<pre>
155
root@9615-cdp:/sys/kernel/debug/asoc# cat platforms 
156
msm-pcm-hostless
157
msm-pcm-afe
158
msm-pcm-routing
159
msm-multi-ch-pcm-dsp
160
msm-pcm-dsp
161
msm-host-pcm-voice
162
msm-pcm-dtmf
163
msm-voip-dsp
164
msm-pcm-voice
165
snd-soc-dummy
166
</pre>
167
168
169 1 laforge
170
h2. BAM
171
172
<pre>
173
root@9615-cdp:/sys/kernel/debug/bam_dmux# cat tbl
174
ch00  local open=Y  remote open=Y
175
ch01  local open=Y  remote open=Y
176
ch02  local open=Y  remote open=Y
177
ch03  local open=Y  remote open=Y
178
ch04  local open=N  remote open=N
179
ch05  local open=N  remote open=N
180
ch06  local open=N  remote open=N
181
ch07  local open=N  remote open=N
182
ch08  local open=N  remote open=N
183
</pre>
184
185
<pre>
186
root@9615-cdp:/sys/kernel/debug/bam_dmux# cat log
187
<DMUX> timestamp FLAGS [Message]
188
FLAGS:
189
        D: 1 = Power collapse disabled
190
        R: 1 = in global reset
191
        P: 1 = BAM is powered up
192
        A: 1 = BAM initialized and ready for data
193
194
        V: 1 = Uplink vote for power
195
        U: 1 = Uplink active
196
        W: 1 = Uplink Wait-for-ack
197
        A: 1 = Uplink ACK received
198
        #: >=1 On-demand uplink vote
199
        D: 1 = Disconnect ACK active
200
<DMUX> 2.068151990 drPa vuwa0D bam_dmux_smsm_cb: 0x00000000 -> 0x0800802b
201
<DMUX> 2.068182511 drPa vuwa0D bam_dmux_smsm_cb: init
202
<DMUX> 2.068213031 drPa vuwa0D grab_wakelock: ref count = 0
203
<DMUX> 2.068213031 drPa vuwa0D vote_dfab
204
<DMUX> 2.072150159 drPa vuwa0D toggle_apps_ack: apps ack 0->1
205
<DMUX> 2.072333281 drPA vuwa0D grab_wakelock: ref count = 1
206
<DMUX> 2.072363802 drPA vuwa0D handle_bam_mux_cmd: opening cid 0 PC disabled
207
<DMUX> 2.072913168 DrPA vUwa0D handle_bam_mux_cmd: opening cid 1 PC disabled
208
<DMUX> 2.073157331 DrPA vUwa0D handle_bam_mux_cmd: opening cid 2 PC disabled
209
<DMUX> 2.073401494 DrPA vUwa0D handle_bam_mux_cmd: opening cid 3 PC disabled
210
<DMUX> 2.135632534 DrPA vUwa0D release_wakelock: ref count = 2
211
<DMUX> 3.072424842 DrPA vUwa0D ul_powerdown: powerdown
212
<DMUX> 3.072455363 DrPA vUwa0D release_wakelock: ref count = 1
213
<DMUX> 3.072455363 DrPA vuwa0D unvote_dfab
214
<DMUX> 4.041233022 DrPA vuwa0D bam_dmux_smsm_cb: 0x08008029 -> 0x0800a02b
215
<DMUX> 4.041263542 DrPA vuwa0D bam_dmux_smsm_cb: already processed this state
216
<DMUX> 10.602899433 DrPA vuwa0D grab_wakelock: ref count = 0
217
<DMUX> 10.602929954 DrPA vuwa0D vote_dfab
218
<DMUX> 10.603479320 DrPA vUwa0D notify_all: cid=0, event=2, data=0
219
<DMUX> 11.603815044 DrPA vUwa0D ul_timeout: pkt written 1
220
<DMUX> 12.606409276 DrPA vUwa0D ul_powerdown: powerdown
221
<DMUX> 12.606439796 DrPA vUwa0D release_wakelock: ref count = 1
222
<DMUX> 12.606439796 DrPA vuwa0D notify_all: cid=0, event=3, data=0
223
<DMUX> 12.606470317 DrPA vuwa0D notify_all: cid=1, event=3, data=0
224
<DMUX> 12.606470317 DrPA vuwa0D notify_all: cid=2, event=3, data=0
225
<DMUX> 12.606500837 DrPA vuwa0D notify_all: cid=3, event=3, data=0
226
<DMUX> 12.606500837 DrPA vuwa0D unvote_dfab
227 6 laforge
</pre>/
228
229
h2. QESCAPE
230
231
* the u_smd.c file of the USB Gadget for SMD-based serial port forwarding is extended by Quectel.
232
* it introduces a work queue that is scheduled in case of +++ detction on the AT command port: @qescape_handle()@
233
* whenever +++ escaping is detected, a sysfs property @/proc/sys/kernel/qmodem_mode@ is set
234
* this property is picked up in userspace by @quec_bridge@ and @quectel_daemon@
Add picture from clipboard (Maximum size: 48.8 MB)