Использовать пространство на панели pci в качестве оперативной памяти - PullRequest
0 голосов
/ 05 марта 2020

У меня есть устройство fpga p cie, у него 64 ГБ пространства. Я попытался написать простой драйвер pci для отображения пространства баров в пользовательском пространстве. Он хорошо работает и может использоваться как память буфер.

Так что я думаю, почему бы не использовать его в качестве оперативной памяти системы? Поэтому я удаляю область памяти карты из дерева ресурсов устройства pci (с помощью release_resource () для карты и Adjust_resource () для родительских ресурсов). Я проверяю / proc / iomem, пробел исчезает из дерева ресурсов iomem. Поэтому я думаю, что после вызова add_memory (), пробел будет добавлен как System Ram. Да, функция работает, и команда «free» показывает больше памяти.

Однако, после того, как я добавляю pci bar space в качестве System Ram, ядро ​​всегда выдает «неспособный обработать запрос подкачки ядра по адресу xxxxx» .and cra sh скоро

Итак, поскольку пространство на панели pci можно использовать как обычную память после ioremap_pfn_range, почему я не могу использовать его как системную память?

...