Option rom - то, що прошивається в bios

Option ROM - то, що прошивається в BIOS плат розширень (типу PCI, PCI-E, мережевої карти).
У новій термінології Legacy Option ROM - це код розширення, що працює без EFI, і відповідно
UEFI PCI Extension ROM Option - та ж фігня, тільки написана під EFI.

Старий (Legacy) код розширення виконувався в реальному режимі, точніше (швидше за все) в емуляції 16-бітного з 32-бітного.


Виповнюється чи UEFI в реальному режимі - навряд чи. Наскільки я зрозумів з специфікації новий механізм пристосований під виконання в нормальних режимах процесора. Є навіть можливість писати код під віртуальну машину UEFI.

Зібраний hello.efi запускається в Shell'е. Тільки якось смішно у мене вийшло. Є плата з проц Intel Atom і підтримкою em64T. Компілятор і линкер використовував з Visual Studio з папки AMD, заголовки для EFI вказував em64T. EDK II викачаний з Intel'а. Тільки тоді це спрацювало. Звичайний компілятор, з директорій IA32, IA64, x86_IA32, x86_IA64 - пише при запуску, що shell не підтримує архітектуру.

Покопався тут ще.
Образ туди запихається (див. 13.4.2.1 UEFI Spec 2_3_1) BootService Або Runtime Service. Додатки не виконуються, хоча запхати їх туди можна і можна навіть якось викликати, але іншими методами. Висновок на екран, можливо, не діє (але це за специфікацією 1.10). Робота з клавой теж.

Залишається незрозумілим, як повинен бути влаштований код. Щоб його откомпіліть і хоч щось отримати.

Схожі статті