Linux 内核 4.7 (Arch ARM64) 不会在 /sys/bus/pci/devices/*/ 中为 PCI BAR0 创建 "resource0" 文件
Linux Kernel 4.7 (Arch ARM64) does not create "resource0" file in /sys/bus/pci/devices/*/ for PCI BAR0
我正在做一个项目,我需要从用户空间通过 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/ 目录时,我可以看到有一个名为 resource 的文件,其中包含地址其中写入的 PCI BAR。
有没有人熟悉类似情况?
如何让 linux 创建 resource0 文件?
我理解你的担心,你可以从上游不接受的树补丁中尝试这个。
https://patchwork.codeaurora.org/patch/2059/
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-July/359435.html
这将帮助您映射用户 space 中的 PCI 资源文件。
我正在做一个项目,我需要从用户空间通过 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/ 目录时,我可以看到有一个名为 resource 的文件,其中包含地址其中写入的 PCI BAR。
有没有人熟悉类似情况? 如何让 linux 创建 resource0 文件?
我理解你的担心,你可以从上游不接受的树补丁中尝试这个。
https://patchwork.codeaurora.org/patch/2059/
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-July/359435.html
这将帮助您映射用户 space 中的 PCI 资源文件。