Linux Device Driver Development

Kernel Internals | BSP | Automotive | Embedded Systems

Character Drivers Platform Drivers PCIe / USB I2C / SPI Qualcomm BSP

Module 1 – Linux Kernel Fundamentals

  • Linux kernel architecture
  • User space vs kernel space
  • Kernel build & configuration
  • Loadable kernel modules

Module 2 – Character Device Drivers

  • Device files & major/minor numbers
  • file_operations structure
  • open, read, write, ioctl
  • Poll, select & async I/O

Module 3 – Platform Drivers & Device Tree

  • Platform driver model
  • Device Tree syntax & bindings
  • Probe & remove flow
  • Power & clock management

Module 4 – Interrupts & Concurrency

  • Interrupt handling
  • Top-half & bottom-half
  • Workqueues & tasklets
  • Spinlocks & mutexes

Module 5 – Memory Management

  • Kernel memory allocation
  • kmalloc vs vmalloc
  • DMA & coherent memory
  • Memory mapping to user space

Module 6 – Bus Drivers

  • I2C & SPI driver framework
  • USB driver architecture
  • PCIe subsystem
  • SerDes & high-speed buses

Module 7 – Power Management

  • Runtime PM
  • Suspend & resume
  • Clock framework
  • Thermal management

Module 8 – Debugging & Performance

  • printk & dynamic debug
  • ftrace & perf
  • Kernel crash analysis
  • Latency & throughput tuning

Module 9 – Security & Safety

  • Secure boot basics