有类似的问题是这样问的,但非信息似乎有所帮助。我有一个运行Linux 3.14的Freescale iMX6芯片和一个Altera Cyclone V GT FPGA开发套件。当我将套件(使用Altera的演示PCIe代码)插入iMX6载板(PCIe连接)并输入lspci时,我获取了BAR0和BAR1未分配的内存。如果我们更改内存类型无关紧要(32位与64位 - 不可预取或不可预取)。进去并做了'echo 1>在设备下启用'重新扫描,仍然没有。为此,没有实现驱动程序,但是其他PCIe设备没有驱动程序,并且它们分配了资源(即资源0..3)。几乎每个PCIe内核配置设置都已添加。我可能会失踪的是什么?
答案 0 :(得分:1)
对于i.MX6,Linux for BARx接受的最大内存量为15MB。 当BAR的大小太大时,Linux无法分配内存空间并使其保持未分配状态。
BAR0和BAR1的大小是多少? 我认为你应该减少你的BARx的大小。 如果您的FPGA上连接了DDR,请考虑span extender以允许i.MX6 - > DDR接入。
我写了一个小教程here来解释如果你感兴趣的话,如何通过PCIe(1通道)插入带有CycloneV GX的iMX6。