Linux на arm64: отображение устройства регистрируется в пространстве пользователя без использования pgprot_noncached
Мы работаем с процессором на базе ARM64 и пытаемся отобразить адрес устройства в пространство пользователя в функции драйвера mmap.
В настоящее время мы используем pgprot_noncached
а также remap_pfn_range
для отображения устройств регистрируется в пространстве пользователя, но это дает:
unhandled alignment fault (7) at 0xffffb420f080
Я ссылался на Linux на arm64: необработанные ошибки выравнивания, которые указывают pgprot_noncached
навязывает строгий порядок, который является причиной проблемы.
Я не могу использовать решение, упомянутое в Linux для arm64: необработанные ошибки выравнивания, так как dma_mmap_coherent ожидает динамически распределенную память от dma_zalloc_coherent
, Есть ли другой способ сопоставить память устройства с пользовательским пространством без использования API DMA