This book provides an overview of modern boot firmware, including the Unified Extensible Firmware Interface (UEFI) and its associated EFI Developer Kit II (EDKII) firmware. The authors have each made significant contributions to developments in these areas. The reader will learn to use the latest developments in UEFI on modern hardware, including open source firmware and open hardware designs. The book begins with an exploration of interfaces exposed to higher-level software and operating systems, and commences to the left of the boot timeline, describing the flow of typical systems, beginning with the machine restart event.
Software engineers working with UEFI will benefit greatly from this book, while specific sections of the book address topics relevant for a general audience: system architects, pre-operating-system application developers, operating system vendors (loader, kernel), independent hardware vendors (such as for plug-in adapters), and developers of end-user applications. As a secondary audience, project technical leaders or managers may be interested in this book to get a feel for what their engineers are doing.
The reader will find:
- An overview of UEFI and underlying Platform Initialization (PI) specifications
- How to create UEFI applications and drivers
- Workflow to design the firmware solution for a modern platform
- Advanced usages of UEFI firmware for security and manageability
Table of contents
- Chapter 1 – Introduction
- Chapter 2 – Basic UEFI Architecture
Chapter 3 – UEFI Driver Model
- Why a Driver Model Prior to OS Booting?
- Driver Initialization
- Host Bus Controllers
- Device Drivers
- Bus Drivers
- Platform Components
- Hot Plug Events
- Additional Innovations
- Chapter 4 – Protocols You Should Know
Chapter 5 – UEFI Runtime
- Isn’t There Only One Kind of
- How Are Runtime Services Exposed?
- Time Services
- Virtual Memory Services
- Variable Services
- Miscellaneous Services
- Chapter 6 – UEFI Console Services
- Chapter 7 – Different Types of Platforms
Chapter 8 – DXE Basics: Core, Dispatching, and Drivers
- DXE Core
- Global Coherency Domain Services
- DXE Dispatcher
- DXE Drivers
- Boot Device Selection (BDS) Phase
Chapter 9 – Some Common UEFI and PI Functions
- Architectural Protocol Examples
- PCI Protocols
- Block I/O
- Disk I/O
- Simple File System
- Configuration Infrastructure
- Using the Configuration Infrastructure
- Driver Model Interactions
- Provisioning the Platform
Chapter 10 – Platform Security and Trust
- Trust Overview
- Trusted Platform Module (TPM) and Measured Boot
- UEFI Secure Boot
- UEFI Networking
- UEFI User Identification (UID)
- Hardware Evolution: SRTM-to-DRTM
- Platform Manufacturer
- Vulnerability Classification
- Roots of Trust/Guards
- Chapter 11 – Boot Device Selection
Chapter 12 – Boot Flows
- Defined Boot Modes
- Priority of Boot Paths
- Reset Boot Paths
- Normal Boot Paths
- Recovery Paths
- Special Boot Path Topics
Chapter 13 – Pre-EFI Initialization (PEI)
- Phase Prerequisites
- Chapter 14 – Putting It All Together–Firmware Emulation
Chapter 15 – Reducing Platform Boot Times
- Proof of Concept
- What Are the Design Goals?
- Platform Policy
- What Are the Supported OS Targets?
- Do We Have to Support Legacy Operating Systems?
- Do We Have to Support Legacy Option ROMs?
- Are We Required to Display an OEM Splash Screen?
- What Type of Boot Media Is Supported?
- What Is the BIOS Recovery/Update Strategy?
- When Processing Things Early
- Is There a Need for Pre-OS User Interaction?
- Additional Details
- Chapter 16 – Reducing Platform Boot Times
Chapter 17 – Manageability
- Overall Management Framework
- UEFI Error Format Standardization
- Windows Hardware Error Architecture and the Role of UEFI
- Technology Intercepts: UEFI, IPMI, Intel® AMT, WS-MAN
- The UEFI/IPMI/Intel® AMT/WS-MAN Bridge
- Configuration Namespace
- Appendix A – Data Types
- Appendix B – Status Codes
- Title: Beyond BIOS
- Release date: January 2017
- Publisher(s): De Gruyter
- ISBN: 9781501505836