Wymagania interfejsu UEFI dotyczące obsługi flashowania USB
Firma Microsoft udostępnia kilka rozwiązań flashowania opartych na usb do użycia w środowiskach inżynieryjnych i produkcyjnych. Aby urządzenie było używane z tymi narzędziami, środowisko UEFI na urządzeniu musi spełniać wymagania wymienione w tym temacie.
Te wymagania dotyczące flashowania są rozszerzeniem wymagań UEFI wymienionych w , które mają zastosowanie do wszystkich wersji systemu operacyjnego Windows.
Wymagane protokoły UEFI
Protokół | Szczegóły wymagań |
---|---|
Protokół funkcji USB | Do programowania przez USB 3.0 konieczne jest, aby oprogramowanie układowe implementowało rewizję protokołu funkcji UEFI USB 0x00010002 lub nowszą, w tym obsługę funkcji EFI_USBFN_IO_PROTOCOL.ConfigureEnableEndpointsEx. Aby uzyskać więcej informacji, zobacz protokół funkcji USB UEFI. |
BlockIO | Oferowane przez firmę Microsoft rozwiązania do flashowania USB wybierają pierwszy wskaźnik zwrócony do urządzenia magazynującego I/O o rozmiarze większym niż zero do flashowania. Urządzenie może być pamięcią niewymienną lub wymienną. |
Zdarzenie desynchronizacji UEFI (opcjonalnie)
Składniki UEFI, które próbują odczytywać lub zapisywać na dysku podczas flashowania, muszą implementować obsługę zdarzenia desynchronizacji UEFI (EFI_EVENT_GROUP_FIRMWARE_DESYNC), zgodnie z opisem w poniższej tabeli.
Wymaganie | Opis |
---|---|
Obsługa usług rozruchowych UEFI | Oprogramowanie układowe UEFI musi obsługiwać usługi Event, Timer i Task Priority Services zgodnie z definicją w sekcji 6.1 specyfikacji UEFI 2.3.1. |
Identyfikator GUID dla grupy zdarzeń | Firma Microsoft definiuje EFI_EVENT_GROUP_FIRMWARE_DESYNC za pomocą następującego identyfikatora GUID: {24FA5E72-1A82-49A2-970B-3230372662A5} |
Zdarzenia oprogramowania układowego UEFI | Zidentyfikuj wszystkie składniki oprogramowania układowego UEFI, które wymagają regularnego odświeżania lub synchronizowania ich stanu z powrotem do pamięci masowej. W każdym z tych składników utwórz zdarzenie skojarzone z EFI_EVENT_GROUP_FIRMWARE_DESYNC i NotifyFunction(), które powoduje zatrzymanie odświeżania/synchronizacji składnika z powrotem do magazynu. Zdarzenie NotifyFunction() powinno wykonać wszelkie operacje oczyszczania niezbędne do przejścia składnika do trybu desynchronizowanego. Po wykonaniu tego czyszczenia składnik nie może odświeżyć ani zsynchronizować swojej pamięci z pamięcią flash do momentu ponownego uruchomienia urządzenia. Jeśli zdarzenie NotifyFunction zakończy się niepowodzeniem(), funkcja NotifyFunction() nie powinna zwracać EFI_SUCCESS. |
Poniższy przykład kodu pokazuje, jak oprogramowanie układowe może utworzyć zdarzenie GUID grupy zdarzeń:
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
);
Tematy pokrewne
minimalne wymagania UEFI dla systemu Windows na platformach SoC
wymagania ueFI, które mają zastosowanie do wszystkich wersji systemu Windows