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).