Поделиться через


Требования UEFI для поддержки флэш-памяти USB

Корпорация Майкрософт предоставляет несколько решений для флэш-памяти на основе USB для использования в инженерных и производственных средах. Чтобы устройство использовалось с этими инструментами, среда UEFI на устройстве должна соответствовать требованиям, указанным в этом разделе.

Эти требования, связанные с вспышкой, расширяют требования UEFI, перечисленные в требованиях UEFI, которые применяются ко всем выпускам Windows.

Обязательные протоколы UEFI

Протокол Сведения о требованиях
Протокол функции USB Для прошивки по USB 3.0 прошивка должна реализовывать версию протокола ФУНКЦИИ USB UEFI 0x00010002 или более позднюю, включая поддержку функции EFI_USBFN_IO_PROTOCOL.ConfigureEnableEndpointsEx. Дополнительные сведения см. в протоколе функции USB UEFI .
BlockIO Решения USB для прошивки, предоставляемые корпорацией Майкрософт, выбирают первый возвращаемый указатель на устройство хранения данных ввода-вывода, имеющее ненулевой размер, для прошивки. Устройство может быть несъемным или съемным накопителем.

Десинхронное событие UEFI (необязательно)

Компоненты UEFI, которые пытаются считывать или записывать на диск во время мигания, должны реализовать поддержку события десинхронного события UEFI (EFI_EVENT_GROUP_FIRMWARE_DESYNC), как описано в следующей таблице.

Требование Описание
Поддержка служб загрузки UEFI Встроенное ПО UEFI должно поддерживать службы "События", "Таймер" и "Приоритет задач", как определено в разделе 6.1 спецификации UEFI 2.3.1.
GUID группы событий Корпорация Майкрософт определяет EFI_EVENT_GROUP_FIRMWARE_DESYNC со следующим ИДЕНТИФИКАТОРом GUID: {24FA5E72-1A82-49A2-970B-3230372662A5}
События встроенного ПО UEFI Определите все компоненты встроенного ПО UEFI, требующие обновления или синхронизации состояния в хранилище регулярно. В каждом из этих компонентов создайте событие, связанное с EFI_EVENT_GROUP_FIRMWARE_DESYNC и notifyFunction(), которое приводит к остановке обновления или синхронизации компонента обратно в хранилище. Событие NotifyFunction() должно выполнять любые операции очистки, необходимые для перехода компонента в десинхронизированный режим. После этой очистки компонент не должен обновлять или синхронизировать его хранилище с флэш-памятью до следующей перезагрузки устройства. Если событие NotifyFunction завершается ошибкой(), уведомлениеFunction() не должно возвращать EFI_SUCCESS.

В следующем примере кода показано, как встроенное ПО может создать событие GUID группы событий:

gBS->CreateEventEx (
    EVT_NOTIFY_SIGNAL,
    TPL_CALLBACK,
    FIRMWARE_NOTIFICATION_FUNCTION,          // To be defined by SoC Vendor
    &FIRMWARE_NOTIFICATION_FUNCTION_CONTEXT, // To be defined by SoC Vendor
    &EFI_EVENT_GROUP_FIRMWARE_DESYNC,
    &Event                                   // Event returned by CreateEventEx
);

Минимальные требования UEFI для Windows на платформах SoC

требования UEFI, применимые ко всем выпускам Windows