Я ищу, как ядро выполнить перечисление PCI/PCIe и присвоение BAR., кому и когда назначить базовый адрес BARs устройства PCI/PCIe?
Я думал, что ядро назначит базовые адреса БАР при запуске, но когда я попробовал pci earlydump (до начальной инициализации PCI-подсистемы), чтобы увидеть разницу BAR, я обнаружил, что все базовые адреса уже назначены!? Означает ли это, что BIOS выполняет перечисление PCI/PCIe и назначение BAR? Как BIOS знает все базовые адреса устройств pci и назначает их без конфликтов?
И если да, то как встроенная система (без BIOS) перечисляет и назначает базовый адрес для устройств PCI/PCIe?
Кстати, мой компьютер Ubuntu 14.04.1 LTS (x86_64)
Кажется, что BIOS выполняет некоторое задание для конфигурационного пространства устройства PCI перед загрузкой ядра. Кто-нибудь знает, как bios (или загрузчик) перечислять и вычислять базовый адрес для каждого устройства? –