Technical presentation - 30 minutes (including q&a)
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).
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, Qualcomm MHI bus, a few ARM SoC architectures, and several drivers in Linux Kernel. Recently, he became the designated reviewer for PCI controller drivers in the kernel.