我们正在使用基于ARM64的CPU,并尝试在驱动程序的mmap函数中将设备地址映射到用户空间。
我们当前正在使用pgprot_noncached
和remap_pfn_range
将设备寄存器映射到用户空间,但这给出了:
unhandled alignment fault (7) at 0xffffb420f080
我提到了Linux on arm64: unhandled alignment faults,这表明pgprot_noncached
强加了顺序,这是问题的原因。
我无法使用Linux on arm64: unhandled alignment faults中提到的解决方案,因为dma_mmap_coherent期望从dma_zalloc_coherent
动态分配内存。是否有其他方法可以将设备内存映射到用户空间而无需使用DMA API