在Xilinx Vivado中映射大小大于4MB的PCIe BAR区域

时间:2018-12-06 07:09:52

标签: fpga xilinx vivado pci-e xilinx-ise

我们正在使用Xilinx Vivado开发带有VC709 FPGA的定制处理器,Microblaze和一些外设的系统。我们在“用于PCI Express Gen 3的AXI桥”中使用了两个“ PCIe:BARs”。

我们在PCI Express模块​​的模块配置中所做的更改未反映在主机端。

例如,当我们将BAR0设置为2GB,将BAR1设置为2MB时,将得到两个区域,分别为4KB和4MB。当我们尝试改变不同的BAR组合时,这种情况不会改变。

    $lspci -vv
    0a:00.0 Memory controller: Xilinx Corporation Device 7038
    Subsystem: Xilinx Corporation Device 0007
    Physical Slot: 3
    Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Interrupt: pin A routed to IRQ 16
    Region 0: Memory at fbff0000 (32-bit, non-prefetchable) [size=4K]
    Region 1: Memory at fb800000 (32-bit, non-prefetchable) [size=4M]
    Capabilities: <access denied>
    Kernel modules: riffa

我如何调试它?

1 个答案:

答案 0 :(得分:0)

解决方案

我一直在使用Xilinx SDK来对FPGA进行编程。但是,SDK始终在加载旧的位流。我已经通过Vivado本身对FPGA进行编程来解决了这个问题。

工具> Xilinx硬件管理器>打开目标>自动连接>程序设备

信用:Mandar Datar(HPC实验室,孟买理工学院EE系)