Я разрабатываю встроенную систему на процессоре PowerPC, и существует потребность в связи с FPGA через PCIe. Я хочу использовать Linux/embedded-Linux в качестве загрузчика, чтобы использовать свой код инициализации PCIe и API-интерфейс драйвера для упрощенной разработки драйверов PCIe. Тем не менее, в конце концов, я хочу работать с незащищенным кодом (без работы ОС). Поэтому я рассматриваю использование PetitBoot/kexec для перехода с Linux на мой собственный код.Являются ли драйверами устройств PCIe выгодными, если вы используете Linux в качестве загрузчика для простого кода?
Возможно ли это?
Мое настоящее понимание драйверов PCIe приводит меня к мысли, что после инициализации устройства, если у меня есть указатель на адресное пространство, я должен просто выполнить операции MMIO R/W непосредственно в пространстве памяти , Поэтому, даже если kexec перезаписывает код драйвера, я должен использовать это устройство, потому что драйвер уже выполнил свою работу.
Это правильно?
Если нет, то каковы мои альтернативы?
Если вам нужна PCIe-каркас в коде с открытым кодом, возможно, вы можете найти такой код в u-boot. –
Спасибо за предложение, я кратко рассмотрел u-boot, как это было предложено. Однако я работаю с очень новым процессором, и я не верю, что Uboot настроен для него или моей доски. Существует настроенная среда buildroot, которая существует для моего процессора/платы, с которой я пытаюсь работать, и «BIOS» загружает встроенную Linux, которая, в свою очередь, использует PetitBoot для загрузки полной ОС Linux. Поэтому я подумывал о том, чтобы добавить драйвер устройства во встроенный Linux и использовать PetitBoot для загрузки моего голого кода вместо полной ОС Linux. Мое предположение заключается в том, что настройка uboot будет дублировать усилия buildroot. – Tyler