Altera_Forum
Honored Contributor
13 years agoPCIe BAR size limitations in Qsys
Hi,
Are there any limitations on the size of each PCIe BAR in Qsys? Or the total size of all BARs? I have a design using the PCIe compiler in Qsys with 2 BARs on a Stratix IV dev. kit. My aim was to have BAR0:1 address 4 GB of memory and BAR2 access the control/status registers (2 MB). Under Quartus 11.1sp2/Qsys, I cannot set the BAR0:1 size greater than 1 GB - I get an error to the effect that the "bus translator" address spaces were overlapping. However, with the 1 GB BAR, the design worked fine. Under Quartus 12.0sp1/Qsys, I can set BAR0:1 to be 4 GB and BAR2 to be 2 MB. There are no warnings or errors from Qsys. However the design doesn't work and causes the PC to hang or produce inconsistent results when I access either BAR space. (I use the Linux sysfs to access the two BARs.) If I change BAR0:1 size to 1 GB, everything works fine. (A BAR0:1 size of 2 GB fails the same way as 4 GB.) It almost appears as if the two Avalon-MM interfaces corresponding to the two BARs map into the same 32-bit address space and clobber each other. Has anyone run into this situation? I have looked through the PCIe compiler users guide, but didn't find anything. Thanks, Chandan