返回信息流请问PCIe通过xdma读写ddr测试时,在host运行同一份读写测试代码的时候(将数据写入ddr,再读出),发现一开始有点小错,后面几次测试的读写是对的,后面就全是错的并且不可恢复,只能重新烧写bit然后重启,请问有大哥遇到过这种问题吗?还有就是同样的方式读写BRAM不会出现这个问题(bram和xdma的axi接口时钟相同),读写ddr会有这个问题(ddr的axi接口时钟和xdma不同)
这是一条镜像帖。来源:北邮人论坛 / circuit / #27758同步于 2022/10/31
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖
FPGA 的PCIe读写ddr
yaoyuhao666
2022/10/31镜像同步14 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
dmesg信息
[ 32.761489] IPv6: ADDRCONF(NETDEV_CHANGE): enp26s0f0: link becomes ready
[ 218.432262] xdma: loading out-of-tree module taints kernel.
[ 218.432442] xdma: module verification failed: signature and/or required key missing - tainting kernel
[ 218.433712] xdma:xdma_mod_init: Xilinx XDMA Reference Driver xdma v2020.1.8
[ 218.433716] xdma:xdma_mod_init: desc_blen_max: 0xfffffff/268435455, timeout: h2c 10 c2h 10 sec.
[ 218.433997] xdma:xdma_device_open: xdma device 0000:3b:00.0, 0x00000000f761cedb.
[ 218.434345] xdma:map_single_bar: BAR0 at 0xb2d00000 mapped at 0x0000000086a06fa6, length=1048576(/1048576)
[ 218.434369] xdma:map_single_bar: BAR1 at 0xb2e00000 mapped at 0x00000000d5ddfddd, length=65536(/65536)
[ 218.434374] xdma:map_bars: config bar 1, pos 1.
[ 218.434377] xdma:identify_bars: 2 BARs: config 1, user 0, bypass -1.
[ 218.434911] xdma:pci_keep_intx_enabled: 0000:3b:00.0: clear INTX_DISABLE, 0x547 -> 0x147.
[ 218.434955] xdma:probe_one: 0000:3b:00.0 xdma0, pdev 0x00000000f761cedb, xdev 0x00000000802e1ae6, 0x000000002831be2a, usr 16, ch 4,4.
[ 218.436862] xdma:cdev_xvc_init: xcdev 0x00000000d94ab034, bar 0, offset 0x40000.
感谢回答,我还是看不太懂[em9][em9]
【 在 weksomnus 的大作中提到: 】
: dump多次h2c时候的dmesg。。。看看kmd是否捕获了异常。。。。
我之前用xilinx的mig的时候的个人做法是送读写指令一个至少256深的异步fifo,读回来的数据也用个至少256深的异步fifo来接,然后两边做好流控。
不知道楼主是咋同步mig的时钟域的,如果用的是xilinx的axi异步桥的话,可能同步深度不够,可以考虑用fifo自己实现下比较深的axi异步桥
我测试的时候考虑过异步fifo溢出导致无法修复的原因,但是我把xdma和mig间的axi的fifo深度调最大还是没用。最终的目的是PCIe和用户都能用axi访问ddr
【 在 LNZthezero 的大作中提到: 】
: 我之前用xilinx的mig的时候的个人做法是送读写指令一个至少256深的异步fifo,读回来的数据也用个至少256深的异步fifo来接,然后两边做好流控。
: 不知道楼主是咋同步mig的时钟域的,如果用的是xilinx的axi异步桥的话,可能同步深度不够,可以考虑用fifo自己实现下比较深的axi异步桥
并且smartconnect和axi_interconnect都试过
【 在 yaoyuhao666 的大作中提到: 】
: 我测试的时候考虑过异步fifo溢出导致无法修复的原因,但是我把xdma和mig间的axi的fifo深度调最大还是没用。最终的目的是PCIe和用户都能用axi访问ddr