Qualcomm Kernel » History » Version 1
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 | |||
57 | * smsm_* ?? |
||
58 | |||
59 | |||
60 | == MSM IPC socket |
||
61 | |||
62 | * arch/arm/mach-msm/ipc_socket.c |
||
63 | * AF_MSM_IPC |
||
64 | * |
||
65 | |||
66 | == packet ports |
||
67 | |||
68 | * Some kind of packet oriented interface towards the SMD |
||
69 | * msm_smd_pkt.c contains driver |
||
70 | ** smdpkt0..7+smd22 devices, 2048 byte buffer |
||
71 | ** open/release/read/write/poll syscalls implemented |