我正在开发一个项目,我需要通过PCI BAR0从用户空间访问FPGA内存。
我以前在旧内核中做的是打开名为 resource0 的文件,该文件位于 / sys / bus / pci / devices / my_device / 中,然后使用 mmap()函数,它将FPGA内存暴露给用户空间。
不幸的是,在内核版本4.7(架构ARM64)中,似乎由于某种原因没有创建resource0文件。
当我使用 lspci 时,我可以看到系统识别出FPGA的PCI BAR。 另外,当我搜索 / sys / bus / pci / devices / my_device / 目录时,我可以看到有一个名为资源的文件,其中包含的地址是写在其中的PCI BAR。
是否有人熟悉类似的情况? 如何让linux创建 resource0 文件?
答案 0 :(得分:3)
我理解您的担忧,您可以尝试使用未在上游接受的Tree补丁。
https://patchwork.codeaurora.org/patch/2059/
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-July/359435.html
它可以帮助您在用户空间中映射PCI资源文件。