如何在Linux中读取扩展的PCIE配置空间?

| 我已经尝试读取/ proc / bus / pci目录下的用户空间pci条目,并在驱动程序中调用内核空间API pci_read_config_word()。但似乎两者都只能读取pci基本配置空间,偏移量小于0x100。 我想读取的偏移量超出了0x100,有人可以告诉我如何在Linux中执行偏移量吗?如果是在内核空间中完成的话,告诉您要调用哪个API会非常感谢。非常感谢你!     
已邀请:
        
pci_read_config_word()
是正确的API,但是要访问扩展的配置空间,您需要使用MMCONFIG。这不是您设置的内容;如果可用,内核应该选择自己使用MMCONFIG。你看到类似的东西吗
e0000000-efffffff : PCI MMCONFIG 0000 [bus 00-ff]
/proc/iomem
?同样在内核日志中,您应该看到有关ACPI MCFG表和MMCONFIG的几行:
ACPI: MCFG 00000000bb7fec63 0003C (v01 LENOVO TP-6U    00001410 LNVO 00000001)
...
PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
当然,您的内核需要用
CONFIG_PCI_MMCONFIG=y
构建。     

要回复问题请先登录注册