假设我已将 PCI 设备插入 linux 主机。
在 sys pseudofs 中可以看到该设备,我有:
/sys/bus/pci/devices/0001:03:00.0/resource0
用于用户空间访问设备的 pci 内存 bar0 的文件。
我的问题是这个内存的字节序是什么(小/大)?
最佳答案
根据这个答案[1],mmap-ing 资源文件在 pci_mmap_page_range
结束,这将使资源以设备的字节顺序可见,通常是 PCI 的小端。因此,如果您的体系结构字节顺序不同,您将需要交换字节。内核ioread*
和iowrite*
,分别是ioread*be
和iowrite*be
做读写操作和大端分别在所有架构上,例如 ioread32
字节交换在大端架构上而不是在小端上。在用户空间中,您必须自己处理。
关于linux - resourceX linux pci内存mmap接口(interface)是什么字节序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41935233/