加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux-kernel – 如何从PCIe Verilog核心实现DMA?

发布时间:2020-12-13 22:56:57 所属栏目:Linux 来源:网络整理
导读:我有一个PCIe生成的核心/端点,带有xilinx核心生成器工具,用于开发板上的spartan6 fpga,我已经修改了一点来启用MSI并每隔几秒发送一次. 另外,我在我的linux桌面上做了??一个简单的C内核模块,我插入了开发板.这会注册设备,分配内存,启用设备的总线主控权并处理
我有一个PCIe生成的核心/端点,带有xilinx核心生成器工具,用于开发板上的spartan6 fpga,我已经修改了一点来启用MSI并每隔几秒发送一次.

另外,我在我的linux桌面上做了??一个简单的C内核模块,我插入了开发板.这会注册设备,分配内存,启用设备的总线主控权并处理中断等.

我现在要做的是从板到PC的一些DMA传输,然后在完成后发送一个中断,以便cpu可以去读取它.我不是Verilog专家,我的代码似乎不具备任何DMA功能.

我在网上找不到任何相关信息,所以这是我最后的希望.

解决方法

上述评论的原文:
您是否在生成的PCIe核心上方实现了事务层?如果您的HDL技能不是那么高,为什么不使用免费的PCIe核心? PCIe是一件非常重要的事情….

是的,Xilinx IPCore发生器在链路层的顶部添加了一个非常简单的PIO接口,以处理简单的PIO事务.注意:PIO事务已过时,不允许用于新设备.

目前我知道两个相当不错的IPCores:

> XILLYBUS

>免费教育许可证
>在线创建FPGA器件的IPCore并下载网表
>免费的Linux和Windows驱动程序(Linux驱动程序将包含在标准内核中)
> 8位和32位FIFO接口和存储器接口
> linux-driver mapps FPGA到/ dev / xillybus_read / dev / xillybus_write设备

> RIFFA

>我不确定这个核心是否仍然存在
>免费司机
>它有一个奇怪的接口,最多12个FIFO通道
>免费HDL来源

所有这些内核都需要Xilinx内核生成器为您的器件/电路板生成PCIe内核.核心本身提供交易处理,……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读