Низкоуровневое исследование UEFI BIOS ноутбука ASUS T100T

10 Дек 2014

Низкоуровневое исследование UEFI BIOS ноутбука ASUS T100T

Известно, что попытка сделать несколько дел одновременно обычно да­ет негативный результат. Тем не менее, мы решили совместить низ­ко­у­ров­не­вое исследование UEFI BIOS ноутбука ASUS T100T, оказавшегося в на­шей тестовой лаборатории с процессом отладки и тестирования на­ше­го нового программного продукта UEFImark EBC Edition, ведь ра­бо­тая на уровне регистров, ячеек памяти и ассемблерного кода мож­но уви­деть много такого, о чем не говорится на презентациях…

 

Эксперимент с обновлением firmware

Согласно сложившейся традиции, работу с устройством начинаем с обновления firmware. Мы заменили прошивку с версии 2.14 на 2.23. Что изменилось?

  1. Ноутбук приобрел способность обнаруживать и запускать UEFI-загрузчик с внешнего USB-накопителя по стан­дарт­но­му пути \EFI\BOOT\bootia32.efi (см. публикацию «В ноутбуках ASUS уже нет Legacy-загрузки?»).
  2. С помощью утилиты BIOS Implementation Test Suite обнаружено, что устранена ошибка, приводившая к уве­ли­че­нию погрешности установки (или измерения) тактовой частоты процессора в тесте ACPI. Данный тест состоит в установке различных Power Management состояний процессора с последующим измерением тактовой частоты для каждого состояния.
  3. Также благодаря BIOSBITS мы определили, что устранена ошибка, приводившая к некорректным ре­зуль­та­там в тесте, измеряющем временные соотношения при обработке SMI (System Management Interrupt) и вре­мя нахождения процессора в состоянии SMM (System Management Mode). Заметим, что одним из след­ствий этой ошибки могут быть сбои оборудования, связанные с недопустимым увеличением ла­тент­нос­ти при об­ра­бот­ке внешних аппаратных прерываний.

Низкоуровневое исследование BIOS ноутбука ASUS T100T подтвердило. что платформа оснащена 32-битной «прошивкой» UEFI

32 или 64 бита?

Не обошлось без недоразумений. Ранее по сети разошлась информация, ноутбук снабжен 32-битным про­цес­со­ром. А по информации на сайте Intel, процессор Intel Atom CPU Z3740 поддерживает технологию Intel 64 (см. пу­бли­ка­цию «Особенности реализации USB-подсистемы ноутбука ASUS T100T»). Но результаты наших по­сле­до­ва­тель­ных попыток запуска 32-битного и 64-битного вариантов UEFI Shell с внешнего USB-накопителя, однозначно говорят о наличии только IA32 UEFI firmware. Итак, для прояснения ситуации, запускаем UEFImark EBC Edition и получаем такой результат:
 

Результат работы утилиты UEFImark EBC Edition

Строка Native width, bits: 32 означает, что UEFI firmware использует 32-битный режим работы процессора, а также, что для адресации системных объектов в пространстве адресуемой памяти используются 32-битные указатели и размер адресного пространства равен 4 Гигабайта или 232 байт.

Строка CPU features: iEM64T… означает, что процессор поддерживает 64-битный режим, но его включение воз­мож­но только после передачи контроля над платформой от UEFI к 64-битной операционной системе.

Вывод: у нас 64-битный процессор, на котором запущен 32-битный UEFI. Получение системной информации не­по­сред­ствен­но «из железа» гарантирует ее достоверность.

Резюме

Около двух лет назад из целого ряда независимых источников можно было услышать мнение о том, что ре­а­ли­за­ция UEFI для IA32 является «вчерашним днем» и все выпускаемые PC-совместимые системы будут ком­плек­то­вать­ся x64 UEFI firmware. И вот, в нашей тестовой лаборатории оказался новейший ноутбук от ASUS, снабженный 32-битной «прошивкой», несмотря на поддержку 64-битного режима процессором. Разумеется, приложения для x64 UEFI на нем запустить нельзя. Как разработчику системного программного обеспечения минимизировать риски в непредсказуемом и быстро меняющемся мире? Ответ на этот вопрос дает использование технологии EBC или EFI Byte Code, основанной на реализации в рамках UEFI виртуальной машины регистрового типа, архитектура которой не зависит от аппаратной реализации платформы. А чтобы окончательно потерять способность чему-либо удив­лять­ся, осталось только увидеть ноутбук на основе Itanium, и конечно, запустить на нем EBC-приложение…

Теги: