Intel научилась обновлять UEFI без перезагрузки

pcxn2edntkolua7niokpjlondla.jpeg

Компания Intel разработала новый механизм обновления UEFI под названием Intel Seamless Update, который позволяет изменять конфигурацию UEFI на лету. Это очень удобно для администраторов серверов, которые могут накатывать новые прошивки прямо на работающую систему, обеспечивая гарантированный аптайм сервера согласно SLA.

Соответствующие патчи поступили в ядро Linux.
Технический документ Intel Management Mode Firmware Runtime Update — OS Interface, revision 1.00 подробно объясняет механизм «плавных апдейтов».


Согласно описанию в документе, большинство функций обрабатываются в модуле режима управления (management mode, MM), службе сервисов рантайма UEFI и службах ACPI. Архитектура процессоров Intel поддерживают ММ через режим управления системой (System Management Mode, SMM). Изменение выполнения кода MM на лету называется MM Runtime Update (MRU).

Механизм MRU включает в себя три функции: инъекция кода MM, обновление драйвера MM и телеметрия MM. Эти функции вызываются из операционной системы через ACPI Device Specific Method (DSM). На иллюстрации показана высокоуровневая архитектура всей инфраструктуры обновления.

image-loader.svg

На следующей схеме более подробно изложен механизм обновления прошивки на лету.

image-loader.svg

Отмечается, что «агент ОС» может несколько раз запускать данную схему для доставки нескольких образов в прошивку или отката на предудущее обновление в одном большом цикле.

Издание Phoronix обнаружило доказательства, что соответсвующие патчи пытаются добавить в ядро Linux. В частности, Intel обновляет код своих драйверов pfru_update.c и pfru_telemetry.c для ядра Linux.

 .../userspace-api/ioctl/ioctl-number.rst      |   1 +
 Documentation/x86/index.rst                   |   1 +
 Documentation/x86/pfru.rst                    | 100 +++
 drivers/acpi/Kconfig                          |   1 +
 drivers/acpi/Makefile                         |   1 +
 drivers/acpi/pfru/Kconfig                     |  29 +
 drivers/acpi/pfru/Makefile                    |   3 +
 drivers/acpi/pfru/pfru_telemetry.c            | 412 +++++++++++++
 drivers/acpi/pfru/pfru_update.c               | 567 ++++++++++++++++++
 include/linux/efi.h                           |  50 ++
 include/uapi/linux/pfru.h                     | 151 +++++
 tools/testing/selftests/Makefile              |   1 +
 tools/testing/selftests/pfru/Makefile         |   7 +
 tools/testing/selftests/pfru/config           |   2 +
 tools/testing/selftests/pfru/pfru_test.c      | 329 ++++++++++
 15 files changed, 1655 insertions(+)


Судя по таймингу изменений, Intel готовится к тому, чтобы выкатить Seamless Update на серверах с процессорами Xeon Scalable нового поколения Sapphire Rapids в 2022 году.

В любом случае, это заметный шаг вперёд для корпоративных систем. Возможность накатить прошивку UEFI без перезагрузки — очень удобная вещь. Бесшовное обновление Intel, похоже, не требует специализированного оборудования, только поддержки драйверов и ОС. Если эту функцию внедряют в Linux, то ничего не мешает добавить её в серверную Windows, а затем и в обычные системы.

© Habrahabr.ru