Open Source Uefi Firmware For Intel Platforms 825417
Open Source Uefi Firmware For Intel Platforms 825417
Michael Kubacki
OSFC 2019 September 3rd, 2019
How to Build Intel UEFI FW For a System?
?
https://github.com/tianocore/edk2 https://github.com/IntelFsp/FSP
2
Firmware is Built on Standards
. . .
3
Intel® Legacy BIOS to UEFI
Scope/Complexity
UEFI BIOS
Legacy PC
BIOS
4
Intel® Legacy BIOS to UEFI
Scope/Complexity
Converged Core
UEFI FW
Legacy PC PC Platform
BIOS UEFI FW
5
Intel® Legacy BIOS to UEFI
Scope/Complexity
Full UEFI FW
Binary
Converged Core
UEFI FW
6
Intel® Legacy BIOS to UEFI
Platform
Scope/Complexity
Standardization
Full UEFI FW
Binary
Converged Core
UEFI FW
7
UEFI PI Overview
Pre-boot Human User
OS GUI
Tools
Application
Libraries
UEFI Specification Drivers Full system stack
Network (user -> hardware)
OS
UEFI PI Scope – “Green H”
Firmware
Hardware
Platform
Drivers • UEFI specifies how firmware executes the OS loader.
• UEFI’s Platform Initialization (PI) spec. defines:
• Pre-EFI Initialization (PEI)
• Driver Execution Environment (DXE)
Silicon
Component • DXE is the preferred UEFI Implementation.
Modules
PEI/DXE PI Foundation
Hardware
Modular components
8
Silicon Initialization Overview
9
Intel® FSP 2.0
10
Intel® FSP 2.1
Now we need an
Primary objective: Seamlessly integrate with UEFI PI firmware open source UEFI PI
platform wrapper
for Intel® FSP…
Non-UEFI PI Firmware: API mode
Same “mode” provided with 2.0 using the same binary API
Uses UPDs for configuration
11
Lack of Platform Code Consistency
It is difficult to secure.
Same thing done different ways
Open Small
edk2 edk2-platforms
NextGenBoardPkg Feature C
Feature …
Future Product
Development
Evolving Intel Open Source Platform Firmware
Open Small
edk2 edk2-platforms
UefiCpuPkg
. . .
NextGenBoardPkg Feature C
Feature …
Future Product
Development
Evolving Intel Open Source Platform Firmware
Open Small
edk2 edk2-platforms
NextGenBoardPkg Feature C
Feature …
Future Product
Development
Evolving Intel Open Source Platform Firmware
edk2 edk2-platforms
NextGenBoardPkg Feature C
Feature …
Future Product
Development
Evolving Intel Open Source Platform Firmware
NextGenBoardPkg Feature C
Feature …
Future Product
Development
Evolving Intel Open Source Platform Firmware
NextGenBoardPkg
Feature …
Future Product
Development
Evolving Intel Open Source Platform Firmware
NextGenBoardPkg
Future Product
Development
Evolving Intel Open Source Platform Firmware
EDKII
MinPlatformPkg
Intel® Firmware Support Package (Intel® FSP) Binary .com
Si API MPA API EDK2 API Si API MPA API EDK2 API Si API MPA API EDK2 API
21
The Staged Platform Approach
Stage II
Stage III
Stage VI
Stage IV
Stage V
Debug Functional UEFI Shell OS Enabled Feature
Selection
External Debugger Basic HW Includes Serial Basic ACPI Table Authenticated Boot Features Selected
Console I/O Initialization Features
Based on Selected
System-
Support Initialization
Security Registers Based
Specific System-
on Usage.
Specific Usage.
Serial Port Memory Initialized UEFI Shell SMM support Locked
command line BIOS Setup
interface OS kernel minimal BIOS Setup
Progress and Error
reporting functionality Capsule Update
Capsule Update
Minimum Platform
. . .
Full Platform
22
Intel Open Platform – Minimum Platform + Intel® FSP
OS
Pre-boot • UEFI is built with the PC supply chain in mind.
Tools
• Open and closed modules can co-exist in a system.
UEFI Specification • Minimum Platform seeks to increase the overall share of
open source UEFI firmware code available.
GPU Drivers
Embedded system
development
24
Current Status & Upcoming Plans
Platforms Currently Supported:
7th Generation Intel® Intel® Xeon® Scalable Processors 8th Generation Intel®
Core™ i7 Processors with Intel® C620 Series Chipsets Core™ i7 Processors
(products formerly Kaby Lake) (products formerly Purley) (products formerly Whiskey Lake)
Kaby Lake U DDR3 RVP Mt. Olympus Whiskey Lake U DDR4 RVP
System76* Galago Pro 3
Note: Sky Lake U DDR3 RVP works
with KabylakeOpenBoardPkg.
Upcoming Plans:
1. Continue to roll out more Intel open source platform code.
2. Expand advance feature code and quality.
3. Support open source community continuous integration for minimum platforms.
25
Legal Disclaimer
You may not use or facilitate the use of this document in connection with any infringement or other legal analysis concerning Intel products described herein. You agree to grant
Intel a non-exclusive, royalty-free license to any patent claim thereafter drafted which includes subject matter disclosed herein.
No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.
Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Performance varies depending on
system configuration. No computer system can be absolutely secure. Check with your system manufacturer or retailer or learn more at intel.com.
Intel technologies may require enabled hardware, specific software, or services activation. Check with your system manufacturer or retailer.
The products described may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata
are available on request.
Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as
well as any warranty arising from course of performance, course of dealing, or usage in trade.
All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest Intel product specifications and roadmaps
Copies of documents which have an order number and are referenced in this document may be obtained by calling 1-800-548-4725 or visit www.intel.com/design/literature.htm.
Intel, the Intel logo, and Core are trademarks of Intel Corporation in the U.S. and/or other countries.