Setting up the VF BAR Registers
The PCIe Controller provides the following registers in the local management space to allow user control of the VF BAR registers:
- Virtual Function BAR Configuration Register 0
- Virtual Function BAR Configuration Register 1
You can setup the following BAR parameters with these registers:
- VF BAR size—32-bit or 64-bit BAR
- VF BAR type—Prefetchable or non-prefetchable
- VF BAR aperture
Attention: You set up the VF BAR registers in the Interface Designer ( where n is 0 - 3).
Efinix does not recommend changing these
settings via the APB interface.
The VF BAR aperture is also affected by the System Page Size register in the SR-IOV extended capability. Each VF BARn or VF BARn pair should be aligned on a system page size boundary. Additionally, each VF BARn or VF BARn pair defining a non-zero address space should be sized to consume an integer multiple of system page size bytes.
If the VF BAR aperture is not aligned to the system page size, the PCIe Controller internally overrides the user settings to align the aperture to the
system page size. For example:
- VF BAR aperture is not aligned to system page size—If the VF BAR 0 aperture is 4 KB in Virtual Function BAR Configuration Register 0 and if the host-programmed System Page Size Register is 4 MB in the SR-IOV extended capability, the PCIe Controller internally requests 4 MB in the VF BAR0 register, aligned to the system page size.
- VF BAR Aperture is aligned to System Page Size—If the VF BAR 0 aperture is 8 KB in Virtual Function BAR Configuration Register 0 and if the host-programmed System Page Size Register is 4 KB in the SR-IOV extended capability, the PCIe Controller internally requests 8 KB in the VF BAR0 register (as requested by the user).