Project

General

Profile

Actions

Qualcomm Kernel » History » Revision 3

« Previous | Revision 3/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
Files (0)

Updated by laforge over 7 years ago · 3 revisions

Add picture from clipboard (Maximum size: 48.8 MB)