gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 03:59:48 26 4
gpt4 key购买 nike

我在开发板上有一个 PCIe 生成的核心/端点,它带有用于 spartan6 fpga 的 xilinx 核心生成器工具,我对其进行了一些修改以启用 MSI 并每隔几秒钟发送一次。

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

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

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

最佳答案

来自上述评论的原文:
您是否在生成的 PCIe 核心之上实现了事务层?如果您的 HDL 技能不高,为什么不使用免费的 PCIe 内核? PCIe 是一个非常大的东西....

是的,Xilinx IPCore 生成器在链路层之上添加了一个非常简单的 PIO 接口(interface)来处理简单的 PIO 事务。注意:PIO 事务已过时,不允许用于新设备。

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

  • XILLYBUS
  • 免费教育许可证
  • 在线为您的 FPGA 器件创建 IPCore 并下载网表
  • 免费的 linux 和 windows 驱动程序(linux 驱动程序将包含在标准内核中)
  • 8 位和 32 位 FIFO 接口(interface)和内存接口(interface)
  • linux-driver 将 FPGA 映射到 /dev/xillybus_read /dev/xillybus_write设备
  • RIFFA
  • 我不确定这个核心是否仍然保持
  • 免费司机
  • 它有一个奇怪的接口(interface),最多有 12 个 FIFO channel
  • 免费的 HDL 源代码

  • 所有这些内核都需要 Xilinx 内核生成器来为您的设备/电路板生成 PCIe 内核。核心本身提供事务处理,...

    关于linux-kernel - 如何从 PCIe Verilog 内核实现 DMA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28263230/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com