Actions
Qualcomm Kernel » History » Revision 2
« Previous |
Revision 2/22
(diff)
| Next »
laforge, 10/01/2016 03:51 PM
Qualcomm Kernel¶
Random notes about the Qualcomm Kernel as used on the MDM9615
diag¶
diag forwarding¶
drivers/char/diag/diagfwd.[ch] drivers/usb/gadget/f_diag.[ch] drivers/usb/misc/diag_bridge.c
- the usb diag gadget handles diag packet read/write over usb
- issues events like USB_DIAG_READ_DONE
- picked up by diagfwd.c
- can forward diag requests via SMD shared memory to other processors
diag char¶
drivers/char/diag/diagchar_core.c
- ioctl()s for diag configuration
- supports several concurrent diag clients
- diag logging can be directed to USB/HSIC, character device and more
- {USB,CALLBACK,MEMORY_DEVICE,UART,NO_LOGGING}_MODE
driver/schar/diag/diag_dci.c
- DCI table is a routing table where pid/sockets can register for a
given DCI. socket close/cleanup code releases all DCI routes for
that socket.
SMD (shared memory)¶
- SMD sub-systems:
- Modem (assumed to be hexagon with modem firmware?)
- Q6 (formerly known as LPASS Low Power Audio SubSystem)
- DSPS
- WCNSS (Wireless Connectivity Sub System) aka 'riva'
- RPM (Resource Power Manager)
- inter-processor-interrupts for various 'edges'
core driver¶
- arch/arm/mach-msm/smd.c
api
- smd_open()
- smd_close()
- smd_write*()
- smd_read*()
- smsm_*()
MSM IPC socket
- arch/arm/mach-msm/ipc_socket.c
- AF_MSM_IPC *
== packet ports
- Some kind of packet oriented interface towards the SMD
- msm_smd_pkt.c contains driver
- smdpkt0..7+smd22 devices, 2048 byte buffer
- open/release/read/write/poll syscalls implemented
Updated by laforge almost 8 years ago · 2 revisions