Deep Dive into the Linux PCIe Subsystem
Inside the PCIe subsystem: link training, DMA, SR-IOV, hot-plug, power management and kernel source walk-throughs.
Advanced30 lessons
written lessons≈ 15 h
Linux Kernel & Device Drivers · 30 illustrated lessons (text/HTML)
Outcomes
- Debug PCIe links from LTSSM traces to driver code
- Build a DMA-based FPGA accelerator driver
- Read and extend the PCIe kernel source with confidence
Where we teach this
- DRV-220 · PCIe Drivers & DMA Engines live cohort
The lessons
Every lesson in this curriculum, in the order we teach it.
- 1Course introduction
- 2PCIe protocol basics, part 1
- 3Introduction
- 4Overview
- 5Overview
- 6The Linux PCI driver framework, part 1
- 7The device probe() function explained
- 8Overview
- 9PCIe memory and I/O resource management
- 10PCIe interrupt handling
- 11Course goals
- 12Course overview
- 13SR-IOV technology overview
- 14Introduction
- 15PCIe power management overview
- 16Debugging fundamentals and toolchain
- 17Course introduction
- 18Introduction
- 19Hardware-level debugging: capturing PCIe link signals and analysing LTSSM
- 20Introduction
- 21Driver troubleshooting (part 2)
- 22Introduction: how serious interrupt problems can be
- 23PCIe link speed and width analysis
- 24Case study 1: writing a simple PCIe character-device driver
- 25Case study 2: writing a high-speed DMA driver for an FPGA PCIe accelerator
- 26Case study 3: writing a PF driver framework with SR-IOV support
- 27Course goals
- 28Introduction
- 29Introduction: why PCIe security and reliability matter
- 30PCIe evolution: from 5.0 to 6.0
All-access library
Every curriculum on this page, with the labs and lab sequences, for a year.