AN829 - PCIe BAR[2] to read/write FPGA-EMIF-DDR4 over 1GB area
hello ,
[ Scenario] We can run AN829 PCIE driver on Arria10 EVM Board.
In the FPGA design example, [pcie_a10_hip] -> [rxm_bar2] can read/write to [ FPGA Emif -> ctrl_amm Slave Node] where we have 2GB DDR4 on fpga side (0x0 ~ 0x40000000).
Linux Host can acess (read & write) the FPGA DDR4 through PCIE_BAR2, as following :
iowrite32 (cpu_to_le32(data), (u32 *)(bk_ptr->bar[BAR2]+byte_offset));
My question: on my test, that PCIE_BAR2 can only maps "512MBytes" totally address space, which is mapped to FPGA-DDR4 "from 0x0 to 0x10000000" (the top 512MB). If I need access to the FPGA-DDR4 1GB starting address 0x20000000 ~ 0x30000000, how can I realize this ? Where to configure PCIE parameter to make BAR2 maps to this [0x2000 0000 ~ 0x3000 0000] ddr memory space ? any ideas ?
Thanks in advance
I forgot to explain further. In AN829, DDR4 is connected to PCIe DMA port which means DDR4 can only be accessed via DMA control only.
That's why I suggested you to switch to use PCIe IP without enabling the DMA logic insides the IP. Then user can connect PCIe IP directly to memory (like DDR4) and access it.
Thanks.
Regards,
dlim