EFI Compression Type 2!

Очень помогла статейка Структура EFI по разборы EFI капсулы.


У меня такая проблема сейчас, есть плата, которая встает на 0x87. Это EC, понятно, но BIOS нет чтоб наплевать, виснет зараза.
Почему EC - потому что его нету на плате, а референс дизайн платы с ним. Ну посчитали его ненужным и выкинули . Плату делали сами, к слову. AtomD510+NM10, не суть... BIOS референсный мать его так, исходников естессно нет.

На LPC при этом последние коды:

W 0x80 0x16
W 0x80 0x36
W 0x80 0x87
R 0x60 --
R 0x64 --
R 0x60 --
R 0x64 --

Видно что выставляет POST 0x87 и пробует читать KBC из EC.

А проблема то в общем в следующем:

Разобрал я BIOS на кусочки (очень благодаря apple_rom и его BIOS Patcher 7.0a), с помощью "такой-то матери" и исходников с tianocore сейчас могу собрать почти любой кусочек воедино с пересчетом всех CRC и т.п. Может и нашел даже это место предположительно инциализация EC, но запакована эта часть слополучным сабжем!

А вот SUBJ господа! Что за тип компрессии? Как apple_rom сделал декомпрессию???

#define EFI_CUSTOMIZED_COMPRESSION 0x02

Зарезервированное значение для OEM реализации алгоритма компресии.
Вообщем EDK и IDA Pro тебе в помощь...
Нужные файлы из EDK1:
Foundation\Library\CustomizedDecompress\CustomizedDecompress.(h|c)
Foundation\Protocol\CustomizedDecompress\CustomizedDecompress.(h|c)

Поиск в модулях биоса сигнатуры EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL_GUID


(struct EFI_GUID = {0x9a44198e, 0xa4a2, 0x44e6, 0x8a, 0x1f, 0x39, 0xbe, 0xfd, 0xac, 0x89, 0x6f};)
Затем поиск кода инициализации переменной структуры:
typedef struct _EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL {
EFI_CUSTOMIZED_DECOMPRESS_GET_INFO GetInfo;
EFI_CUSTOMIZED_DECOMPRESS_DECOMPRESS Decompress;
} EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL;
Тебе нужны 2 функции, которыми будут инициализироваться поля GetInfo и Decompress.
Далее дело техники ... Прототипы функций в Foundation\Library\CustomizedDecompress\CustomizedDecompress.h

--
With Best Wishes, A. Woland

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей