Project

General

Profile

Qualcomm Kernel » History » Version 3

laforge, 10/01/2016 03:51 PM

1 1 laforge
h1. Qualcomm Kernel
2
3
Random notes about the Qualcomm Kernel as used on the MDM9615
4
5
h2. diag
6
7
h3. diag forwarding
8
9
<pre>
10
drivers/char/diag/diagfwd.[ch]
11
drivers/usb/gadget/f_diag.[ch]
12
drivers/usb/misc/diag_bridge.c
13
</pre>
14
15
* the usb diag gadget handles diag packet read/write over usb
16
* issues events like USB_DIAG_READ_DONE
17
* picked up by diagfwd.c
18
** can forward diag requests via SMD shared memory to other processors
19
20
h3. diag char
21
22
<pre>
23
drivers/char/diag/diagchar_core.c
24
</pre>
25
26
* ioctl()s for diag configuration
27
* supports several concurrent diag clients
28
* diag logging can be directed to USB/HSIC, character device and more
29
** {USB,CALLBACK,MEMORY_DEVICE,UART,NO_LOGGING}_MODE
30
31
driver/schar/diag/diag_dci.c
32
33
* DCI table is a routing table where pid/sockets can register for a
34
  given DCI.  socket close/cleanup code releases all DCI routes for
35
  that socket.
36
37
h2. SMD (shared memory)
38
39
* SMD sub-systems:
40
** Modem (assumed to be hexagon with modem firmware?)
41
** Q6 (formerly known as LPASS == Low Power Audio SubSystem)
42
** DSPS
43
** WCNSS (Wireless Connectivity Sub System) aka 'riva'
44
** RPM (Resource Power Manager)
45
* inter-processor-interrupts for various 'edges'
46
47
h3. core driver
48
49
* arch/arm/mach-msm/smd.c
50
51
h4. api
52
* smd_open()
53
* smd_close()
54
* smd_write*()
55
* smd_read*()
56 2 laforge
* smsm_*()
57 1 laforge
58
59 3 laforge
h3. MSM IPC socket
60 1 laforge
61
* arch/arm/mach-msm/ipc_socket.c
62
* AF_MSM_IPC
63
64 3 laforge
65
h3. packet ports
66 1 laforge
67
* Some kind of packet oriented interface towards the SMD
68
* msm_smd_pkt.c contains driver
69
** smdpkt0..7+smd22 devices, 2048 byte buffer
70
** open/release/read/write/poll syscalls implemented
Add picture from clipboard (Maximum size: 48.8 MB)