我们假设我已将PCI设备插入Linux主机。
在系统中,在sys pseudofs中看到设备,我有:
good
文件用于用户空间访问设备的pci内存bar0。
我的问题是这个内存的字节endiannes(小/大)是什么?
答案 0 :(得分:0)
根据这个答案[1],mmap-ing资源文件最终在pci_mmap_page_range
,这将使资源以设备的字节顺序可见,通常是PCI的小端。因此,如果您的架构字节顺序不同,则需要交换字节。内核ioread*
和iowrite*
分别ioread*be
和iowrite*be
分别在所有体系结构上以小端和大端进行读写,例如ioread32
字节交换在一个大端架构上,并没有在一个小端。在用户空间中,您必须自己处理。