| Kite - Bootstrap Admin Template

Linaro Connect 2025

LIS25-207 How (not) to write PCI(e) controller drivers in Linux Kernel

Technical presentation - 30 minutes (including q&a)

Linux kernel

  • Thursday, 15 May 10:30 - 10:55
  • Room: Session room 2 | Opala I & II

For Linux systems featuring without a BIOS that configures the PCI(e) bus (common for most of the ARM platforms), it is paramount to have a PCI(e) controller driver in the kernel to configure the bus and enumerate the endpoint devices. Such controller drivers are getting added to the kernel in almost every release. Unfortunately, most of these controller drivers are sub-optimal in how they operate. This talk is about how to get rid of the controller drivers in the kernel if possible (with a little bit of help from bootloaders) and if that is not possible, how to (re)write them in an optimal way reusing the existing infrastructure and avoid doing unnecessary address translations (hint: ECAM).

Download Slides

Add to My Agenda

Presented by

Profile Picture
Manivannan Sadhasivam
Senior Engineer at Linaro
Mani is a senior Linux kernel engineer on Linaro's Qualcomm Landing team. He is actively working on improving the upstream support for Qualcomm chipsets. Mani is maintaining the PCI Endpoint Subsystem... View more