Qualcomm Kernel » History » Revision 4
Revision 3 (laforge, 10/01/2016 03:51 PM) → Revision 4/22 (laforge, 10/01/2016 03:52 PM)
h1. Qualcomm Kernel Random notes about the Qualcomm Kernel as used on the MDM9615 h2. diag h3. diag forwarding <pre> drivers/char/diag/diagfwd.[ch] drivers/usb/gadget/f_diag.[ch] drivers/usb/misc/diag_bridge.c </pre> * 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 h3. diag char <pre> drivers/char/diag/diagchar_core.c </pre> * 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. h2. 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' h3. core driver * arch/arm/mach-msm/smd.c h4. api * smd_open() * smd_close() * smd_write*() * smd_read*() * smsm_*() h3. MSM IPC socket * arch/arm/mach-msm/ipc_socket.c * AF_MSM_IPC h3. 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