Отображение физических адресов в виртуальный адрес Linux

Я работаю над небольшой встроенной системой. Когда мой Linux загружается в пользовательское пространство, я знаю, где находятся мои устройства в физической памяти. Я хочу сопоставить их с виртуальными адресами пространства пользователя. В настоящее время я делаю это через модуль ядра. Я использую vmalloc / kmalloc (в зависимости от размера), а затем использую ioremap_page_range для возвращенных виртуальных адресов для сопоставления моих физических адресов. Я не думаю, что это правильный путь. Сначала я выделяю память, а затем прошу ядро переназначить это виртуальное адресное пространство в другое физическое адресное пространство. (Изначально отображаемое физическое & gt; virtual в vmcall / kmalloc является бесполезным, так как мне нет дела до этих физических страниц. Это определенно не хорошо.)

Вместо этого есть лучший способ отобразить известную физическую память в процесс пространства пользователя. (Я знаю, кроме моего процесса пользовательского пространства, никто не будет касаться этой памяти.)

Спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос