【问题标题】:Linux Kernel 4.7 (Arch ARM64) does not create "resource0" file in /sys/bus/pci/devices/*/ for PCI BAR0Linux Kernel 4.7 (Arch ARM64) 不会在 /sys/bus/pci/devices/*/ 中为 PCI BAR0 创建“resource0”文件
【发布时间】:2016-08-12 15:25:35
【问题描述】:

我正在做一个项目,我需要从用户空间通过 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 文件?

【问题讨论】:

  • 可能你的旧内核是 32 位的?

标签: linux arm fpga mmap pci-bus


【解决方案1】:

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

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

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

它会帮助你在用户空间映射 PCI 资源文件。

【讨论】:

  • 感谢您的帮助!看来这种解决方法是解决我的问题,但我不知道如何应用补丁!当我设法测试它时,我会提供反馈。
  • 对建议使用 vfio-pci 的补丁的评论。也许您也可以使用该模块而不是 sysfs。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-25
  • 2022-11-16
相关资源
最近更新 更多