【问题标题】:io_remap_pfn_range issue on powerpcpowerpc 上的 io_remap_pfn_range 问题
【发布时间】:2017-08-03 10:20:23
【问题描述】:

我想从用户态访问 PCIe IO。

在模块驱动中,我可以毫无问题地使用ioremap()返回的指针进行写/读。

从用户态,我想使用 mmap () 返回的指针,但主机挂起我在 PCIe 总线上写入或读取的任何内容。 我在调用io_remap_pfn_range(vma, vma->vm_start, start >> PAGE_SHIFT, vma->vm_end - vma->vm_start, vma->vm_page_prot);的文件操作结构中实现了mmap调用,其中start是pci_resource_start()返回的值。

我错过了什么?

请注意,我的模块在 x86 上运行良好。

谢谢,

弗雷德

【问题讨论】:

  • 您是在尝试访问 PCIe IO 空间还是 PCIe 内存空间?
  • 您好,我正在尝试访问 PCIe IO 空间。

标签: linux-kernel powerpc


【解决方案1】:

POWER 架构不支持 PCIe IO 访问;您需要改用 PCIe 内存周期。很可能您的 PCIe 设备有相应的 MMIO 空间资源,也许您可​​以使用它。

此外,根据您的使用情况,您可能希望对 sysfs 中 /sys/bus/pci/devices/<id> 下的 resource<N> 文件执行访问。这可能意味着您根本不需要任何内核代码。

【讨论】:

  • 好的,谢谢。我已经实现了读/写方法,因此我可以从设备执行 I/O 访问。还不错。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多