我有一个关于在 PCIe 上使用突发读取和写入的问题。我有一个通过 PCIe 连接到 cpu 的 fpga。我有一个简单的驱动程序,仅用于测试。驱动程序从 fpga 写入和读取数据。fpga 包括一个 sram 核心,数据被写入和读取。读取和写入运行良好,但如果我从设备读取,则不会出现突发。如果我将数据写入 fpga,如果我使用 ioremap_wc() 映射 BAR,则突发工作良好。但是,如果我从 fpga 读取,cpu 只会进行单次访问而不会突发。我发现我必须将内存标记为回写,以便能够在读取和写入传输时缓存数据,但是如果我使用 /proc/mtrr 标记我的地址回写,则读取和写入不会突发。PCI 标头中的 BAR 被标记为可预取。你们中有人知道如何在 pci 总线上实现读写突发吗?我希望任何人都可以帮助我。
问问题
1661 次