펌웨어 업데이트 패키지 작성
각 펌웨어 업데이트 패키지에는 전체 펌웨어 페이로드(예: firmware.bin)가 포함된 단일 이진 파일과 Windows가 firmware.bin의 유효성을 검사하는 데 사용하는 보안 카탈로그가 포함되어 있습니다. 보안 카탈로그 및 드라이버에 대한 자세한 내용은 카탈로그 파일 및 디지털 서명 및PnP 드라이버 패키지에 대한 카탈로그 파일 만들기를 참조하세요.
펌웨어 업데이트 패키지는 다음 유형의 펌웨어 중 하나 이상을 업데이트할 수 있어야 합니다.
UEFI 시스템 펌웨어입니다.
시스템의 단일 디바이스에 대한 펌웨어입니다.
각 펌웨어 업데이트 패키지는 단일 펌웨어 리소스(UEFI 시스템 펌웨어 또는 단일 디바이스)를 대상으로 하는 것이 좋지만 시스템 펌웨어와 하나 이상의 디바이스를 모두 업데이트하는 단일 펌웨어 업데이트 패키지가 있는 것이 유리할 수 있습니다.
디바이스는 둘 이상의 펌웨어 업데이트 패키지의 대상이 될 수 없습니다. 디바이스가 시스템 펌웨어도 포함하는 펌웨어 업데이트 패키지의 대상이 되는 경우 디바이스를 대상으로 하는 두 번째 펌웨어 업데이트 패키지의 대상이 될 수 없습니다.
펌웨어 업데이트 패키지가 적절한 시스템 하드웨어에 대한 펌웨어 업데이트를 대상으로 할 수 있도록 Windows는 ESRT의 각 항목에 대한 디바이스 인스턴스를 표시합니다. 여기서 이러한 디바이스 인스턴스는 ESRT 항목에 속하는 것으로 식별되는 하드웨어 ID를 노출합니다.
펌웨어 업데이트 패키지가 설치되면 Windows에서 드라이버 패키지로 처리됩니다. Windows는 각 업데이트 패키지의 펌웨어 페이로드를 시스템 디렉터리 아래의 안전한 위치에 복사하고, 시스템을 준비하여 펌웨어 업데이트를 수행하고 시스템을 다시 시작하도록 트리거합니다.
Windows는 드라이버 패키지 간의 종속성을 지원하지 않습니다. 따라서 새 펌웨어 업데이트 패키지를 작성할 때 다음 요구 사항을 준수해야 합니다.
펌웨어 업데이트 패키지는 다른 디바이스 펌웨어, 시스템 펌웨어 또는 기타 펌웨어 업데이트 패키지에 종속되지 않고 자체적으로 성공적으로 설치할 수 있어야 합니다.
각 업데이트 패키지는 시스템의 단일 디바이스 또는 UEFI 시스템 펌웨어(ESRT에 정의됨)를 대상으로 하는 것이 좋습니다.
각 업데이트 패키지에는 단일 펌웨어 업데이트 이진 파일(예: firmware.bin)이 포함되어야 합니다.
각 업데이트 패키지의 펌웨어 업데이트 페이로드는 단일 이진 파일에 포함되어야 합니다. 시스템을 다시 부팅하면 OS 로더는 각 펌웨어 업데이트 패키지에 대한 각 펌웨어 업데이트 이진 파일을 실제 메모리에 로드하고 설치를 위해 프로비전된 각 페이로드 파일에 대한 포인터 배열을 빌드합니다(UEFI 2.3.1 사양은 이 배열을 CapsuleHeaderArray라고 함).
이 배열은 EFI UpdateCapsule() 함수에 대한 호출에서 전달됩니다. UpdateCapsule()은 사서함으로 사용되어 각 드라이버 패키지의 펌웨어 업데이트 페이로드를 플랫폼 펌웨어에 전달합니다.
각 캡슐(펌웨어 업데이트 페이로드)은 펌웨어 리소스에 대한 ESRT 항목에 지정된 펌웨어 ID로 식별됩니다.
각 펌웨어 업데이트 페이로드를 받으면 펌웨어 업데이트 요청이 처리되고 해당하는 경우 적용됩니다.
CapsuleHeaderArray의 각 항목은 시스템의 단일 디바이스에 대한 펌웨어 드라이버 패키지의 펌웨어 업데이트 페이로드를 포함하는 단일 연속 데이터 블록입니다. 각 대상 펌웨어 리소스에 대해 펌웨어 업데이트 페이로드는 유효성 검사를 위해 플랫폼에 필요한 모든 정보와 펌웨어 이미지를 포함해야 합니다.
모든 펌웨어 업데이트 드라이버 패키지에 대한 펌웨어 페이로드는 UEFI UpdateCapsule 서비스를 통해 플랫폼 펌웨어에 전달됩니다. 통합 디바이스는 다양한 IHV에서 공급되므로 시스템 OEM(및 SoC 제조업체)은 이러한 IHV와 직접 협력하여 디바이스 펌웨어 업데이트가 지정된 시스템에 적절하게 작성되도록 해야 합니다. 또한 시스템 OEM은 ESRT 항목에서 UpdateCapsule 패키지가 적절한 시스템을 대상으로 지정할 수 있도록 해야 합니다.
예를 들어 여러 OEM이 시스템에 대해 동일한 MBB(모바일 광대역) 디바이스 모델을 선택할 수 있습니다. MBB 디바이스가 각 시스템에서 동일하더라도 각 OEM은 MBB IHV와 협업하여 해당 시스템에 맞게 사용자 지정된 펌웨어 업데이트 패키지를 작성해야 합니다. OEM 시스템 전반의 변수를 해결하려면 디바이스 펌웨어 업데이트의 이러한 수준의 사용자 지정이 필요합니다.
디바이스 주소 지정은 OEM에서 선택한 SoC 및 디바이스가 SoC에 연결되는 방법에 따라 다를 수 있습니다.
시스템 OEM은 소비자에게 재판매하기 위해 여러 MNO(모바일 네트워크 운영자)에 시스템을 판매할 수 있습니다. MBB 디바이스는 MNO를 인식해야 하며, 특정 MNO 요구 사항에 맞게 펌웨어를 사용자 지정하고 인증해야 합니다.
이 시스템은 전 세계 여러 시장에서 판매될 수 있으며, 각각 다른 RF 규정 및 무선 주파수 할당이 있습니다. MBB 디바이스 펌웨어는 이러한 시장 요구 사항을 충족하기 위해 사용자 지정이 필요할 수 있습니다.
각 OEM은 이러한 디바이스별 요구 사항을 신중하게 고려하고 디바이스 펌웨어를 적절하게 대상으로 지정하고 업데이트할 수 있도록 필요한 단계를 수행해야 합니다. 이렇게 하려면 디바이스 펌웨어를 올바르게 배포할 수 있도록 ESRT 항목을 신중하게 관리해야 합니다.
업데이트 패키지가 작성되면 인증 및 서명을 위해 Microsoft에 제출해야 합니다.