linux-kernel – 如何从PCIe Verilog核心实现DMA?
我有一个PCIe生成的核心/端点,带有xilinx核心生成器工具,用于开发板上的spartan6 fpga,我已经修改了一点来启用MSI并每隔几秒发送一次.
另外,我在我的linux桌面上做了??一个简单的C内核模块,我插入了开发板.这会注册设备,分配内存,启用设备的总线主控权并处理中断等. 我现在要做的是从板到PC的一些DMA传输,然后在完成后发送一个中断,以便cpu可以去读取它.我不是Verilog专家,我的代码似乎不具备任何DMA功能. 我在网上找不到任何相关信息,所以这是我最后的希望. 解决方法
上述评论的原文:
您是否在生成的PCIe核心上方实现了事务层?如果您的HDL技能不是那么高,为什么不使用免费的PCIe核心? PCIe是一件非常重要的事情…. 是的,Xilinx IPCore发生器在链路层的顶部添加了一个非常简单的PIO接口,以处理简单的PIO事务.注意:PIO事务已过时,不允许用于新设备. 目前我知道两个相当不错的IPCores: > XILLYBUS >免费教育许可证 > RIFFA >我不确定这个核心是否仍然存在 所有这些内核都需要Xilinx内核生成器为您的器件/电路板生成PCIe内核.核心本身提供交易处理,…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |