1

我正在做一个项目,我需要从用户空间通过 PCI BAR0 访问 FPGA 内存。

我以前在旧内核中所做的是打开位于/sys/bus/pci/devices/my_device/中的名为resource0的文件,然后使用mmap()函数将 FPGA 内存暴露给用户空间。

不幸的是,在内核版本 4.7(架构 ARM64)中,似乎由于某种原因没有创建 resource0 文件。

当我使用lspci时,我可以看到系统识别了 FPGA 的 PCI BAR。此外,当我搜索/sys/bus/pci/devices/my_device/目录时,我可以看到有一个名为resource的文件,其中包含写入其中的 PCI BAR 的地址。

有没有人熟悉类似的情况?如何让linux创建resource0文件?

4

1 回答 1

3

我理解您的担忧,您可以在上游不接受的 Tree 补丁中尝试这个。

https://patchwork.codeaurora.org/patch/2059/

http://lists.infradead.org/pipermail/linux-arm-kernel/2015-July/359435.html

它将帮助您在用户空间中映射 PCI 资源文件。

于 2016-08-12T15:38:25.293 回答