Project

General

Profile

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
Add picture from clipboard (Maximum size: 48.8 MB)