Компания Intel создала на базе GRUB инструментарий для тестирования BIOS
Представители компании Intel представили в списке рассылки разработчиков Linux-ядра проект BITS (BIOS Implementation Test Suite), в рамках которого на базе свободного загрузчика GRUB2 подготовлено небольшое окружение, загружаемое с USB Flash или другого носителя, и предназначенное для тестирования BIOS на этапе до загрузки операционной системы. Код проекта распространяется, как и код GRUB2, в рамках лицензии GPLv3. Размер загрузочного образа 2.7 Мб.
Главные задачи тестирования BIOS связаны с проверкой корректности инициализации процессоров Intel и другого оборудования, а также с оценкой степени соответствия заявленным технологиям (например, ACPI, SMMR, MSR) и рекомендациям Intel. Кроме тестирования, BITS позволяет самостоятельно выполнить инициализацию CPU и оборудования, используя набор эталонных рекомендаций Intel (например, корректно заполнить ACPI-таблицы), а также переопределить настройки, выставленные на этапе работы BIOS.
В пакете реализован набор команд для проведения экспериментов, осуществления разнообразных проверок, сбора информации о системе, тестирования и низкоуровневого конфигурирования оборудования. Например, реализованы команды для манипулирования такими аппаратными ресурсами, как MSR (model-specific register), CPUID, PCI и PCI Express, а также поддержка специфичных для различных моделей CPU ресурсов. В состав также входит модуль, позволяющий на лету выполнять выражения на языке Си (подерживаются только целочисленные операции), позволяющий создавать собственные скрипты-команды, написанные на языке Си.
Текущая версия BITS нацелена в основном на конфигурирование CPU и системы управления питанием. Поддерживаются все x86-платформы Intel, а также процессоры на базе микроархитектуры Nehalem или более новой, включая серверные CPU Intel Xeon и процессоры Intel Core i7, i5 и i3 для настольных и мобильных систем. Из типичных операций, которое можно выполнить в BITS приводятся: определение корректности проведения в BIOS инициализации подсистемы управления питанием CPU; загрузка эталонного кода управления питанием, заменяя конфигурацию BIOS; определение частоты и продолжительности SMI-прерываний BIOS (System Management Interrupts); проверка как долго CPU находится в состоянии сна (C-states).