У меня есть устройство 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, почему я не могу использовать его как системную память?