Search code examples
pcipci-epci-bus

64-Bit PCI BAR on a 32-Bit Operating System - Possible?


So I know that having a 32-bit PCI BAR (Base Address Register) can be accessed on a 64-bit Operating System (this link gives some information about it and I myself have tested it) (let us say it is a Linux OS) but can a 64-bit PCI BAR (Base Address Register) work with a 32-Bit Operating System?

Would be great if anyone can point to any documentation or an experience of their practical experiment regarding it.

Please feel free to ask for any clarifications regarding the query.


Solution

  • We did a test to confirm that if a 64-bit PCI BAR would work on a 32-bit system.

    We created a 32-bit Virtual Machine on a 64-bit system having a 64-bit PCI BAR device attached and did pass through of the PCI function (virtual function, which is also 64-bit) onto the VM. When using the lspci command on the VM, we saw 64-bit BAR mapping of the passed through device on the 32-bit VM. We also sent packets (testing if the pass through is working on the VM), which worked as they normally should.

    Following is the result of the lspci command on the 32-bit VM: lspci Output