32 位操作系统上的 64 位 PCI BAR - 可能吗?

问题描述

所以我知道可以在 64 位操作系统上访问 32 位 PCI BAR(基址寄存器)(这个 link 提供了一些关于它的信息,我自己已经测试过了)(让我们说它是一个 Linux 操作系统)但 64 位 PCI BAR(基地址寄存器)可以与 32 位操作系统一起使用吗?

如果有人能指出任何文档或他们的实践实验经验,那就太好了。

请随时提出有关查询的任何说明。

解决方法

我们进行了一项测试,以确认 64 位 PCI BAR 是否可以在 32 位系统上运行。

我们在连接了 64 位 PCI BAR 设备的 64 位系统上创建了一个 32 位虚拟机,并将 PCI 功能(虚拟功能,也是 64 位)传递到 VM 上。在 VM 上使用 lspci 命令时,我们在 32 位 VM 上看到了直通设备的 64 位 BAR 映射。我们还发送了数据包(测试通过是否在 VM 上工作),它们正常工作。

以下是 lspci 命令在 32 位虚拟机上的结果: lspci Output