Как пользоваться AMIBCP?

Программа для редактирования настроек BIOS по­я­ви­лась вмес­те с са­мим BIOS, ес­ли мы го­во­рим об ути­ли­те AMIBCP, ре­дак­ти­ру­ю­щей AMIBIOS раз­ра­бот­ки American Megatrends. Интерес к этому про­грам­мно­му про­дук­ту под­ог­ре­вал­ся его не­до­ступ­но­стью: ути­ли­та рас­про­с­тра­ня­лась толь­ко сре­ди раз­ра­бот­чи­ков ма­те­рин­ских плат, под­па­дая под жест­кие тре­бо­ва­ния NDA. Осо­бен­но­стью AMIBCP ста­ло иг­но­ри­ро­ва­ние пре­ем­ст­вен­но­с­ти вер­сий BIOS — каж­дый но­вый ре­лиз ра­бо­тал толь­ко с те­ку­щей вер­си­ей про­шив­ки.

В одной из предыдущих публикаций мы за­тро­ну­ли спе­ци­фи­ку ра­бо­ты AMIBCP в эко­сис­те­ме Intel Man­age­ment En­­gine. Фак­ти­че­ски, там речь шла об ус­ло­ви­ях ра­бо­ты на но­вой про­г­рам­мной плат­фор­ме — UEFI. Для это­го AMI по­шла на ре­брен­д­инг: вмес­то AMI­BIOS все ее низ­ко­у­ров­не­вые про­дук­ты ста­ли на­зы­вать­ся Ap­tio. За во­семь лет, про­шед­шие со вре­ме­ни пер­вой пуб­ли­ка­ции, тех­но­ло­гия кон­фи­гу­ри­ро­ва­ния до­пол­ни­лась но­вы­ми воз­мож­но­с­тя­ми. Как сей­час вы­гля­дит про­цесс ре­дак­ти­ро­ва­ния на­ст­ро­ек UEFI BIOS?

Aptio V как дебютная идея UEFI

Текущая версия UEFI BIOS в исполнении American Megatrends — AMI Aptio V. Прошивка обес­пе­чи­ва­ет старт сис­тем­ной пла­ты и настройку всех ее узлов и подсистем. Рассмотрим реализацию Aptio для платформы ASUS TUF Gaming X570-Plus с про­цес­со­ром AMD Ryzen 5 3400G. Это позволит экспериментировать и с файлом про­шив­ки, и с ус­та­нов­ка­ми UEFI BIOS, до­ступ­ны­ми в CMOS Setup.

Давно уже не новость, что прошивки Aptio поставляются в виду капсул (расширение файла .cap). Рань­ше для ра­бо­ты с об­ра­зом UEFI BIOS приходилось извлекать его из капсулы прошивки, отрезая первые 2048 байт по ад­ре­сам с ну­ле­во­го до 7FFh. Сегодня AMIBCP 5.0 и выше с успехом самостоятельно решают эту задачу, и при­бе­гать к ре­дак­ти­ро­ва­нию би­нар­но­го об­ра­за уже нет необходимости.

Всегда актуальной задачей остается поиск самой последней, самой свежей версии программы для кон­фи­гу­ри­ро­ва­ния на­с­т­ро­ек UEFI BIOS. На сегодня — это AMIBCP 5.02.0031:

AMIBCP (AMI BIOS Configuration Program), Version 5.02.0031

 

Впрочем, компания American Megatrends в некотором смысле преодолела проблемы совместимости. Теперь да­же не­ак­ту­аль­ная вер­сия AMIBCP «открывает» современные капсулы UEFI, хотя и делает это не­кор­рект­но.

Что знает BIOS сам о себе?

По­смот­рим, как вы­гля­дят на­ст­рой­ки BIOS платы ASUS TUF Gaming X570-Plus глазами AMIBCP 5.01.0014:

Настройки UEFI BIOS материнской платы ASUS TUF Gaming X570-Plus, доступные для редактирования в AMIBCP 5.01.0014

 

Сами настройки BIOS в устаревшей версии недоступны: меню Setup Configuration просто от­сут­ст­ву­ет. Ути­ли­та AMI­BCP 5.01.0014 просто не «открывает» его. Зато есть меню BIOS Features, да и сам образ UEFI бла­го­по­луч­но рас­па­ко­ван из кап­су­лы, что уже хорошо.

Прокомментируем поля BIOS Features. Кажущаяся очевидность их не вполне со­от­вет­ст­ву­ет дей­ст­ви­тель­но­с­ти, их со­с­тав мо­жет быть интересным разве что до­тош­но­му ана­ли­ти­ку или кибер-следопыту. OEM ID про­ек­та используется для внут­рен­них нужд AMI и не несет полезной смысловой нагрузки. На данный мо­мент не за­ре­ги­стрир­о­­ва­но значений, отличных от ALASKA. Скорее всего, это код AMBIOS8, уна­сле­до­ван­ный Aptio.

Цифровой код представленной версии UEFI BIOS состоит из значений Major Version и Minor Version. Их смысл оче­ви­ден и не нуж­да­ет­ся в ком­мен­та­ри­ях. Они, как параметры, используются ниже для Sign On Mes­sage и не могут быть от­ре­дак­ти­ро­ва­ны поль­зо­ва­те­лем AMIBCP:

Version %x.%02x.%04x. Copyright (C) %04x American Megatrends, Inc.

Под заставкой, появляющейся на экране в процессе про­хож­де­ния POST, находится внутреннее пред­с­тав­ле­ние те­ку­щей версии (Project ID) в виде бук­вен­но-цифрового индекса 1AVWX1407, ко­то­рый при бли­жай­шем рас­смот­ре­нии за­кан­чи­ва­ет­ся зна­ко­мы­ми нам уже Major Version и Minor Version. «Единица» в его начале говорит о том, раз­ра­бот­ка кода UEFI BIOS велась в тай­вань­ском под­раз­де­ле­нии American Megatrends. Бук­вен­ный ин­декс ко­ди­ру­ет на­бор мо­ду­лей, ис­поль­зу­е­мых при компиляции ядра BIOS.

BIOS Tag — идентификатор платформы

Самым интересным и самым мало изученным на закладке BIOS Features является BIOS Tag. О нем ин­фор­ма­ция в ин­тер­не­те прак­ти­че­ски от­сут­ст­ву­ет, но, как следует из его на­зва­ния, — это бирка, при­креп­лен­ная раз­ра­бот­чи­ком UEFI к пе­чат­ной пла­те проекта для того, чтобы од­но­знач­но оп­ре­де­лить и са­му плат­фор­му, и от­ла­жен­ный на ней про­г­рам­мный код.

Идентификатор BIOS Tag легко находится в бинарном файле капсулы по метке _TG_. По идее, он должен со­в­па­дать с Pro­ject ID, но сейчас это правило соблюдается редко, особенно такими крупными партнерами AMI, как ASUS. Ин­фор­ма­ци­он­но-ди­а­г­нос­ти­че­ские утилиты вроде Aida64 или Astra32 только выиграли бы в фун­к­ци­о­наль­но­сти, ес­ли бы ве­ли ба­зу дан­ных BIOS Tag для иден­ти­фи­ка­ции ма­те­рин­ских плат.

AMIBCP открывает Aptio

Совсем другая картина представляется глазам любопытного экспериментатора, открывающего капсулу UEFI BIOS для материнской платы ASUS TUF Gaming X570-Plus с помощью самой современной версии утилиты MIBCP 5.02.0031:

Утилита конфигурирования AMIBCP 5.02.0031 открывает доступ к редактированию настроек UEFI BIOS материнской платы ASUS TUF Gaming X570-Plus

 

Для наглядности на скрин­шоте отмечены закладки меню UEFI BIOS, который были доступны и в более ста­рых вер­си­ях AMIBCP. Переход к актуальному релизу кон­фи­гу­ра­ци­он­ной ути­ли­ты от AMI открывает до­ступ к прин­ци­пи­аль­но важ­ным на­ст­рой­кам Aptio: Setup Configuration и BIOS Strings. Тем, ради которых и затеян дан­ный экс­пе­ри­мент.

Меню BIOS Strings программы AMIBCP для редактирования настроек AMI Aptio

 

Настройки BIOS в AMIBCP и в Setup

Соответствие настроек UEFI BIOS, пред­ла­га­е­мых поль­зо­ва­те­лю в меню CMOS Setup, тем же на­ст­рой­кам в за­клад­ке Set­up Con­fi­gu­ra­tion, пред­ла­га­е­мой утилитой AMIBCP, нор­ми­ру­ет­ся внут­рен­ним до­ку­мен­том Ame­ri­can Me­ga­trands, ко­то­рый на­зы­ва­ет­ся Aptio Text Setup Environment. В программном коде это ре­а­ли­зу­ет­ся с по­мо­щью струк­ту­ры AMITSE, от­вет­ст­вен­ной за доступ к настройкам. Рассмотрим, как это вы­гля­дит на ре­аль­ной плат­фор­ме ASUS TUF Gaming X570-Plus.

Опция CPU Configuration из меню Advanced материнской платы ASUS TUF Gaming X570-Plus с процессором AMD Ryzen 5 3400G

 

Рассмотрим скрин­шот CPU Configuration из меню Advanced. Ряд настроек, доступных пользователю, есть и в кап­су­ле, от­кры­той с по­мо­щью AMIBCP:

Ряд настроек, доступных пользователю в опции CPU Configuration из меню Advanced, доступны в капсуле, открытой с помощью утилиты AMIBCP

 

Конечно, настройки UEFI BIOS платы ASUS в AMIBCP выглядят не так красочно, как в CMOS Setup. Зато их лег­ко ре­дак­ти­ро­вать, ме­няя значение поля Show. Неоднозначность ситуации усугубляется тем, что нет со­от­вет­ст­вия в оп­ци­ях пла­ты и от­кры­то­го файла, но мы помним, что виноват в этом недоступный поль­зо­ва­те­лю модуль AMITSE.

Совсем другая ситуация наблюдается с AMD Common BIOS Specification.

Опция AMD Common BIOS Specification из меню Advanced материнской платы ASUS TUF Gaming X570-Plus с процессором AMD Ryzen 5 3400G

 

Выберем одну из опций AMD CBS — например, Enable IBS — и попытаемся найти ее в образе BIOS, открытом из капсулы с помощью AMIBCP.

В составе AMD Common BIOS Specification есть опция Enable IBS для управления параметром Instruction Base Sampling

 

К сожалению, никаких следов Instruction Base Sampling в Setup Configuration не обнаружено. Возможная причина этой и подобных ситуаций — интеграция проприетарного кода (в данном случае AMD) в программный код UEFI BIOS.

Обратите внимание на строку «Version 2.20.1271. Copyright (C) 2019 American Megatrends, Inc.». Это и есть строка Sign On Message, ранее рассмотренная в закладке AMIBCP BIOS Features, предлагаемой программой для редактирования настроек BIOS.

Подводя черту

На этом можно было бы и закончить обзор возможностей программы для редактирования настроек AMIBIOS, но ло­гич­ным за­вер­ше­ни­ем должен быть протокол работы. Об этом компания American Megatrnds тоже по­за­бо­ти­лась.

С помощью кнопки LogFile утилита AMIBCP предлагает сохранить журнал настроек Aptio, в котором зарегистрирован статус всех полей, доступных пользователю

 

С помощью неприметной кнопки LogFile утилита AMIBCP предлагает сохранить журнал настроек BIOS ма­те­рин­ской пла­ты ASUS TUF Gaming X570-Plus, в ко­то­ром за­ре­гист­ри­ро­ван статус всех полей, до­ступ­ных поль­зо­ва­те­лю. Эта оп­ция без­ус­лов­но важ­на тем, кому ин­те­ре­сен ана­лиз из­ме­не­ний и до­пол­не­ний, по­я­вив­ших­ся в новой версии UEFI. В кон­текс­те данной статьи полученный log-файл под­твер­ж­да­ет, что в до­ку­мен­ти­ро­ван­ных на­ст­рой­ках Setup оп­ции «Enable IBS» просто нет.

Успехов и новых утилит, хороший и разных!