XDMA驱动无法识别问题排查(一)

问题背景为笔者负责的开发的产品升级最新的FPGA程序后,现场设备出现了xdma驱动无法识别的现象。运行lspci 命令PCIE总线上可以看到xdma设备已经正确识别到。

但BAR空间访问失败,无法识别到xdma驱动相关函数。

    笔者先交代下硬件架构,PCIe3.0 X4方案硬件方案为UltraScale系列FPGA搭配X86主机,FPGA用的是Xilinx 的xdma IPcore 搭配官方驱动实现。X86系统为debian12。Vivado开发测试环境为23.2。根据笔者经验问题原因可能以下三点。

(1)因为老版本FPGA程序可以正确识别但更新后的程序不行,首先对比代码差异。如下图,仔细比对发现XDMA的bd没有更改,代码更改点在数字信号部分。

为了进一步定位问题,参考pg156关于add debug options中的描述,在XDMA 高级设置下勾选JTAG debugger 选项可以观察LTSSM state transitions、PHY Reset FSM transitions、Receiver Detect信息,勾选in system ibert选项可以在JTAG下观察Rx lane的眼图。

按照pg156中的描述设置xdma,生成bit文件后可以看到会有draw_ltssm.tcl、draw_reset.tcl、draw_rxdet.tcl三个tcl文件生成。如下图在Vivado下分别运行三个脚本(windowns系统下需要安装tk),会对应画出流程图指示状态机跳转是否符合预期。

 

接下来检查眼图,AMD对PCIe 信号的眼图标准如下,标准中明确写了眼宽、眼高的最小范围。

JTAG挂载后的眼图如下图(4个lane的眼图类似),对照标准符合。

 

未完待续~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chasingone

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值