Так получилось, что компания American Megatrends свободно не распространяет программное обеспечение AMI BIOS Configuration Programm (AMIBCP). Но мир устроен как-то по-другому, и вот уже много лет сервисные инженеры и продвинутые пользователи освоили и успешно пользуются этим замечательным инструментом. Все эти годы главной неприятностью была и остается несовместимость новых версий AMIBIOS с прежними релизами AMIBCP. Но мы-то знаем, что мир устроен так, что «правильная» версия рано или поздно появится.
Подводным камнем в деле редактирования настроек AMIBIOS является тот факт, что иногда уже имеющийся в наличии релиз утилиты конфигурирования успешно справился бы с редактированием требуемого файла. Но мешает этому полное отсутствие справочной информации по данному вопросу. Постараемся хотя бы частично устранить этот пробел.
Рассмотрим ситуацию, когда попытка открыть файл образа BIOS завершается сообщением, как «Couldn't open the file!»:

На самом деле ничего страшного не происходит. Вполне возможно, что AMIBCP v3.46 решит поставленную задачу, если пользователь учтет особенности структуры современных версий AMIBIOS.
Дело в том, что часть пространства в файле образа отводится для служебных функций (типа platform.bin, некогда отдельно существовавшего в комплекте с Phoenix Phlash, утилитой программирования PhoenixBIOS). Осталось только разобраться, из чего состоит нынешний BIOS, разработанный в American Megatrends, и внести требуемые изменения.
Оговоримся сразу, что наш разговор касается только самых современных решений, основанных на ядре AMIBIOS8, и не имеет никакого отношения к более ранним выпускам, а также к версии UEFI BIOS, разработанной на одном из ядер Aptio. По этой причине будем рассматривать только третью версию AMIBCP, в частности v3.46:

В настоящее время образ AMIBIOS8 состоит, как минимум, из трех регионов:
- Descriptor Region;
- Manageability Engine Region;
- BIOS Region.
Descriptor Region, как следует из названия, содержит описания компонентов самого BIOS и платформы, которую он обслуживает. В нем содержится перечень микросхем Flash ROM, их интерфейс, код производителя чипа, код самого чипа согласно JEDEC и некоторая другая информация (частоты тактирования при чтении, записи, стирании и т.п.). Также описаны функции чипсета системной платы, ответственные за коммуникацию с микросхемой BIOS. В основном, это данные связанные с настройкой Южного моста (например, ICH8) на корректное обслуживание чипа Flash ROM с учетом особенностей конкретной реализации.
Manageability Engine Region — новое слово в проектировании AMIBIOS8, пришедшее в низкоуровневое программное обеспечение с появлением интегрированного в чипсет BMC-контроллера. Не раскрывая секреты фирмы, отметим только очевидные функции, выполняемые контроллером Baseboard Management: мониторинг питающих напряжений, контроль температурных режимов, обслуживание сенсорных датчиков платформы. Как бы там ни было, указанный регион легко находится в коде по ключевому слову BMC.
Интересующая нас часть кода — собственно BIOS. Если для исследований взять прошивку платы Tyan S7012, то из имеющихся четырех мегабайтов нам для работы потребуются только два старших. Размер файла прошивки уменьшился вдвое — теперь он прекрасно открывается утилитой AMIBCP, демонстрируя всем тайники BIOS:

В качестве примера мы выбрали меню I/O Virtualization из раздела «Advanced», где выполняется установка значений параметра SR-IOV (Single Root I/O Virtualization), одного из интересных и важных направлений виртуализации. В заключение следует сказать, что на платформах с интегрированным гигабитным сетевым адаптером кроме указанных регионов может находится также и GbE Region, где хранятся настройки Ethernet-адаптера, его MAC-адрес и другая информация.