Опубликован релиз проекта CoreBoot 4.16, в рамках которого разрабатывается свободная альтернатива проприетарным прошивкам и BIOS. Код проекта распространяется под лицензией GPLv2. В создании новой версии приняло участие 170 разработчиков, которые подготовили 1770 изменений.
Основные новшества:
- Добавлена поддержка 33 материнских плат, 22 из которых используется на устройствах с Chrome OS или на серверах Google. Среди не связанных с Googlе плат:
- Acer Aspire VN7-572G
- AMD Chausie
- ASROCK H77 Pro4-M
- ASUS P8Z77-M
- Emulation QEMU power9
- Intel Alderlake-N RVP
- Prodrive Atlas
- Star Labs Star Labs StarBook Mk V (i3-1115G4 и i7-1165G7)
- System76 gaze16 3050, 3060 и 3060-b
- Прекращена поддержка материнских плат Google Corsola, Nasher и Stryke.
- Добавлена поддержка CPU Power9 и SoC AMD Sabrina.
- Добавлена опция для отключения подсистемы IME (Intel Management Engine), которая поставляется в большинстве современных материнских плат с процессорами Intel и реализована в виде отдельного микропроцессора, работающего независимо от CPU и выполняющего задачи, которые необходимо отделить от операционной системы, такие как обработка защищённого контента (DRM), реализация модулей TPM (Trusted Platform Module) и низкоуровневые интерфейсы для мониторинга и управления оборудованием. Для отключения IME в системах с процессорами начиная с семейства Skylake и заканчивая Alder Lake в CMOS задействован параметр me_state, присвоение значения 1 которому приведёт к отключению движка. Для изменения состояния CSME через CMOS добавлен метод “.enable”, состояние которого соответствует параметру me_state.
- Добавлен coreboot-configurator, простой графический интерфейс для изменения настроек CMOS в Coreboot CBFS, использующий утилиту nvramtool.
- Добавлена утилита apcb_v3_edit для редактирования бинарных файлов APCB V3 (AMD PSP Customization Block) и подстановки в них до 16 SPD (Serial Presence Detect).
- Обновлены субмодули amd_blobs, arm-trusted-firmware, blobs, chromeec, intel-microcode, qc_blobs и vboot.
- В MP init перенесён код для настройки LAPIC (Local Advanced Programmable Interrupt Controller).
- Добавлена поддержка ANSI escape-последовательностей для выделения важных событий, например, ошибок и предупреждений, при выводе логов в интерактивной консоли.
- Реализована функция cbmem_dump_console, похожая на cbmem_dump_console_to_uart, но работающая с обычно настроенными консолями.
- Настройки Live-образа адаптированы для работы с дистрибутивом NixOS 21.11.
Прекращена поддержка пакета iasl, который был заменён на acpica-tools. - Загрузчик U-Boot обновлён до версии 2021.10.
- Добавлена поддержка систем, включающих более 128 ядер CPU.
- Добавлен драйвер для датчиков приближения Semtech sx9360 SAR, используемых в устройствах Samsung.
- Добавлен драйвер для SD-контроллеров SGenesys Logic GL9750, применяемых в Chromebook.
- Добавлена поддержка Ethernet-кнотроллеров Realtek RT8125.
- Добавлен драйвер для Fibocom 5G WWAN ACPI .
- Добавлена поддержка смешанных топологий памяти при использовании DDR4.
- Добавлена поддержка спецификации FSP 2.3 (Flexible Software Package).
- Переработан код для вычисления хэшей, используемых при верификации и оценке состояния CBFS
- Добавлена поддержка технологии PCI-e Resizable BAR (Base Address Registers), позволяющей CPU обращаться ко всей видеопамяти PCI-карты.
Кроме того, представлен план перехода начиная с выпуска 4.18 на четвёртую редакцию механизма распределения ресурсов (RESOURCE_ALLOCATOR_V4), в которой добавлена поддержка манипуляции несколькими диапазонами ресурсов, использования всего адресного пространства и выделения памяти в области выше 4 ГБ. В выпуске Coreboot 4.18, который ожидается в ноябре, также планируется объявить устаревшим механизм классической инициализации многопроцессорного режима (LEGACY_SMP_INIT), на смену которому пришёл код инициализации PARALLEL_MP.