What is the Base Address Register (BAR) in PCIe?

Linux kernel point of view A good way to learn something is to interact with it, so let’s use the Linux kernel for that. Here is a minimal PCI example on a QEMU emulated device: https://github.com/cirosantilli/linux-kernel-module-cheat/blob/366b1c1af269f56d6a7e6464f2862ba2bc368062/kernel_module/pci.c The first 64 bytes of the PCI configuration are standardized as: Image from LDD3. So we can see that … Read more