Persyaratan UEFI untuk edisi Windows pada platform SoC

Artikel ini menjelaskan persyaratan UEFI yang berlaku untuk Windows 10 untuk edisi desktop (Home, Pro, Enterprise, dan Education) dan Windows 10 Mobile. Untuk persyaratan tambahan yang hanya berlaku untuk Windows 10 Mobile, lihat Persyaratan UEFI untuk Windows 10 Mobile.

Ringkasan persyaratan

Tabel berikut mencantumkan semua persyaratan saat ini untuk kepatuhan UEFI seperti yang ditentukan dalam spesifikasi UEFI (Bagian 2.6 dari spesifikasi UEFI 2.3.1). Dalam tabel ini, istilah Persyaratan Windows Eksplisit mengidentifikasi protokol atau layanan apa pun yang langsung dipanggil oleh komponen Windows. Meskipun hanya layanan ini yang secara eksplisit digunakan oleh Windows, layanan dan protokol lain yang tercantum dapat secara implisit atau eksplisit diperlukan oleh implementasi firmware inti, driver perangkat EFI atau oleh rantai alat pengembangan dan penyebaran.

Microsoft menyambut umpan balik dan komentar dari pelaksana tentang serangkaian persyaratan ini. Untuk setiap persyaratan kepatuhan UEFI yang ditentukan untuk tidak diperlukan oleh OS atau firmware, kami berniat untuk bekerja melalui UEFI.org agar persyaratan kepatuhan ini dilonggarkan untuk kelas perangkat ini.

Untuk informasi selengkapnya tentang persyaratan tertentu, lihat bagian setelah tabel.

Persyaratan Bagian spesifikasi UEFI Catatan
Tabel sistem EFI 4.3 Persyaratan Windows eksplisit
Layanan boot EFI 6.0
Layanan peristiwa, timer, dan tugas 6.1
Layanan memori 6.2 Persyaratan Windows eksplisit'
Layanan handler protokol 6.3 Persyaratan Windows eksplisit
Layanan gambar 6.4 Persyaratan Windows eksplisit
Layanan lain-lain 6.5 Persyaratan Windows eksplisit
Layanan runtime EFI 7.0
Layanan waktu 7.3 Persyaratan Windows eksplisit
Layanan variabel 7.2 Persyaratan Windows eksplisit
Layanan lain-lain 7.5 Persyaratan Windows eksplisit
Protokol UEFI yang diperlukan
Protokol gambar yang dimuat EFI 8.1
Protokol jalur perangkat gambar yang dimuat EFI 8.2
Protokol jalur perangkat EFI 9.2 Persyaratan Windows eksplisit
Protokol utilitas jalur perangkat EFI 9,5
Protokol dekompresi EFI 18.5
Protokol interpreter EBC 20.11
Protokol UEFI yang diperlukan secara kondisional
Protokol input teks sederhana EFI 11,3 Persyaratan Windows eksplisit
Protokol EX input teks sederhana EFI 11.2
Protokol output teks sederhana EFI 11,4
Protokol output grafis EFI 11.9 Persyaratan Windows eksplisit
Protokol yang ditemukan EFI EDID 11.9.1
Protokol aktif EFI EDID 11.9.1
Protokol IO blok EFI 12.8 Persyaratan Windows eksplisit
Protokol IO disk EFI 12.7
Protokol sistem file sederhana EFI 12.4
Protokol kolae Unicode EFI 12.10
Protokol jaringan sederhana EFI 21.1
Protokol kode dasar EFI PXE 21.3
Protokol layanan integritas boot EFI 21.5
Protokol IO serial EFI 11.8
Pengikatan Arm UEFI 2.3.5 Persyaratan Windows eksplisit
Persyaratan keamanan
Boot aman 27.0 Persyaratan Windows eksplisit
Persyaratan manajer boot 3.1, 3.3 Persyaratan Windows eksplisit

Persyaratan tabel sistem EFI

Tabel Sistem EFI harus sesuai dengan definisi standar pada tingkat revisi yang diterapkan. Tabel Konfigurasi yang ditujukkan oleh Tabel Sistem EFI harus menyertakan dua GUID dan pointer terkait yang dijelaskan dalam tabel berikut.

GUID Deskripsi
EFI_ACPI_Table GUID GUID ini harus menunjuk ke Acpi Root System Description Pointer (RSDP) untuk platform.
SMBIOS_Table GUID GUID ini harus menunjuk ke Struktur Titik Masuk SMBIOS.

Windows memerlukan Spesifikasi SMBIOS, pada tingkat revisi 2.4 atau lebih tinggi. Bagian 3.2, "Struktur dan Data yang Diperlukan", dan 4, "Pedoman Kesuaian", diperlukan. Tes kompatibilitas Windows SMBIOS tersedia.

Persyaratan layanan boot EFI

Tabel berikut mencantumkan persyaratan layanan boot EFI untuk Windows.

Layanan boot EFI Persyaratan
Layanan memori Windows memerlukan semua layanan memori.
Layanan handler protokol Windows memerlukan layanan penangan protokol berikut:

OpenProtocol()
CloseProtocol()
LocateDevicePath()
LocateHandle()
Layanan gambar Windows memerlukan layanan gambar berikut:

ExitBootServices()
Layanan boot lain-lain Windows memerlukan layanan boot lain-lain berikut:

Stall()

Catatan: Implementasi Stall() diperlukan untuk memiliki kesalahan deterministik (berulang) sehingga koreksi kesalahan atau pembatalan dapat dilakukan dengan andal.

Persyaratan layanan runtime EFI

Tabel berikut mencantumkan persyaratan layanan runtime EFI untuk Windows.

Layanan runtime EFI Persyaratan
Layanan waktu Windows memerlukan layanan waktu berikut:

GetTime()
SetTime()

Catatan: Layanan waktu hanya akan dipanggil selama boot (sebelum ExitBootServices()) untuk mengakses perangkat keras platform time-of-day.
Layanan variabel Semua Layanan Variabel UEFI diperlukan untuk mengelola beberapa perangkat boot dan variabel keamanan pada kelas target sistem.
Layanan runtime lain-lain Windows memerlukan layanan runtime lain-lain berikut:

ResetSystem()

Catatan: Implementasi ResetSystem() harus mendukung opsi reset dan matikan.

Persyaratan protokol

Tabel berikut menjelaskan protokol UEFI yang diperlukan oleh Windows untuk menyelesaikan fungsi tertentu selama boot.

Protokol Persyaratan
Protokol output grafis Windows memerlukan Graphics Output Protocol (GOP). Persyaratan buffer bingkai tertentu adalah:

Untuk tampilan terintegrasi, HorizontalResolution dan VerticalResoluton harus menjadi resolusi asli panel.

Untuk tampilan Eksternal, HorizontalResolution dan VerticalResoluton harus berupa resolusi asli tampilan, atau, jika ini tidak didukung, maka nilai tertinggi yang didukung oleh adaptor video dan tampilan yang tersambung.

PixelsPerScanLine harus sama dengan HorizontalResolution.

PixelFormat harus PixelBlueGreenRedReserved8BitPerColor. Buffer bingkai fisik diperlukan; PixelBltOnly tidak didukung.

Ketika eksekusi diserahkan ke aplikasi boot UEFI, manajer boot firmware dan firmware tidak boleh menggunakan buffer bingkai untuk tujuan apa pun. Buffer bingkai harus terus dipindai setelah layanan boot keluar.
Output tampilan alternatif Firmware UEFI harus mendukung booting menggunakan konektor tampilan apa pun yang didukung oleh perangkat keras. Jika panel internal tersambung dan terlihat, panel internal harus digunakan. Semua output yang memiliki tampilan yang terhubung secara fisik harus menampilkan layar boot. Untuk tampilan yang terhubung, firmware UEFI harus:

Inisialisasi output dengan mode asli tampilan, jika resolusi asli dapat ditentukan.

Jika mode asli tidak memungkinkan, mode tersebut harus diinisialisasi ke mode yang kompatibel tertinggi.

Jika kemampuan tampilan tidak dapat ditentukan, maka tampilan yang terhubung harus diinisialisasi dalam mode yang diketahui kompatibel dengan monitor sebanyak mungkin (biasanya 640x480 atau 1024x768, pada 60 Hz).
Input pada waktu boot Protokol Input Teks Sederhana EFI diperlukan untuk membuat pilihan boot atau pilihan menu lainnya pada sistem yang memiliki keyboard bawaan atau keyboard terpasang. Untuk sistem tanpa keyboard, tiga tombol disarankan di lingkungan boot:

Tombol Mulai
Tombol Volume Naik
Tombol Volume Turun

Penekanan tombol harus dilaporkan melalui Protokol Input Teks Sederhana EFI dengan memetakannya ke tombol keyboard berikut:

Kunci Windows
Tombol Panah Atas
Tombol Panah Bawah
Boot penyimpanan lokal Windows memerlukan dukungan Protokol I/O Blok dan Protokol Jalur Perangkat untuk solusi penyimpanan yang berisi partisi sistem EFI dan partisi OS Windows. Untuk booting dari penyimpanan flash yang memerlukan wear-leveling atau manajemen flash lainnya, ini harus diimplementasikan dalam firmware (bukan dalam aplikasi UEFI).

Persyaratan keamanan

Windows memiliki persyaratan keamanan di area Boot Aman, Boot Terukur, Kriptografi, dan Perlindungan Data. Persyaratan ini dirinci dalam tabel berikut. Selain itu, untuk area di mana perangkat keras SoC mencegah kepatuhan terhadap standar yang ada (TPM, RTC, dll.), persyaratan tambahan sedang dikembangkan. Ini dijelaskan di akhir tabel.

Area Persyaratan
Umum
  • Persyaratan 1: WAJIB. Platform harus mematuhi semua persyaratan yang ditentukan di bagian ini.

  • Persyaratan 2: WAJIB. Platform harus UEFI Kelas Tiga tanpa Modul Dukungan Kompatibilitas yang diinstal atau dapat diinstal. Emulasi BIOS dan boot PC/AT warisan harus dinonaktifkan.

Boot aman UEFI
  • Persyaratan 3: WAJIB. Boot Aman seperti yang didefinisikan dalam UEFI v2.3.1 bagian 27 harus diaktifkan dan dengan database tanda tangan (EFI_IMAGE_SECURITY_DATABASE) yang diperlukan untuk mem-boot komputer yang telah disediakan dengan aman. Konten awal database tanda tangan ditentukan oleh OEM, berdasarkan driver UEFI pihak ke-3 yang diperlukan, kebutuhan pemulihan, dan Pemuat Boot OS yang diinstal pada mesin, tetapi tanda tangan EFI_CERT_X509 yang disediakan Microsoft harus disertakan. Tidak ada tanda tangan tambahan yang akan ada.

  • Persyaratan 4: WAJIB. Kehadiran database tanda tangan UEFI "terlarang" (EFI_IMAGE_SECURITY_DATABASE1) diperlukan.

  • Persyaratan 5: WAJIB. KEK UEFI yang disediakan Microsoft harus disertakan dalam database KEK UEFI. Tidak ada KEK tambahan yang akan ada. Microsoft menyediakan KEK dalam bentuk tanda tangan EFI_CERT_X509.

  • Persyaratan 6: WAJIB. Kuncipub PK harus ada dan disimpan dalam flash firmware. Catatan: Karenaprivat PK (mitra kunci privat kePK pub) mengontrol kebijakan Boot Aman pada semua perangkat yang disediakan denganpub PK, perlindungan dan penggunaannya harus dijaga ketat.

  • Persyaratan 7: WAJIB. Database tanda tangan awal harus disimpan dalam flash firmware dan hanya dapat diperbarui dengan pembaruan firmware yang ditandatangani OEM atau melalui penulisan variabel terautentikasi UEFI.

  • Persyaratan 8: WAJIB. Gambar di jalur boot yang gagal verifikasi tanda tangan tidak boleh dijalankan, dan alasan kegagalan harus ditambahkan ke EFI_IMAGE_EXECUTION_TABLE. Selanjutnya, pendekatan yang direkomendasikan dalam situasi ini adalah bahwa manajer boot UEFI memulai pemulihan sesuai dengan strategi khusus OEM.

  • Persyaratan 9: WAJIB. Penimpaan pengguna yang ada secara fisik tidak boleh diizinkan untuk gambar UEFI yang gagal verifikasi tanda tangan.

  • Persyaratan 10: OPSIONAL. OEM dapat menerapkan kemampuan bagi pengguna yang hadir secara fisik untuk menonaktifkan Boot Aman baik dengan akses keprivat PK atau dengan Kehadiran Fisik melalui pengaturan firmware. Akses ke penyiapan firmware dapat dilindungi dengan cara khusus platform (kata sandi administrator, kartu pintar, konfigurasi statis, dll.)

  • Persyaratan 11: WAJIB jika persyaratan 10 diimplementasikan. Jika Boot Aman dimatikan, semua variabel UEFI yang ada tidak akan dapat diakses.

  • Persyaratan 12: OPSIONAL. OEM dapat menerapkan kemampuan bagi pengguna yang hadir secara fisik untuk memilih antara dua mode Boot Aman dalam penyiapan firmware: "Kustom" dan "Standar". Mode Kustom memungkinkan lebih banyak fleksibilitas seperti yang ditentukan dalam hal berikut.

  • Persyaratan 13: WAJIB jika persyaratan 12 diimplementasikan. Dimungkinkan untuk mengaktifkan kembali Boot Aman yang dinonaktifkan dalam Mode Kustom dengan mengatur PK khusus pemilik. Administrasi harus dilanjutkan sebagaimana didefinisikan dalam bagian 27.5 dari spesifikasi UEFI v2.3.1: Pertukaran Kunci Firmware/OS. Dalam Mode Kustom, pemilik perangkat dapat mengatur pilihan tanda tangan mereka dalam database tanda tangan.

  • Persyaratan 14: WAJIB jika persyaratan 12 diimplementasikan. Penyiapan firmware akan menunjukkan apakah Boot Aman diaktifkan, dan jika dioperasikan dalam Mode Standar atau Kustom. Penyiapan firmware harus menyediakan opsi untuk kembali dari Mode Kustom ke Standar.

  • Persyaratan 15: WAJIB. Jika pengaturan firmware diatur ulang ke default pabrik, semua variabel yang dilindungi set kustom harus dihapus danpub PK asli harus dibuat ulang bersama dengan database tanda tangan asli yang disediakan produsen.

  • Persyaratan 16: WAJIB. Penandatanganan driver akan menggunakan opsi Authenticode (WIN_CERT_TYPE_PKCS_SIGNED_DATA).

  • Persyaratan 17: WAJIB. Dukungan untuk EFI_IMAGE_EXECUTION_INFO_TABLE (yaitu, pembuatan dan penyimpanan informasi tentang gambar dimulai atau tidak dimulai selama boot).

  • Persyaratan 18: WAJIB. Mendukung GetVariable() untuk EFI_IMAGE_SECURITY_DATABASE (database tanda tangan resmi dan terlarang).

  • Persyaratan 19: WAJIB. Mendukung SetVariable() untuk EFI_IMAGE_SECURITY_DATABASE (database tanda tangan resmi dan terlarang), menggunakan KEK Microsoft untuk autentikasi.

  • Persyaratan 20: WAJIB. EFI_HASH_SERVICE_BINDING_PROTOCOL: Dukungan layanan: CreateChild(), DestroyChild().

  • Persyaratan 21: WAJIB. EFI_HASH_PROTOCOL. Dukungan layanan: Hash(). Dukungan untuk algoritma hash SHA_1 dan SHA-256. Harus mendukung melewati Pesan setidaknya 10 Mbyte panjang.

Boot terukur UEFI

Persyaratan berikut tidak menyiratkan perlunya implementasi TCG TPM; namun mereka menyiratkan kebutuhan akan fungsionalitas yang setara untuk area yang terkena dampak.

Dukungan platform dapat diberikan oleh implementasi firmware dari eksekusi TPM di lingkungan eksekusi yang aman, lapisan di atas mesin akselerasi kriptografi dan memanfaatkan penyimpanan yang terisolasi. Microsoft mungkin dapat menyediakan perangkat lunak referensi untuk implementasi TPM tersebut untuk digunakan oleh vendor. Hal ini dapat dibahas lebih lanjut.

  • Persyaratan 22: WAJIB. Platform ini harus sesuai dengan protokol EFI yang ditentukan dalam Protokol EFI Lingkungan Eksekusi Tepercaya UEFI.

  • Persyaratan 23: WAJIB. Platform ini harus mematuhi Spesifikasi Platform TCG EFI dengan penambahan berikut:

    • Pada platform yang mendukung antarmuka yang ditentukan dalam Protokol TrEE EFI, hashpub PK harus diperluas ke TPM PCR[03] sebagai peristiwa EV_EFI_VARIABLE_CONFIG.

    • Hash konten database tanda tangan resmi (lihat bagian 27.8 dari daftar spesifikasi UEFI v2.3.1) harus diperpanjang dalam boot yang diukur sebagai peristiwa EV_EFI_VARIABLE_CONFIG. Operasi perpanjangan harus ke TPM PCR[03].

    • Klien UEFI dapat membaca dan mengurai daftar sertifikat menggunakan variabel EFI_IMAGE_SECURITY_DATABASE dan memvalidasi hash terhadap nilai yang diperluas.

    • TCG_PCR_EVENT nilai hash adalah SHA-256, bukan SHA-1.

  • Persyaratan 24: WAJIB. Platform harus mengimplementasikan MemoryOverwriteRequestControl yang ditentukan dalam Spesifikasi Mitigasi Serangan Reset Platform TCG.

Kriptografi
  • Persyaratan 25: WAJIB. Platform harus menyediakan EFI_HASH_PROTOCOL (UEFI v2.3.1 Bagian 27.4) untuk offload operasi hash kriptografi. SHA-256 harus didukung.

  • Persyaratan 26: WAJIB. Platform ini akan mendukung EFI_RNG_PROTOCOL yang ditentukan Microsoft untuk pembacaan entropi pra-OS.

Perlindungan data
  • Persyaratan 27: WAJIB. Platform harus mendukung variabel EFI dengan kombinasi atribut variabel UEFI berikut yang ditetapkan:

    • EFI_VARIABLE_BOOTSERVICE_ACCESS

    • EFI_VARIABLE_NON_VOLATILE

    • EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS

Persyaratan keamanan lainnya

Persyaratan tambahan berikut diperlukan oleh Windows pada platform SoC.

  • Microsoft telah menentukan protokol untuk mengumpulkan entropi dari platform UEFI. Meskipun bukan persyaratan UEFI, protokol ini diperlukan oleh Windows pada platform SoC. Untuk informasi selengkapnya tentang protokol ini, lihat protokol pengumpulan entropi UEFI.

  • Updates Database Tanda Tangan UEFI. Mekanisme baru untuk memperbarui Variabel Terautentikasi telah diadopsi di bagian 27 UEFI 2.3.1. Mekanisme ini diperlukan oleh Windows.

  • Lingkungan Eksekusi Tepercaya. Microsoft telah mengembangkan protokol EFI untuk berinteraksi dengan Trusted Execution Environment (TrEE), yang mirip dengan subset Trusted Computing Group (TCG) Trusted Platform Module (TPM). Protokol EFI memanfaatkan ke tingkat besar, "Protokol EFI TCG," Versi 1.2 Revisi 1.00, 9 Juni 2006, oleh Grup Komputasi Tepercaya.

    Untuk detailnya, lihat Protokol EFI Lingkungan Eksekusi Tepercaya UEFI.

Persyaratan manajer boot firmware

Manajer boot firmware harus mendukung perilaku boot default yang ditentukan dalam bagian 3.3 dari spesifikasi. Selain itu, untuk dukungan variabel multi-boot, yang ditentukan secara global dan persyaratan Boot Manager dari bagian 3.1 spesifikasi diperlukan.

Persyaratan pengikatan Arm UEFI

Pengikatan Arm UEFI mencakup persyaratan khusus untuk platform Arm yang diperlukan agar sesuai dengan spesifikasi UEFI. Windows memerlukan semua yang ada di pengikatan Arm yang berlaku untuk ARMv7. Karena Windows tidak mendukung apa pun sebelumnya ke ARMv7, persyaratan dalam pengikatan yang khusus untuk ARMv6k dan di bawah ini bersifat opsional.

Pengikatan menentukan, misalnya, bagaimana MMU harus dikonfigurasi, dan bagaimana memori fisik harus dipetakan. Pengikatan juga menentukan bahwa panggilan yang dilakukan ke protokol dan layanan UEFI harus dilakukan hanya di Arm ISA, yang berarti bahwa perangkat lunak yang berjalan di Thumb2 atau Thumb perlu beralih kembali ke mode Arm sebelum memanggil fungsi UEFI.

Persyaratan startup multiprosesor UEFI Arm

Microsoft telah mengembangkan protokol untuk memulai beberapa inti Arm pada platform UEFI multi-prosesor. Protokol ini diperlukan oleh Windows pada platform Arm yang tidak mendukung Power State Coordination Interface (PSCI). Platform yang mendukung PSCI tidak boleh menggunakan protokol ini. Untuk informasi selengkapnya tentang protokol ini, lihat mulai multiprosesor pada dokumen platform berbasis Arm UEFI di situs Web Acpi Component Architecture (ACPICA).

Persyaratan penyiapan platform

Firmware bertanggung jawab untuk menempatkan perangkat keras sistem ke dalam keadaan yang terdefinisi dengan baik sebelum menyerahkan ke pemuat OS. Tabel berikut menentukan persyaratan penyiapan platform terkait.

Persyaratan Deskripsi
Jalur boot Firmware harus menginisialisasi platform ke titik di mana Windows dapat mengakses perangkat boot melalui UEFI dan memuat kernel. Perangkat apa pun yang terlibat dalam hierarki untuk dibaca dari perangkat boot harus diberi jam dan didukung pada tingkat yang wajar, mengingat pertimbangan performa dan daya. Inti prosesor dasar itu sendiri juga harus dijalur dan ditenagai pada tingkat yang wajar, sehingga sistem dapat boot secara tepat waktu tanpa menguras baterai.
Sumber daya sistem inti Sumber Daya Sistem Inti yang terekspos ke OS melalui tabel ACPI harus dinyalakan dan diberi jam. Sumber Daya Sistem Inti termasuk Pengontrol interupsi, Timer, dan pengontrol DMA yang harus dikelola oleh OS. Selain itu, gangguan harus ditutupi oleh panggilan ke ExitBootServices() hingga driver perangkat terkait di OS membuka kemasan dan mengaktifkan kembali gangguan pada perangkat. Jika gangguan diaktifkan selama layanan boot, diasumsikan bahwa firmware mengelolanya.
Awakutu Windows mendukung debugging melalui USB 3 Host (XHCI), USB 2 Host (EHCI)1, IEEE 1394, antarmuka serial dan Usb Function (serta adaptor ethernet PCI). Setidaknya salah satu dari ini harus didukung, diberi jam, dan diinisialisasi oleh firmware sebelum handoff OS. Opsi apa pun yang disediakan, itu harus memiliki port yang diekspos untuk tujuan debugging, dan pengontrol harus dipetakan memori, atau terhubung melalui bus periferal khusus (non-bersama).
Persyaratan penyiapan platform lainnya Setiap konfigurasi pin-multiplexing dan pad harus diselesaikan di firmware sebelum menyerahkan kontrol ke pemuat OS.

Persyaratan penginstalan

Windows memerlukan partisi OS untuk berada pada solusi penyimpanan yang dipartisi GPT. Penyimpanan yang dipartisi MBR dapat digunakan sebagai penyimpanan data. Seperti yang didefinisikan dalam spesifikasi UEFI, platform UEFI memerlukan partisi sistem khusus. Windows memerlukan partisi sistem khusus ini, yang disebut sebagai partisi sistem EFI (ESP).

Persyaratan Hardware Security Test Interface (HSTI)

Platform harus mengimplementasikan Antarmuka Uji Keamanan Perangkat Keras, dan platform diperlukan untuk berbagi dokumentasi dan alat seperti yang ditentukan dalam Spesifikasi Uji Coba Keamanan Perangkat Keras.

Persyaratan UEFI minimum untuk Windows pada platform SoC

Persyaratan UEFI untuk Windows 10 Mobile

Persyaratan UEFI untuk dukungan usb flashing