2

我在 64 位 linux 主机上使用 64 位 PCI Express 卡,问题是它的条是 64 位,但总是得到一个位于 32 位地址范围内的地址,即 BAR 的高 32 位始终为零。

如何强制它使用真正的 64 位地址?我试图通过将引导时间参数覆盖到内核来强制执行它,以便内核可以枚举 pci 设备,但结果与 BIOS 相同。

Linux 不支持真正的 64 位地址吗?

4

1 回答 1

0

您可以尝试以下操作。首先在内核中启用 PAE(物理地址扩展)。然后使用 setpci 命令或从驱动程序,将高 32 位 bar 寄存器更改为非零值,如果您的端点设备在 pci 桥下,那么不要忘记更改 Pre-fetchable Base Upper 32 Bit 和 Pre- fetchable Limit Upper 32 位寄存器适当。

于 2012-05-21T05:07:14.880 回答