PCIe驱动调试过程中遇到的问题

PCIe驱动和fpga设备调试遇到的问题解决

问题1. FPGA设备通过PCIe读取DDR内容失败

现象:观察FPGA侧的PCIe核,发现在执行一段时间后,PCIe核发出读存储器请求,不能得到内存的数据;同时系统侧通过lspci -vvv命令发现设备的UESta信息出现overflow标志(RxOF+)。

通过与正常系统上的PCIe设备的配置空间内容比较,发现我们设备的DevCtl设置了ExtTag+,当设置了这个标志位,存储器读请求TLP中的Requester ID字段会扩展一个8位的tag,表示能暂存的数据包的数量,如果PCIe设备那边没有相应的处理,则会出现溢出,所以在驱动初始化的时候关闭这个标志位,不进行暂存,则解决这个问题:

    pcie_capability_read_word(pdev, PCI_EXP_DEVCTL, &ectl);
    ectl &= ~PCI_EXP_DEVCTL_EXT_TAG;
    pcie_capability_write_word(pdev, PCI_EXP_DEVCTL, ectl);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值