Bagikan melalui


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

Ringkasan persyaratan

Tabel berikut mencantumkan semua persyaratan saat ini untuk kepatuhan UEFI seperti yang didefinisikan 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 secara langsung dipanggil oleh komponen Windows. Meskipun hanya layanan ini yang secara eksplisit digunakan oleh Windows, layanan dan protokol lain yang terdaftar mungkin 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 persyaratan kepatuhan UEFI apa pun 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.

Syarat Bagian spesifikasi UEFI Catatan
tabel sistem EFI 4.3 Persyaratan Windows eksplisit
layanan boot EFI 6.0
Layanan peristiwa, pengatur waktu, dan tugas 6.1
Layanan memori 6.2 Persyaratan Windows eksplisit'
Layanan penangan 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 oleh 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 penerjemah EBC 20.11
protokol UEFI yang diperlukan secara bersyarat
Protokol input teks sederhana EFI 11.3 Persyaratan Windows eksplisit
Protokol input teks sederhana EFI EX 11.2
Protokol output teks sederhana EFI 11.4
Protokol Keluar Grafis EFI 11.9 Persyaratan Windows eksplisit
Protokol yang ditemukan EFI EDID 11.9.1
Protokol aktif EFI EDID 11.9.1
Protokol I/O blok EFI 12.8 Persyaratan Windows eksplisit
Protokol IO disk EFI 12.7
Protokol sistem berkas sederhana EFI 12.4
Protokol Kolasi 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
Pemetaan Arm UEFI 2.3.5 Persyaratan Windows eksplisit
Persyaratan keamanan
Pemulaian aman 27.0 Persyaratan Windows eksplisit
Persyaratan pengelola 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
Tabel EFI_ACPI_GUID GUID ini harus menunjuk ke Acpi Root System Description Pointer (RSDP) untuk platform.
SMBIOS_Tabel GUID GUID ini harus menunjuk ke Struktur Titik Masuk SMBIOS.

Windows memerlukan Spesifikasi SMBIOS, pada tingkat revisi 2.4 atau yang 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 Syarat
Layanan memori Windows memerlukan semua layanan memori.
Layanan pengendali protokol Windows memerlukan layanan handler 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 Syarat
Layanan waktu Windows memerlukan layanan waktu berikut:

GetTime()
SetTime()

Catatan: Layanan waktu hanya akan dipanggil selama proses booting (sebelum ExitBootServices()) untuk mengakses perangkat keras pengatur waktu platform.
Layanan variabel Semua UEFI Variable Services 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 shutdown.

Persyaratan protokol

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

Protokol Syarat
Protokol keluaran grafis Windows memerlukan Protokol Output Grafis (GOP). Persyaratan buffer bingkai tertentu adalah:

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

Untuk tampilan Eksternal, HorizontalResolution dan VerticalResolution harus menjadi resolusi asli tampilan tersebut atau, jika ini tidak didukung, maka gunakan nilai tertinggi yang didukung baik oleh adaptor video maupun tampilan yang terhubung.

PixelsPerScanLine harus sama dengan HorizontalResolution.

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

Ketika pelaksanaan diserahkan ke aplikasi boot UEFI, manajer boot firmware serta firmware tidak diperbolehkan menggunakan penyangga bingkai untuk tujuan apa pun. Buffer frame harus terus dipindai setelah keluar dari layanan boot.
Tampilan output 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 dimungkinkan, mode tersebut harus diinisialisasi ke mode tertinggi yang kompatibel.

Jika kemampuan tampilan tidak dapat ditentukan, tampilan yang terhubung harus diinisialisasi dalam mode yang diketahui kompatibel dengan monitor sebanyak mungkin (biasanya 640x480 atau 1024x768, pada 60 Hz).
Masukan saat booting 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, masing-masing:

Kunci Windows
Tombol Panah Atas
Tombol Panah Bawah
Pengaktifan 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 melakukan booting dari penyimpanan flash yang memerlukan perataan keausan atau manajemen flash lainnya, hal 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.

Daerah Syarat
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.

UEFI Secure Boot
  • Persyaratan 3: WAJIB. Boot Aman seperti yang didefinisikan dalam UEFI v2.3.1 bagian 27 harus dikirimkan dalam keadaan diaktifkan, dan memiliki database tanda tangan (EFI_IMAGE_SECURITY_DATABASE) yang diperlukan untuk mem-boot komputer yang sudah dipersiapkan sebelumnya. Konten awal database tanda tangan ditentukan oleh OEM, berdasarkan driver UEFI pihak ke-3 yang diperlukan, kebutuhan pemulihan, dan OS Boot Loader yang diinstal pada komputer, tetapi tanda tangan EFI_CERT_X509 yang disediakan Microsoft harus disertakan. Tidak ada tanda tangan tambahan yang diperbolehkan.

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

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

  • Persyaratan 6: WAJIB. Kunci pubPK harus ada dan disimpan dalam flash firmware. Catatan: Karena PKpriv (pasangan kunci privat untuk PKpub) mengontrol kebijakan Secure Boot pada semua perangkat yang dilengkapi dengan PKpub, perlindungan dan penggunaannya harus dijaga dengan ketat.

  • Persyaratan 7: WAJIB. Database tanda tangan awal harus disimpan dalam flash firmware dan dapat diperbarui hanya 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 akan 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. Penggantian pengguna yang hadir secara fisik tidak boleh diizinkan untuk gambar UEFI yang gagal verifikasi tanda tangan digital.

  • Persyaratan 10: OPSIONAL. OEM dapat memungkinkan pengguna yang hadir secara fisik untuk menonaktifkan Secure Boot baik dengan akses ke PKpriv atau dengan kehadiran fisik melalui pengaturan firmware. Akses ke pengaturan firmware dapat dilindungi oleh sarana khusus platform (kata sandi administrator, kartu pintar, konfigurasi statis, dll.)

  • Persyaratan 11: WAJIB jika persyaratan 10 diimplementasikan. Jika Boot Aman dimatikan, maka 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. Anda dapat mengaktifkan kembali Secure Boot yang dinonaktifkan dalam Mode Kustom dengan mengatur PK. Administrasi harus dilanjutkan sebagaimana didefinisikan dalam bagian 27.5 dari spesifikasi UEFI v2.3.1: Firmware/OS Key Exchange. 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 akan memberikan 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 akan dihapus dan PK aslipub akan dipulihkan bersama dengan database tanda tangan bawaan pabrik.

  • Persyaratan 16: WAJIB. Penandatanganan driver harus 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 citra yang dimulai maupun yang tidak dimulai pada saat 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 Microsoft KEK 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 pengiriman pesan dengan panjang setidaknya 10 MB.

Boot terukur UEFI

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

Dukungan platform dapat diberikan oleh implementasi firmware dari TPM yang dijalankan 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. Ini tunduk pada diskusi lebih lanjut.

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

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

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

    • Ringkasan konten dari database tanda tangan resmi (lihat bagian 27.8 dari spesifikasi UEFI v2.3.1) harus diperluas dalam boot terukur sebagai peristiwa EV_EFI_VARIABLE_CONFIG. Operasi perpanjangan harus dilakukan ke TPM PCR[03].

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

    • Nilai hash dari TCG_PCR_EVENT haruslah 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 ini harus menyediakan EFI_HASH_PROTOCOL (UEFI v2.3.1 Bagian 27.4) untuk pemindahan 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_AKSES_TULIS_TEROTENTIKASI

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 .

  • Pembaruan 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 secara signifikan "Protokol EFI TCG," Versi 1.2 Revisi 1.00, 9 Juni 2006, oleh Kelompok 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 spesifikasi. Selain itu, dukungan multi-boot, variabel yang ditentukan secara global, serta persyaratan Boot Manager dari bagian 3.1 spesifikasi diperlukan.

Persyaratan pengikatan UEFI Arm

Pengikatan Arm UEFI mencakup persyaratan khusus untuk platform Arm yang diperlukan agar sesuai dengan spesifikasi UEFI. Windows memerlukan semua yang ada dalam pengikatan Arm yang berlaku untuk ARMv7. Karena Windows tidak mendukung apapun sebelum ARMv7, persyaratan dalam binding 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 core 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 dokumen startup multiprosesor pada platform berbasis Arm UEFI di situs web Arsitektur Komponen ACPI (ACPICA).

Persyaratan penyiapan platform

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

Syarat 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 membaca dari perangkat boot harus dijalankan dengan kecepatan dan diberi daya pada tingkat yang wajar, dengan mempertimbangkan performa dan konsumsi daya. Inti prosesor dasar itu sendiri juga harus diberi jam dan didukung pada laju yang wajar, sehingga sistem dapat melakukan booting tepat waktu tanpa menguras baterai.
Sumber daya sistem inti Sumber Daya Sistem Inti yang terekspos ke OS melalui tabel ACPI harus dinyalakan dan disinkronkan waktunya. Sumber Daya Sistem Inti mencakup Pengontrol Interupsi, Timer, dan pengontrol DMA yang harus dikelola oleh OS. Selain itu, interupsi harus dihentikan sementara oleh panggilan ke ExitBootServices() hingga driver perangkat terkait di OS membuka kendali dan mengaktifkan kembali interupsi pada perangkat. Jika interupsi diaktifkan selama layanan boot, diasumsikan bahwa firmware mengelolanya.
Pemecahan Masalah 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 diaktifkan, diberi pengatur waktu, dan diinisialisasi oleh firmware sebelum penyerahan ke OS. Opsi mana pun yang disediakan, harus memiliki port terbuka untuk tujuan debugging, dan pengontrol harus terpeta memori, atau terhubung melalui bus periferal khusus (tidak berbagi).
Persyaratan penyiapan platform lainnya Setiap pengaturan pin-multiplexing dan konfigurasi pad harus diselesaikan di dalam firmware sebelum menyerahkan kontrol ke pemuat sistem operasi.

Persyaratan penginstalan

Windows memerlukan partisi OS untuk berada di 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 menerapkan Antarmuka Uji Keamanan Perangkat Keras, dan platform diperlukan untuk berbagi dokumentasi dan alat seperti yang ditentukan dalam Spesifikasi Uji Coba Keamanan Perangkat Keras .

persyaratan Minimum UEFI untuk Windows di platform SoC

persyaratan UEFI untuk dukungan usb flashing