Wymagania interfejsu UEFI dotyczące wersji systemu Windows na platformach SoC
W tym artykule opisano wymagania UEFI dotyczące systemu Windows 10 dla wersji klasycznych (Home, Pro, Enterprise i Education).
Podsumowanie wymagań
W poniższej tabeli wymieniono wszystkie bieżące wymagania dotyczące zgodności interfejsu UEFI zgodnie ze specyfikacją UEFI (sekcja 2.6 specyfikacji UEFI 2.3.1). W tej tabeli termin Jawne wymaganie systemu Windows identyfikuje dowolny protokół lub usługę, która jest wywoływana bezpośrednio przez składnik systemu Windows. Chociaż tylko te usługi są jawnie używane przez system Windows, inne wymienione usługi i protokoły mogą być niejawnie lub jawnie wymagane przez podstawową implementację oprogramowania układowego, sterowniki urządzeń EFI lub łańcuchy narzędzi programistycznych i wdrożeniowych.
Firma Microsoft z zadowoleniem przyjmuje opinie i komentarze od implementujących ten zestaw wymagań. W przypadku wszelkich wymagań zgodności interfejsu UEFI, które nie są wymagane przez system operacyjny lub oprogramowanie układowe, naszym zamiarem jest wykonanie pracy przez UEFI.org, aby te wymagania zgodności zostały złagodzone dla tej klasy urządzeń.
Aby uzyskać więcej informacji na temat konkretnych wymagań, zobacz sekcje po tabeli.
Wymaganie | Sekcja specyfikacji UEFI | Notatki |
---|---|---|
tabela systemu EFI | 4.3 | Jawne wymaganie systemu Windows |
usług rozruchowych EFI | 6.0 | |
Usługi zdarzeń, czasomierza i zadań | 6.1 | |
Usługi pamięci | 6.2 | Jawne wymaganie systemu Windows |
Usługi obsługi protokołów | 6.3 | Jawne wymaganie systemu Windows |
Usługi obrazów | 6.4 | Jawne wymaganie systemu Windows |
Różne usługi | 6.5 | Jawne wymaganie systemu Windows |
usług środowiska uruchomieniowego EFI | 7.0 | |
Usługi dotyczące zarządzania czasem | 7.3 | Jawne wymaganie systemu Windows |
Zmienne usługi | 7.2 | Jawne wymaganie systemu Windows |
Różne usługi | 7.5 | Jawne wymaganie systemu Windows |
wymagane protokoły UEFI | ||
Protokół EFI dotyczący załadowanych obrazów | 8.1 | |
Protokół ścieżki urządzenia z załadowanym obrazem EFI | 8.2 | |
Protokół ścieżki urządzenia EFI | 9.2 | Jawne wymaganie systemu Windows |
Protokół narzędzi dla ścieżek urządzeń EFI | 9.5 | |
Protokół dekompresu EFI | 18,5 | |
Protokół interpretera EBC | 20.11 | |
warunkowo wymagane protokoły UEFI | ||
Prosty protokół wprowadzania tekstu EFI | 11.3 | Jawne wymaganie systemu Windows |
Protokół EFI prostego wprowadzania tekstu EX | 11.2 | |
Prosty protokół wyjściowy tekstowy EFI | 11.4 | |
Protokół wyjściowy grafiki EFI | 11.9 | Jawne wymaganie systemu Windows |
Odnaleziony protokół EFI EDID | 11.9.1 | |
Aktywny protokół EFI EDID | 11.9.1 | |
Protokół we/wy bloku EFI | 12.8 | Jawne wymaganie systemu Windows |
Protokół we/wy dysku EFI | 12.7 | |
Prosty protokół systemu plików EFI | 12.4 | |
Protokół sortowania EFI Unicode | 12.10 | |
Prosty protokół sieciowy EFI | 21.1 | |
Podstawowy protokół kodu EFI PXE | 21.3 | |
Protokół usług integralności rozruchu EFI | 21.5 | |
Protokół we/wy szeregowego interfejsu EFI | 11.8 | |
Powiązanie UEFI Arm | 2.3.5 | Jawne wymaganie systemu Windows |
wymagania dotyczące zabezpieczeń | ||
Bezpieczny rozruch | 27.0 | Jawne wymaganie systemu Windows |
Wymagania dotyczące menedżera rozruchu | 3.1, 3.3 | Jawne wymaganie systemu Windows |
Wymagania dotyczące tabeli systemowej EFI
Tabela systemowa EFI musi być zgodna ze standardową definicją na poziomie wersji zaimplementowanej. Tabela konfiguracji wskazywana przez tabelę systemu EFI musi zawierać dwa identyfikatory GUID i skojarzone ze nimi wskaźniki opisane w poniższej tabeli.
GUID | Opis |
---|---|
Tabela GUID EFI_ACPI | Ten identyfikator GUID powinien wskazywać na wskaźnik opisu głównego systemu ACPI (RSDP) dla platformy. |
SMBIOS_Table GUID | Ten GUID musi wskazywać na strukturę punktu wejścia SMBIOS. System Windows wymaga specyfikacji SMBIOS na poziomie wersji 2.4 lub nowszej. Sekcje 3.2, "Wymagane struktury i dane" oraz 4, "Wytyczne dotyczące zgodności", są wymagane. Dostępny jest test zgodności systemu Windows SMBIOS. |
Wymagania dotyczące usług rozruchowych EFI
W poniższej tabeli wymieniono wymagania dotyczące usług rozruchowych EFI dla systemu Windows.
Usługa rozruchu EFI | Wymaganie |
---|---|
Usługi pamięci | System Windows wymaga wszystkich usług pamięci. |
Usługi obsługi protokołów | System Windows wymaga następujących usług obsługi protokołów: OpenProtocol() CloseProtocol() LocateDevicePath() LocateHandle() |
Usługi obrazów | System Windows wymaga następujących usług obrazu: ExitBootServices() |
Rozmaite usługi rozruchowe | System Windows wymaga następujących różnych usług rozruchowych: Stall() Uwaga: implementacja Stall() musi mieć deterministyczny (powtarzalny) błąd, aby można było niezawodnie poprawić lub anulować błąd. |
Wymagania dotyczące usług środowiska uruchomieniowego EFI
W poniższej tabeli wymieniono wymagania dotyczące usług środowiska uruchomieniowego EFI dla systemu Windows.
Usługa środowiska uruchomieniowego EFI | Wymaganie |
---|---|
Usługi związane z czasem | System Windows wymaga następujących usług czasowych: GetTime() SetTime() Uwaga: Usługi czasu będą wywoływane tylko podczas rozruchu (przed ExitBootServices()) na potrzeby uzyskiwania dostępu do sprzętu platformy odczytującego czas dnia. |
Usługi zmienne | Wszystkie usługi zmiennych UEFI są wymagane do zarządzania wieloma urządzeniami rozruchowymi i zmiennymi zabezpieczeń w docelowej klasie systemów. |
Różne usługi środowiska uruchomieniowego | System Windows wymaga następujących różnych usług środowiska uruchomieniowego: ResetSystem() Uwaga: implementacja ResetSystem() musi obsługiwać zarówno opcje resetowania, jak i zamykania. |
Wymagania dotyczące protokołu
W poniższej tabeli opisano protokoły UEFI wymagane przez system Windows do wykonywania określonych funkcji podczas rozruchu.
Protokół | Wymaganie |
---|---|
Protokół wyjściowy grafiki | System Windows wymaga protokołu GRAPHICS Output Protocol (GOP). Wymagania dotyczące buforu ramki są następujące: W przypadku zintegrowanych wyświetlaczy HorizontalResolution i VerticalResolution musi być natywną rozdzielczością panelu. W przypadku wyświetlaczy zewnętrznych HorizontalResolution i VerticalResolution muszą być natywną rozdzielczością wyświetlacza lub, jeśli nie jest to obsługiwane, najwyższymi wartościami obsługiwanymi zarówno przez kartę graficzną, jak i połączony ekran. PixelsPerScanLine musi być równe HorizontalResolution. PixelFormat musi być PixelBlueGreenRedReserved8BitPerColor. Wymagany jest fizyczny bufor ramki; PixelBltOnly nie jest obsługiwana. Gdy przekazywane jest wykonanie do aplikacji startowej UEFI, menedżer rozruchu oprogramowania układowego i oprogramowanie układowe nie mogą używać buforu ramki w żadnym celu. Bufor ramki musi być nadal skanowany po zakończeniu usług rozruchowych. |
Alternatywne źródło wyświetlania | Oprogramowanie układowe UEFI musi obsługiwać rozruch przy użyciu dowolnego łącznika wyświetlania obsługiwanego przez sprzęt. Jeśli panel wewnętrzny jest połączony i widoczny, należy użyć panelu wewnętrznego. Wszystkie wyjścia, które mają fizycznie połączone ekrany, muszą wyświetlać ekran rozruchowy. W przypadku podłączonych wyświetlaczy oprogramowanie układowe UEFI musi: Zainicjuj dane wyjściowe za pomocą trybu natywnego wyświetlania, jeśli można określić rozdzielczość natywną. Jeśli tryb natywny nie jest możliwy, należy zainicjować tryb najwyższej zgodności. Jeśli nie można określić możliwości wyświetlania, podłączony wyświetlacz musi zostać zainicjowany w trybie, który jest znany jako zgodny z dowolną liczbą monitorów (zazwyczaj 640x480 lub 1024x768, przy 60 Hz). |
Dane wejściowe w czasie rozruchu | Protokół EFI Simple Text Input Protocol jest wymagany do wyboru rozruchu lub innych opcji menu w systemach z wbudowanymi klawiaturami lub dołączonymi klawiaturami. W przypadku systemów bez klawiatury w środowisku rozruchowym zalecane są trzy przyciski: Przycisk Start Przycisk zwiększania głośności Przycisk zmniejszania głośności Naciśnięcia przycisków należy zgłaszać za pośrednictwem protokołu EFI Simple Text Input Protocol, mapując je odpowiednio na następujące klawiatury: Klucz systemu Windows Strzałka w górę Strzałka w dół |
Uruchamianie pamięci lokalnej | System Windows wymaga obsługi protokołu we/wy blokowego oraz protokołu ścieżki urządzeń dla rozwiązania magazynowania zawierającego partycję systemową EFI i partycję systemu operacyjnego Windows. W przypadku rozruchu z magazynu flash, który wymaga bilansowania zużycia lub innego zarządzania flash, należy to zaimplementować w oprogramowaniu układowym (nie w aplikacji UEFI). |
Wymagania dotyczące zabezpieczeń
System Windows ma wymagania dotyczące zabezpieczeń w obszarach bezpiecznego rozruchu, mierzonego rozruchu, kryptografii i ochrony danych. Te wymagania zostały szczegółowo opisane w poniższej tabeli. Ponadto w przypadku tych obszarów, w których sprzęt SoC zapobiega zgodności z istniejącym standardem (TPM, RTC itp.), opracowywane są dodatkowe wymagania. Są one opisane na końcu tabeli.
Obszar | Wymaganie |
---|---|
Ogólne |
|
Bezpieczny rozruch UEFI |
|
Mierzony rozruch UEFI | Poniższe wymagania nie oznaczają potrzeby implementacji modułu TPM TCG; oznaczają one jednak potrzebę równoważności funkcji dla obszarów, których dotyczy problem. Obsługa platformy może być zapewniana przez implementację sprzętową oprogramowania układowego modułu TPM działającego w bezpiecznym środowisku wykonywania, opartą na silniku przyspieszania kryptograficznego i korzystającą z izolowanej pamięci. Firma Microsoft może być w stanie udostępnić oprogramowanie referencyjne dla takiej implementacji modułu TPM do użytku przez dostawcę. Jest to przedmiotem dalszych dyskusji.
|
Kryptografia |
|
Ochrona danych |
|
Inne wymagania dotyczące zabezpieczeń | Następujące dodatkowe wymagania są wymagane przez system Windows na platformach SoC.
|
Wymagania dotyczące menedżera rozruchu oprogramowania układowego
Menedżer rozruchu oprogramowania układowego musi obsługiwać domyślne zachowanie rozruchu zdefiniowane w sekcji 3.3 specyfikacji. Ponadto, do obsługi wielo-rozruchu wymagane są globalnie zdefiniowane zmienne oraz zgodność z wymaganiami menedżera rozruchu określonymi w sekcji 3.1 specyfikacji.
Wymagania dotyczące powiązania UEFI ARM
UEFI Arm Binding zawiera wymagania specyficzne dla platformy Arm, które są potrzebne, aby zapewnić zgodność ze specyfikacją UEFI. System Windows wymaga wszystkiego w powiązaniu arm, które ma zastosowanie do architektury ARMv7. Ponieważ system Windows nie obsługuje żadnych elementów wcześniejszych niż ARMv7, wymagania w powiązaniu, które są specyficzne dla arMv6k i poniżej, są opcjonalne.
Powiązanie określa na przykład sposób konfigurowania jednostki MMU oraz sposób mapowanie pamięci fizycznej. Powiązanie określa również, że wywołania wykonywane do protokołów i usług UEFI powinny być wykonywane tylko w ARM ISA, co oznacza, że oprogramowanie działające w Thumb2 lub Thumb będzie musiało przełączyć się z powrotem do trybu ARM przed wywołaniem funkcji UEFI.
Wymagania dotyczące uruchamiania wieloprocesorowego interfejsu UEFI Arm
Firma Microsoft opracowała protokół uruchamiania wielu rdzeni arm na platformie UEFI z wieloma procesorami. Ten protokół jest wymagany przez system Windows na platformach Arm, które nie obsługują Power State Coordination Interface (PSCI). Platformy, które obsługują interfejs PSCI, nie mogą używać tego protokołu. Aby uzyskać więcej informacji na temat tego protokołu, zobacz dokument Uruchamianie wieloprocesorowe na platformach opartych na UEFI Arm na stronie internetowej Architektury składników ACPI (ACPICA).
Wymagania dotyczące konfiguracji platformy
Oprogramowanie układowe jest odpowiedzialne za umieszczenie sprzętu systemu w dobrze zdefiniowanym stanie przed przekazaniem go do modułu ładującego systemu operacyjnego. W poniższej tabeli zdefiniowano powiązane wymagania dotyczące konfiguracji platformy.
Wymaganie | Opis |
---|---|
Ścieżka rozruchu | Oprogramowanie układowe musi zainicjować platformę do punktu, w którym system Windows może uzyskać dostęp do urządzenia rozruchowego za pośrednictwem interfejsu UEFI i załadować jądro. Każde urządzenie zaangażowane w hierarchię do odczytu z urządzenia rozruchowego musi być taktowane i zasilane w rozsądnym tempie, biorąc pod uwagę wydajność i moc. Podstawowy rdzeń procesora powinien być również taktowany i zasilany w rozsądnym tempie, aby system mógł uruchomić się w odpowiednim czasie bez opróżniania baterii. |
Podstawowe zasoby systemowe | Podstawowe zasoby systemowe uwidocznione w systemie operacyjnym za pośrednictwem tabel ACPI muszą być włączone i taktowane. Podstawowe zasoby systemowe obejmują kontrolery przerwań, czasomierze i kontrolery DMA, które muszą być zarządzane przez system operacyjny. Ponadto przerwania muszą być maskowane przez wywołanie metody ExitBootServices(), dopóki skojarzony sterownik urządzenia w systemie operacyjnym nie zdemaskuje i ponownie włączy przerwania na urządzeniu. Jeśli przerwy są włączone podczas usług rozruchowych, zakłada się, że oprogramowanie układowe zarządza nimi. |
Debugowanie | System Windows obsługuje debugowanie za pośrednictwem interfejsów USB 3 Host (XHCI), USB 2 Host (EHCI)1, IEEE 1394, interfejsów szeregowych i funkcji USB (a także kart PCI Ethernet). Co najmniej jeden z nich musi być zasilany, taktowany i inicjowany przez oprogramowanie układowe przed przekazaniem systemu operacyjnego. Niezależnie od tego, która opcja jest dostarczona, musi mieć uwidoczniony port do celów debugowania, a kontroler musi być mapowany na pamięć lub być podłączony za pośrednictwem dedykowanej (niewspółdzielonej) magistrali peryferyjnej. |
Inne wymagania dotyczące konfiguracji platformy | Przed przekazaniem kontroli modułowi ładującemu systemu operacyjnego należy ukończyć konfigurację multipleksowania pinów i padów w oprogramowaniu układowym. |
Wymagania dotyczące instalacji
System Windows wymaga, aby partycja systemu operacyjnego znajdowała się w rozwiązaniu magazynu partycjonowanego GPT. Magazyn podzielony na partycje MBR może być używany jako magazyn danych. Zgodnie ze specyfikacją UEFI platforma UEFI wymaga dedykowanej partycji systemowej. System Windows wymaga tej dedykowanej partycji systemowej nazywanej partycją systemową EFI (ESP).
Wymaganie sprzętowego interfejsu testowego zabezpieczeń (HSTI)
Platforma musi zaimplementować sprzętowy interfejs testowania zabezpieczeń, a platforma ma obowiązek udostępniania dokumentacji i narzędzi zgodnie z specyfikacją testowania zabezpieczeń sprzętu.
Powiązane artykuły
minimalne wymagania UEFI dla systemu Windows na platformach SoC