关于 VirtualBox 上 PCI Express(PCIe) 配置 space 访问的问题
Question on PCI Express(PCIe) configuration space access on VirtualBox
您好,我正在尝试在内核基础上使用 MMIO 方法访问 PCIe 配置 space。
在我放下问题之前,我的平台是 Windows10,VirtualBox 6.0.10。
我的虚拟机设置为默认值,但以下内容除外:
- 芯片组选择ICH9
- 核心数设为4
- 内存设置为 1GB
- 添加了 IDE 控制器(未连接 HD)
启动后,打印显示有效内存地址 are:0x0~0x9FC00 和 0x100000~0x3FEF0000,如下面的屏幕截图所示。
虽然类型 1 是 RAM,2 是 ROM 或保留,3 是 ACPI 回收内存,4 是 ACPI NVS 内存。
此外,我从 MCFG 中检索了 PCIe 配置内存映射基地址的基地址,如下面的屏幕截图所示。
可以看出:
- 配置 space 基址为 0x3F000000,与有效内存重叠 space。
- 0x3F000000~0x3F000008的前8字节全为0,应该是bus:0、device:0、function:0.
的前8字节
所以我是不应该使用 VirtualBox,还是应该做一些其他操作来启用配置的 PCIe MMIO 可访问性space?
非常感谢!!
您可能错误地解析了 "MFCG ACPI table",或者为 "MFCG ACPI table" 使用了错误的(虚拟的?)地址而忘记了检查签名和校验和。
"Base_addr:"没有意义,"Start_PCI_bus: 0, End_PCI_bus: 0"也没有意义
您好,我正在尝试在内核基础上使用 MMIO 方法访问 PCIe 配置 space。
在我放下问题之前,我的平台是 Windows10,VirtualBox 6.0.10。
我的虚拟机设置为默认值,但以下内容除外:
- 芯片组选择ICH9
- 核心数设为4
- 内存设置为 1GB
- 添加了 IDE 控制器(未连接 HD)
启动后,打印显示有效内存地址 are:0x0~0x9FC00 和 0x100000~0x3FEF0000,如下面的屏幕截图所示。
虽然类型 1 是 RAM,2 是 ROM 或保留,3 是 ACPI 回收内存,4 是 ACPI NVS 内存。
此外,我从 MCFG 中检索了 PCIe 配置内存映射基地址的基地址,如下面的屏幕截图所示。
可以看出:
- 配置 space 基址为 0x3F000000,与有效内存重叠 space。
- 0x3F000000~0x3F000008的前8字节全为0,应该是bus:0、device:0、function:0. 的前8字节
所以我是不应该使用 VirtualBox,还是应该做一些其他操作来启用配置的 PCIe MMIO 可访问性space?
非常感谢!!
您可能错误地解析了 "MFCG ACPI table",或者为 "MFCG ACPI table" 使用了错误的(虚拟的?)地址而忘记了检查签名和校验和。
"Base_addr:"没有意义,"Start_PCI_bus: 0, End_PCI_bus: 0"也没有意义