Requisiti UEFI per le edizioni di Windows nelle piattaforme SoC
Questo articolo descrive i requisiti UEFI che si applicano a Windows 10 per le edizioni desktop (Home, Pro, Enterprise e Education).
Riepilogo dei requisiti
La tabella seguente elenca tutti i requisiti correnti per la conformità UEFI, come definito nella specifica UEFI (sezione 2.6 della specifica UEFI 2.3.1). In questa tabella il termine requisito esplicito di Windows identifica qualsiasi protocollo o servizio chiamato direttamente da un componente di Windows. Anche se solo questi servizi vengono usati in modo esplicito da Windows, altri servizi e protocolli elencati possono essere implicitamente o esplicitamente richiesti da un'implementazione del firmware principale, driver di dispositivo EFI o da catene di strumenti di sviluppo e distribuzione.
Microsoft accoglie il feedback e i commenti degli implementatori su questo set di requisiti. Per tutti i requisiti di conformità UEFI che sono stati individuati come non richiesti dal sistema operativo o dal firmware, è nostra intenzione collaborare con UEFI.org per avere questi requisiti di conformità alleggeriti per questa classe di dispositivi.
Per altre informazioni sui requisiti specifici, vedere le sezioni successive alla tabella.
Requisito | Sezione specifica UEFI | Note |
---|---|---|
tabella di sistema EFI | 4.3 | Requisito esplicito di Windows |
servizi di avvio EFI | 6.0 | |
Servizi di eventi, timer e attività. | 6.1 | |
Servizi di memoria | 6.2 | Requisito esplicito di Windows' |
Servizi del gestore del protocollo | 6.3 | Requisito esplicito di Windows |
Servizi di immagine | 6.4 | Requisito esplicito di Windows |
Servizi vari | 6.5 | Requisito esplicito di Windows |
dei servizi di runtime EFI | 7.0 | |
Servizi temporali | 7.3 | Requisito esplicito di Windows |
Servizi variabili | 7.2 | Requisito esplicito di Windows |
Servizi vari | 7.5 | Requisito esplicito di Windows |
protocolli UEFI necessari | ||
Protocollo immagine caricato da EFI | 8.1 | |
Protocollo di percorso del dispositivo immagine caricato da EFI | 8.2 | |
Il protocollo del percorso del dispositivo EFI | 9.2 | Requisito esplicito di Windows |
Protocollo di utilità del percorso del dispositivo EFI | 9.5 | |
Protocollo di decompressione EFI | 18,5 | |
Protocollo interprete EBC | 20.11 | |
protocolli UEFI richiesti in modo condizionale | ||
Protocollo di input di testo semplice EFI | 11.3 | Requisito esplicito di Windows |
Protocollo EX di input di testo semplice EFI | 11.2 | |
Protocollo di output di testo semplice EFI | 11.4 | |
Protocollo di output della grafica EFI | 11.9 | Requisito esplicito di Windows |
Protocollo EFI EDID individuato | 11.9.1 | |
Protocollo attivo EFI EDID | 11.9.1 | |
Protocollo I/O di blocco EFI | 12.8 | Requisito esplicito di Windows |
Protocollo I/O del disco EFI | 12.7 | |
Protocollo di file system semplice EFI | 12,4 | |
Protocollo di confronto Unicode EFI | 12.10 | |
Protocollo di rete semplice EFI | 21.1 | |
Protocollo di codice di base PXE EFI | 21.3 | |
Protocollo dei servizi di integrità dell'avvio EFI | 21.5 | |
Protocollo I/O seriale EFI | 11.8 | |
Supporto UEFI ARM | 2.3.5 | Requisito esplicito di Windows |
requisiti di sicurezza | ||
Avvio protetto | 27.0 | Requisito esplicito di Windows |
Requisiti del gestore di avvio | 3.1, 3.3 | Requisito esplicito di Windows |
Requisiti della tabella di sistema EFI
La tabella di sistema EFI deve essere conforme alla definizione standard a livello di revisione implementata. La tabella di configurazione a cui punta la tabella di sistema EFI deve includere i due GUID e i puntatori associati descritti nella tabella seguente.
GUID (Identificatore Globale Unico) | Descrizione |
---|---|
EFI_ACPI_Table GUID | Questo GUID deve puntare al puntatore RSDP (ACPI Root System Description Pointer) per la piattaforma. |
SMBIOS_Table GUID | Questo GUID deve puntare alla struttura del punto di ingresso SMBIOS. Windows richiede la specifica SMBIOS, a livello di revisione 2.4 o superiore. Sono necessarie le sezioni 3.2, "Strutture e dati obbligatori" e 4 "Linee guida di conformità". È disponibile un test di compatibilità SMBIOS di Windows. |
Requisiti dei servizi di avvio EFI
La tabella seguente elenca i requisiti dei servizi di avvio EFI per Windows.
Servizio di avvio EFI | Requisito |
---|---|
Servizi di memoria | Windows richiede tutti i servizi di memoria. |
Servizi del gestore del protocollo | Windows richiede i servizi del gestore di protocolli seguenti: OpenProtocol() CloseProtocol() LocateDevicePath() LocateHandle() |
Servizi di immagine | Windows richiede i servizi di immagine seguenti: ExitBootServices() |
Vari servizi di avvio | Windows richiede i seguenti servizi di avvio vari: Stall() Nota: L'implementazione Stall() deve avere un errore deterministico (ripetibile), in modo che la correzione o l'annullamento degli errori possa essere eseguite in modo affidabile. |
Requisiti dei servizi di runtime EFI
La tabella seguente elenca i requisiti dei servizi di runtime EFI per Windows.
Servizio di runtime EFI | Requisito |
---|---|
Servizi di temporizzazione | Windows richiede i servizi di ora seguenti: GetTime() SetTime() Nota: i servizi temporali verranno chiamati solo durante l'avvio (prima di ExitBootServices()) per accedere all'hardware relativo all'ora del giorno sulla piattaforma. |
Servizi variabili | Tutti i servizi variabili UEFI sono necessari per la gestione di più dispositivi di avvio e variabili di sicurezza nella classe di destinazione dei sistemi. |
Vari servizi di runtime | Windows richiede i seguenti servizi di runtime vari: ResetSystem() Nota: L'implementazione di ResetSystem() deve supportare sia le opzioni di reimpostazione che di spegnimento. |
Requisiti del protocollo
La tabella seguente descrive i protocolli UEFI richiesti da Windows per eseguire funzioni specifiche durante l'avvio.
Protocollo | Requisito |
---|---|
Protocollo di output della grafica | Windows richiede il protocollo GOP (Graphics Output Protocol). Requisiti specifici del buffer dei frame sono: Per gli schermi integrati, HorizontalResolution e VerticalResolution devono essere la risoluzione nativa del pannello. Per gli schermi esterni, la risoluzione orizzontale e la risoluzione verticale devono essere la risoluzione nativa dello schermo oppure, se non è supportata, i valori più alti supportati sia dalla scheda video che dallo schermo connesso. PixelPerScanLine deve essere uguale a HorizontalResolution. PixelFormat deve essere PixelBlueGreenRedReserved8BitPerColor. È necessario un buffer di frame fisico; PixelBltOnly non è supportato. Quando l'esecuzione viene passata a un'applicazione di avvio UEFI, il firmware e il gestore di avvio del firmware non devono utilizzare il buffer dei fotogrammi in alcun modo. Il buffer dei frame deve continuare a essere analizzato dopo la chiusura dei servizi di avvio. |
Output di visualizzazione alternativo | Il firmware UEFI deve supportare l'avvio usando qualsiasi connettore di visualizzazione supportato dall'hardware. Se un pannello interno è connesso e visibile, è necessario usare il pannello interno. Tutti gli output con display connessi fisicamente devono mostrare la schermata di avvio. Per gli schermi connessi, il firmware UEFI deve: Inizializzare l'output con la modalità nativa dello schermo, se è possibile determinare la risoluzione nativa. Se non è possibile usare una modalità nativa, è necessario inizializzare la modalità più alta compatibile. Se non è possibile determinare le funzionalità di visualizzazione, lo schermo connesso deve essere inizializzato in una modalità nota per essere compatibile con il maggior numero possibile di monitor (in genere 640x480 o 1024x768, a 60 Hz). |
Input in fase di avvio | Il protocollo EFI Simple Text Input Protocol è necessario per effettuare scelte di avvio o altre selezioni di menu nei sistemi con tastiere predefinite o tastiere collegate. Per i sistemi senza tastiera, sono consigliati tre pulsanti nell'ambiente di avvio: Pulsante di Avvio Pulsante Di aumento volume Pulsante Abbassa volume La pressione dei pulsanti deve essere segnalata tramite il protocollo EFI Simple Text Input Protocol, mappandoli rispettivamente sui seguenti tasti della tastiera: Tasto Windows Freccia su Tasto Freccia giù |
Avvio dell'archiviazione locale | Windows richiede il supporto block I/O Protocol e Device Path Protocol per la soluzione di archiviazione che contiene la partizione di sistema EFI e la partizione del sistema operativo Windows. Per l'avvio dall'archiviazione flash che richiede il livellamento dell'usura o un'altra gestione della memoria flash, questa operazione deve essere implementata nel firmware (non in un'applicazione UEFI). |
Requisiti di sicurezza
Windows ha requisiti di sicurezza nelle aree di avvio protetto, avvio misurato, crittografia e protezione dei dati. Questi requisiti sono descritti in dettaglio nella tabella seguente. Inoltre, per le aree in cui l'hardware SoC impedisce la conformità allo standard esistente (TPM, RTC e così via), vengono sviluppati requisiti aggiuntivi. Queste informazioni sono descritte alla fine della tabella.
Area | Requisito |
---|---|
Generale |
|
Avvio protetto UEFI |
|
Avvio misurato UEFI | I requisiti seguenti non implicano la necessità di un'implementazione TPM TCG; tuttavia implicano una necessità di funzionalità equivalenti per le aree interessate. Il supporto della piattaforma può essere fornito da un'implementazione del firmware di un TPM in esecuzione nell'ambiente di esecuzione sicura, a livelli sopra il motore di accelerazione crittografica e sfruttando l'archiviazione isolata. Microsoft potrebbe essere in grado di fornire software di riferimento per tale implementazione TPM per l'uso da parte del fornitore. Questo è soggetto a ulteriori discussioni.
|
Crittografia |
|
Protezione dei dati |
|
Altri requisiti di sicurezza | I requisiti aggiuntivi seguenti sono richiesti da Windows nelle piattaforme SoC.
|
Requisiti del gestore di avvio del firmware
Il gestore di avvio del firmware deve supportare il comportamento di avvio predefinito definito nella sezione 3.3 della specifica. Inoltre, per il supporto multiavvio, sono necessarie variabili definite a livello globale e i requisiti del Boot Manager della sezione 3.1 della specifica.
Requisiti di associazione Arm UEFI
Il Binding UEFI per Arm include requisiti specifici per la piattaforma Arm necessari per garantire la conformità alle specifiche UEFI. Windows richiede tutti gli elementi nel collegamento ARM applicabile a ARMv7. Poiché Windows non supporta nulla precedente a ARMv7, i requisiti nell'associazione specifici per ARMv6k e versioni successive sono facoltativi.
L'associazione specifica, ad esempio, la modalità di configurazione dell'MMU e la modalità di mapping della memoria fisica. L'associazione specifica anche che le chiamate effettuate ai protocolli e ai servizi UEFI devono essere eseguite solo in ARM ISA, il che significa che il software in esecuzione in Thumb2 o Thumb dovrebbe tornare alla modalità Arm prima di chiamare le funzioni UEFI.
Requisiti di avvio del multiprocessore ARM UEFI
Microsoft ha sviluppato un protocollo per l'avvio di più core Arm in una piattaforma UEFI multiprocessore. Questo protocollo è richiesto da Windows sulle piattaforme Arm che non supportano il POWER State Coordination Interface (PSCI). Le piattaforme che supportano PSCI non devono usare questo protocollo. Per ulteriori informazioni su questo protocollo, vedere il documento Avvio multiprocessore sulle piattaforme basate su ARM UEFI sul sito Web ACPI Component Architecture (ACPICA).
Requisiti di configurazione della piattaforma
Il firmware è responsabile dell'inserimento dell'hardware di sistema in uno stato ben definito prima di passare al caricatore del sistema operativo. La tabella seguente definisce i requisiti di configurazione della piattaforma correlati.
Requisito | Descrizione |
---|---|
Percorso di avvio | Il firmware deve inizializzare la piattaforma fino al punto in cui Windows è in grado di accedere al dispositivo di avvio tramite UEFI e caricare il kernel. Qualsiasi dispositivo coinvolto nella gerarchia per leggere dal dispositivo di avvio deve essere sincronizzato e alimentato a un ritmo ragionevole, tenendo conto delle prestazioni e delle esigenze di potenza. Anche il core del processore di base deve essere clocked e alimentato a una velocità ragionevole, in modo che il sistema possa avviarsi in modo tempestivo senza svuotare la batteria. |
Risorse di sistema principali | Le risorse di sistema di base esposte al sistema operativo tramite le tabelle ACPI devono essere alimentate e sincronizzate. Le risorse di sistema principali includono controller di interrupt, timer e controller DMA che devono essere gestiti dal sistema operativo. Inoltre, gli interrupt devono essere mascherati dalla chiamata a ExitBootServices() fino a quando il driver di dispositivo associato nel sistema operativo non smaskera e riabilita gli interrupt sul dispositivo. Se gli interrupt vengono abilitati durante i servizi di avvio, si presuppone che il firmware li gestisca. |
Debug | Windows supporta il debug tramite l'host USB 3 (XHCI), l'host USB 2 (EHCI)1, IEEE 1394, le interfacce di funzione seriale e USB (oltre alle schede Ethernet PCI). Almeno uno di questi deve essere alimentato, sincronizzato e inizializzato dal firmware prima del passaggio al sistema operativo. A seconda dell'opzione fornita, deve avere una porta esposta a scopo di debug e il controller deve essere mappato alla memoria o essere connesso tramite un bus periferico dedicato (non condiviso). |
Altri requisiti di configurazione della piattaforma | È necessario attuare qualsiasi configurazione di multiplexing dei pin e dei pad nel firmware prima di passare il controllo al caricatore del sistema operativo. |
Requisiti di installazione
Windows richiede che la partizione del sistema operativo risieda in una soluzione di archiviazione partizionata GPT. L'archiviazione partizionata MBR può essere usata come archiviazione dei dati. Come definito nella specifica UEFI, una piattaforma UEFI richiede una partizione di sistema dedicata. Windows richiede questa partizione di sistema dedicata, detta partizione di sistema EFI (ESP).
Requisito dell'interfaccia HSTI (Hardware Security Test Interface)
La piattaforma deve implementare l'interfaccia di test della sicurezza hardware e la piattaforma è necessaria per condividere documentazione e strumenti come specificato nella specifica di testbilità della sicurezza hardware .