SoC 플랫폼의 Windows 버전에 대한 UEFI 요구 사항
이 문서에서는 데스크톱 버전(Home, Pro, Enterprise 및 Education) 및 Windows 10 Mobile 대한 Windows 10 적용되는 UEFI 요구 사항을 설명합니다. Windows 10 Mobile만 적용되는 추가 요구 사항은 Windows 10 Mobile 대한 UEFI 요구 사항을 참조하세요.
요구 사항 요약
다음 표에서는 UEFI 사양(UEFI 2.3.1 사양의 섹션 2.6)에 정의된 대로 UEFI 규정 준수에 대한 모든 현재 요구 사항을 나열합니다. 이 표에서 명시적 Windows 요구 사항 이라는 용어는 Windows 구성 요소에서 직접 호출하는 모든 프로토콜 또는 서비스를 식별합니다. 이러한 서비스만 Windows에서 명시적으로 사용되지만 다른 나열된 서비스 및 프로토콜은 핵심 펌웨어 구현, EFI 디바이스 드라이버 또는 개발 및 배포 도구 체인에서 암시적 또는 명시적으로 필요할 수 있습니다.
Microsoft는 이 요구 사항 집합에 대한 구현자의 피드백과 의견을 환영합니다. OS 또는 펌웨어에서 필요하지 않다고 판단되는 UEFI 규정 준수 요구 사항의 경우 이 디바이스 클래스에 대해 이러한 규정 준수 요구 사항을 완화하도록 UEFI.org 통해 작업하는 것이 좋습니다.
특정 요구 사항에 대한 자세한 내용은 테이블 뒤의 섹션을 참조하세요.
요구 사항 | UEFI 사양 섹션 | 참고 |
---|---|---|
EFI 시스템 테이블 | 4.3 | 명시적 Windows 요구 사항 |
EFI 부팅 서비스 | 6.0 | |
이벤트, 타이머 및 작업 서비스 | 6.1 | |
메모리 서비스 | 6.2 | 명시적 Windows 요구 사항' |
프로토콜 처리기 서비스 | 6.3 | 명시적 Windows 요구 사항 |
이미지 서비스 | 6.4 | 명시적 Windows 요구 사항 |
기타 서비스 | 6.5 | 명시적 Windows 요구 사항 |
EFI 런타임 서비스 | 7.0 | |
시간 서비스 | 7.3 | 명시적 Windows 요구 사항 |
변수 서비스 | 7.2 | 명시적 Windows 요구 사항 |
기타 서비스 | 7.5 | 명시적 Windows 요구 사항 |
필수 UEFI 프로토콜 | ||
EFI 로드된 이미지 프로토콜 | 8.1 | |
EFI 로드된 이미지 디바이스 경로 프로토콜 | 8.2 | |
EFI 디바이스 경로 프로토콜 | 9.2 | 명시적 Windows 요구 사항 |
EFI 디바이스 경로 유틸리티 프로토콜 | 9.5 | |
EFI 압축 해제 프로토콜 | 18.5 | |
EBC 인터프리터 프로토콜 | 20.11 | |
조건부로 필요한 UEFI 프로토콜 | ||
EFI 단순 텍스트 입력 프로토콜 | 11.3 | 명시적 Windows 요구 사항 |
EFI 단순 텍스트 입력 EX 프로토콜 | 11.2 | |
EFI 단순 텍스트 출력 프로토콜 | 11.4 | |
EFI 그래픽 출력 프로토콜 | 11.9 | 명시적 Windows 요구 사항 |
EFI EDID 검색 프로토콜 | 11.9.1 | |
EFI EDID 활성 프로토콜 | 11.9.1 | |
EFI 블록 IO 프로토콜 | 12.8 | 명시적 Windows 요구 사항 |
EFI 디스크 IO 프로토콜 | 12.7 | |
EFI 단순 파일 시스템 프로토콜 | 12.4 | |
EFI 유니코드 데이터 정렬 프로토콜 | 12.10 | |
EFI 단순 네트워크 프로토콜 | 21.1 | |
EFI PXE 기본 코드 프로토콜 | 21.3 | |
EFI 부팅 무결성 서비스 프로토콜 | 21.5 | |
EFI 직렬 IO 프로토콜 | 11.8 | |
UEFI Arm 바인딩 | 2.3.5 | 명시적 Windows 요구 사항 |
보안 요구 사항 | ||
보안 부팅 | 27.0 | 명시적 Windows 요구 사항 |
부팅 관리자 요구 사항 | 3.1, 3.3 | 명시적 Windows 요구 사항 |
EFI 시스템 테이블 요구 사항
EFI 시스템 테이블은 구현된 수정 수준에서 표준 정의를 준수해야 합니다. EFI 시스템 테이블에서 가리키는 구성 테이블에는 다음 표에 설명된 두 GUID와 관련 포인터가 포함되어야 합니다.
GUID | 설명 |
---|---|
EFI_ACPI_Table GUID | 이 GUID는 플랫폼에 대한 ACPI RSDP(루트 시스템 설명 포인터)를 가리킵니다. |
SMBIOS_Table GUID | 이 GUID는 SMBIOS 진입점 구조를 가리킵니다. Windows에는 2.4 이상 수정 버전 수준에서 SMBIOS 사양이 필요합니다. 섹션 3.2, "필수 구조 및 데이터" 및 4, "규칙 지침"이 필요합니다. Windows SMBIOS 호환성 테스트를 사용할 수 있습니다. |
EFI 부팅 서비스 요구 사항
다음 표에서는 Windows에 대한 EFI 부팅 서비스 요구 사항을 나열합니다.
EFI 부팅 서비스 | 요구 사항 |
---|---|
메모리 서비스 | Windows에는 모든 메모리 서비스가 필요합니다. |
프로토콜 처리기 서비스 | Windows에는 다음 프로토콜 처리기 서비스가 필요합니다. OpenProtocol() CloseProtocol() LocateDevicePath() LocateHandle() |
이미지 서비스 | Windows에는 다음 이미지 서비스가 필요합니다. ExitBootServices() |
기타 부팅 서비스 | Windows에는 다음과 같은 기타 부팅 서비스가 필요합니다. Stall() 참고: Stall() 구현은 오류 수정 또는 취소를 안정적으로 수행할 수 있도록 결정적(반복 가능한) 오류가 있어야 합니다. |
EFI 런타임 서비스 요구 사항
다음 표에서는 Windows에 대한 EFI 런타임 서비스 요구 사항을 나열합니다.
EFI 런타임 서비스 | 요구 사항 |
---|---|
시간 서비스 | Windows에는 다음 시간 서비스가 필요합니다. GetTime() SetTime() 참고: 시간 서비스는 부팅하는 동안(ExitBootServices() 이전) 플랫폼 시간 하드웨어에 액세스하기 위해 호출됩니다. |
변수 서비스 | 모든 UEFI 변수 서비스는 시스템의 대상 클래스에서 여러 부팅 디바이스 및 보안 변수를 관리하는 데 필요합니다. |
기타 런타임 서비스 | Windows에는 다음과 같은 기타 런타임 서비스가 필요합니다. ResetSystem() 참고: ResetSystem() 구현은 다시 설정 및 종료 옵션을 모두 지원해야 합니다. |
프로토콜 요구 사항
다음 표에서는 부팅 중에 특정 기능을 수행하는 데 Windows에 필요한 UEFI 프로토콜에 대해 설명합니다.
프로토콜 | 요구 사항 |
---|---|
그래픽 출력 프로토콜 | Windows에는 GOP(그래픽 출력 프로토콜)가 필요합니다. 특정 프레임 버퍼 요구 사항은 다음과 같습니다. 통합 디스플레이의 경우 HorizontalResolution 및 VerticalResoluton 이 패널의 네이티브 해상도여야 합니다. 외부 디스플레이의 경우 HorizontalResolution 및 VerticalResoluton 은 디스플레이의 네이티브 해상도이거나, 지원되지 않는 경우 비디오 어댑터와 연결된 디스플레이 모두에서 지원되는 가장 높은 값이어야 합니다. PixelsPerScanLine 은 HorizontalResolution과 같아야 합니다. PixelFormat 은 PixelBlueGreenRedReserved8BitPerColor여야 합니다. 실제 프레임 버퍼가 필요합니다. PixelBltOnly 는 지원되지 않습니다. 실행이 UEFI 부팅 애플리케이션에 전달되는 경우 펌웨어 부팅 관리자와 펌웨어는 어떤 목적으로도 프레임 버퍼를 사용하지 않아야 합니다. 부팅 서비스가 종료된 후에도 프레임 버퍼를 계속 검사해야 합니다. |
대체 표시 출력 | UEFI 펌웨어는 하드웨어에서 지원하는 디스플레이 커넥터를 사용하여 부팅을 지원해야 합니다. 내부 패널이 연결되어 표시되면 내부 패널을 사용해야 합니다. 물리적으로 연결된 디스플레이가 있는 모든 출력에는 부팅 화면이 표시되어야 합니다. 연결된 디스플레이의 경우 UEFI 펌웨어는 다음을 수행해야 합니다. 네이티브 해상도를 확인할 수 있는 경우 디스플레이의 기본 모드로 출력을 초기화합니다. 기본 모드를 사용할 수 없는 경우 호환성이 가장 높은 모드로 초기화해야 합니다. 디스플레이 기능을 확인할 수 없는 경우 연결된 디스플레이는 가능한 한 많은 모니터와 호환되는 것으로 알려진 모드(일반적으로 60Hz에서 640x480 또는 1024x768)로 초기화되어야 합니다. |
부팅 시 입력 | EFI 단순 텍스트 입력 프로토콜은 기본 제공 키보드 또는 연결된 키보드가 있는 시스템에서 부팅 선택 또는 기타 메뉴를 선택하는 데 필요합니다. 키보드가 없는 시스템의 경우 부팅 환경에서 다음 세 개의 단추를 사용하는 것이 좋습니다. 시작 단추 볼륨 크게 단추 볼륨 작게 단추 단추 누름은 각각 다음 키보드 키에 매핑하여 EFI 단순 텍스트 입력 프로토콜을 통해 보고되어야 합니다. Windows 키 위쪽 화살표 키 아래쪽 화살표 키 |
로컬 스토리지 부팅 | Windows에는 EFI 시스템 파티션 및 Windows OS 파티션을 포함하는 스토리지 솔루션에 대한 블록 I/O 프로토콜 및 디바이스 경로 프로토콜 지원이 필요합니다. 마모 평준화 또는 기타 플래시 관리가 필요한 플래시 스토리지에서 부팅하려면 UEFI 애플리케이션이 아닌 펌웨어에서 구현해야 합니다. |
보안 요구 사항
Windows에는 보안 부팅, 측정 부팅, 암호화 및 데이터 보호 영역에서 보안 요구 사항이 있습니다. 이러한 요구 사항은 다음 표에 자세히 설명되어 있습니다. 또한 SoC 하드웨어가 기존 표준(TPM, RTC 등)을 준수하지 못하게 하는 영역의 경우 추가 요구 사항이 개발되고 있습니다. 이러한 내용은 테이블의 끝에 설명되어 있습니다.
영역 | 요구 사항 |
---|---|
일반 |
|
UEFI 보안 부팅 |
|
UEFI 측정 부팅 | 다음 요구 사항은 TCG TPM 구현이 필요하다는 것을 의미하지는 않습니다. 그러나 영향을 받는 영역에 대한 동등한 기능이 필요하다는 것을 의미합니다. 플랫폼 지원은 보안 실행 환경에서 실행되는 TPM의 펌웨어 구현을 통해 암호화 가속 엔진 위에 계층화하고 격리된 스토리지를 활용하여 제공할 수 있습니다. Microsoft는 공급업체에서 사용할 이러한 TPM 구현에 대한 참조 소프트웨어를 제공할 수 있습니다. 이는 추가 논의의 대상이 됩니다.
|
암호화 |
|
데이터 보호 |
|
기타 보안 요구 사항 | SoC 플랫폼의 Windows에는 다음과 같은 추가 요구 사항이 필요합니다.
|
펌웨어 부팅 관리자 요구 사항
펌웨어 부팅 관리자는 사양의 섹션 3.3에 정의된 기본 부팅 동작을 지원해야 합니다. 또한 다중 부팅, 전역적으로 정의된 변수 지원 및 사양의 섹션 3.1의 부팅 관리자 요구 사항이 필요합니다.
UEFI Arm 바인딩 요구 사항
UEFI Arm 바인딩에는 UEFI 사양을 준수하는 데 필요한 Arm 플랫폼과 관련된 요구 사항이 포함되어 있습니다. Windows에는 ARMv7에 적용할 수 있는 Arm 바인딩의 모든 항목이 필요합니다. Windows는 ARMv7 이전의 항목을 지원하지 않으므로 ARMv6k 이하와 관련된 바인딩의 요구 사항은 선택 사항입니다.
바인딩은 예를 들어 MMU를 구성하는 방법과 실제 메모리를 매핑하는 방법을 지정합니다. 또한 바인딩은 Arm ISA에서만 UEFI 프로토콜 및 서비스에 대한 호출을 수행하도록 지정합니다. 즉, Thumb2 또는 Thumb에서 실행되는 소프트웨어는 UEFI 함수를 호출하기 전에 Arm 모드로 다시 전환해야 합니다.
UEFI Arm 다중 프로세서 시작 요구 사항
Microsoft는 다중 프로세서 UEFI 플랫폼에서 여러 Arm 코어를 시작하는 프로토콜을 개발했습니다. 이 프로토콜은 PSCI(전원 상태 조정 인터페이스)를 지원하지 않는 Windows on Arm 플랫폼에서 필요합니다. PSCI를 지원하는 플랫폼은 이 프로토콜을 사용하면 안 됩니다. 이 프로토콜에 대한 자세한 내용은 ACPICA(ACPI 구성 요소 아키텍처) 웹 사이트의 UEFI Arm 기반 플랫폼에서 다중 프로세서 시작 문서를 참조하세요.
플랫폼 설정 요구 사항
펌웨어는 OS 로더에 전달하기 전에 시스템 하드웨어를 잘 정의된 상태로 전환해야 합니다. 다음 표에서는 관련 플랫폼 설정 요구 사항을 정의합니다.
요구 사항 | Description |
---|---|
부팅 경로 | 펌웨어는 Windows가 UEFI를 통해 부팅 디바이스에 액세스하고 커널을 로드할 수 있는 지점까지 플랫폼을 초기화해야 합니다. 부팅 디바이스에서 읽을 계층 구조와 관련된 모든 디바이스는 성능 및 전원 고려 사항을 고려하여 적절한 속도로 클록 및 전원을 공급해야 합니다. 기본 프로세서 코어 자체도 적절한 속도로 클럭 및 전원을 공급해야 하므로 시스템이 배터리를 소모하지 않고 적시에 부팅할 수 있습니다. |
핵심 시스템 리소스 | ACPI 테이블을 통해 OS에 노출되는 핵심 시스템 리소스는 전원을 켜고 클록해야 합니다. 핵심 시스템 리소스에는 OS에서 관리해야 하는 인터럽트 컨트롤러, 타이머 및 DMA 컨트롤러가 포함됩니다. 또한 OS의 연결된 디바이스 드라이버가 마스크를 해제하고 디바이스에서 인터럽트를 다시 사용하도록 설정할 때까지 ExitBootServices() 호출로 인터럽트를 마스킹해야 합니다. 부팅 서비스 중에 인터럽트 사용이 설정된 경우 펌웨어가 이를 관리한다고 가정합니다. |
디버깅 | Windows는 USB 3 호스트(XHCI) , USB 2 호스트(EHCI)1, IEEE 1394, 직렬 및 USB 함수 인터페이스(PCI 이더넷 어댑터)를 통한 디버깅을 지원합니다. 이들 중 하나 이상은 OS 핸드오프 전에 펌웨어에 의해 전원, 클록 및 초기화되어야 합니다. 어떤 옵션이 제공되든 디버깅을 위해 노출된 포트가 있어야 하며 컨트롤러는 메모리 매핑되거나 전용(비공유) 주변 장치 버스를 통해 연결되어야 합니다. |
기타 플랫폼 설정 요구 사항 | 컨트롤을 OS 로더에 전달하기 전에 핀 멀티플렉싱 및 패드 구성을 펌웨어에서 완료해야 합니다. |
설치 요구 사항
Windows를 사용하려면 OS 파티션이 GPT 분할 스토리지 솔루션에 있어야 합니다. MBR 분할 스토리지는 데이터 스토리지로 사용할 수 있습니다. UEFI 사양에 정의된 대로 UEFI 플랫폼에는 전용 시스템 파티션이 필요합니다. Windows에는 EFI 시스템 파티션(ESP)이라고 하는 이 전용 시스템 파티션이 필요합니다.
HSTI(하드웨어 보안 테스트 인터페이스) 요구 사항
플랫폼은 하드웨어 보안 테스트 인터페이스를 구현해야 하며, 하드웨어 보안 테스트 가능성 사양에 지정된 대로 설명서와 도구를 공유하려면 플랫폼이 필요합니다.
관련 문서
SoC 플랫폼의 Windows에 대한 최소 UEFI 요구 사항