Udostępnij za pośrednictwem


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
);

minimalne wymagania UEFI dla systemu Windows na platformach SoC

wymagania ueFI, które mają zastosowanie do wszystkich wersji systemu Windows