Operating system 定位RSDP后如何查找MCFG表?

Operating system 定位RSDP后如何查找MCFG表?,operating-system,bios,acpi,Operating System,Bios,Acpi,我通过搜索有效字符串找到了RSDP 我知道这个表包含一个指向XSDT的指针 然而,我比较了“长度”和XSDT中的条目,只找到了FACP、APIC和SSDT表 这是否意味着系统不包含MCFG表 因此,我无法使用内存映射访问PCIe配置空间 非常感谢 MCFG不属于ACPI规范的一部分。PCI固件规范文档中描述了该表 第2.7.2节规定 ACPI MCFG表描述PCI Express配置空间的位置,该表将出现在符合本规范3.0版(或更高版本)的固件实现中 因此,这意味着您的固件不符合PCI固件规范v

我通过搜索有效字符串找到了RSDP

我知道这个表包含一个指向XSDT的指针

然而,我比较了“长度”和XSDT中的条目,只找到了FACP、APIC和SSDT表

这是否意味着系统不包含MCFG表

因此,我无法使用内存映射访问PCIe配置空间


非常感谢

MCFG不属于ACPI规范的一部分。PCI固件规范文档中描述了该表

第2.7.2节规定

ACPI MCFG表描述PCI Express配置空间的位置,该表将出现在符合本规范3.0版(或更高版本)的固件实现中

因此,这意味着您的固件不符合PCI固件规范v3.0或更高版本

进一步阅读关于ECAM的第4.1节

在PC兼容系统上,增强的配置访问机制允许使用内存原语而不是基于I/O的原语(CF8/CFC机制)访问PCI配置空间

因此,这意味着在您的情况下,如果您谈论的是PC兼容系统,那么只能使用类型1(CF8/CFC)访问PCI配置空间(您可能无法访问超过256字节的空间)


当然,它可能只是固件中的一个bug,出于某种原因忘记了描述它。在x86上,您可以尝试访问传统的ECAM窗口(从0xE0000000开始),并检查它是否工作(确保内存区域在操作系统中标记为保留)。

您好,非常感谢。所以如果MCFG表出现,它应该是XSDT或RSDT,对吗?以及MCFG表的显示,说明我将能够使用内存访问PCI设备的配置空间??是的,这是符合规范的要求。