Nos dispositivos PCI / PCI-X / PCI-E, existem registros BAR no espaço de configuração PCI. E durante a inicialização do Kernel do Linux, ele irá varrer o barramento PCI, encontrar todos os dispositivos PCI, incluindo ponte PCI-para-PCI e dispositivos PCI. E o kernel irá verificar quantas BARs existem no espaço de configuração dos dispositivos PCI. E verifique quanto espaço de memória cada BAR precisa e o tipo de espaço de memória escrevendo 0xFFFFFFFF no registro BAR. Então o kernel irá alocar os recursos de espaço de memória para os dispositivos PCI.
No seu caso, Region lion mostra os registros da BAR.
Em cada driver de dispositivo correspondente, pode-se obter o endereço físico base que o Kernel Linux aloca para cada BAR chamando pci_resource_start () e chamar pci_iomap () para mapear o endereço físico básico para o endereço virtual do kernel ou usando remap_pfn_range () para implementar um método mmap para o processo de espaço do usuário para mapear o endereço físico para o endereço virtual do processo de espaço do usuário.