Vincent Zimmer & Michael Rothman 
Beyond BIOS [EPUB ebook] 
Developing with the Unified Extensible Firmware Interface, Third Edition

สนับสนุน

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

€84.95
วิธีการชำระเงิน

สารบัญ


Acknowledgements | v


Preface | vii


Chapter 1 – Introduction | 1


Terminology | 4


Short History of EFI | 5


EFI Becomes UEFI—The UEFI Forum | 6


PIWG and USWG | 8


Platform Trust/Security | 11


Embedded Systems: The New Challenge | 12


How the Boot Process Differs between a Normal Boot and an


Optimized/Embedded Boot | 13


Summary | 14


Chapter 2 – Basic UEFI Architecture | 15


Objects Managed by UEFI-based Firmware | 15


UEFI System Table | 16


Handle Database | 16


Protocols | 18


Working with Protocols | 21


Multiple Protocol Instances | 21


Tag GUID | 21


UEFI Images | 22


Applications | 25


OS Loader | 25


Drivers | 26


Events and Task Priority Levels | 27


Summary | 30


Chapter 3 – UEFI Driver Model | 31


Why a Driver Model Prior to OS Booting? | 31


Driver Initialization | 32


Host Bus Controllers | 33


Device Drivers | 35


Bus Drivers | 36


Platform Components | 38


Hot Plug Events | 38


Pseudo Code | 41


Device Driver | 41



Bus Driver that Creates All of Its Child Handles on the First Call to


Start() | 42


Bus Driver that Is Able to Create All or One of Its Child Handles on Each Call


to Start(): | 43


Additional Innovations | 47


Security | 47


Manageability | 48


Networking | 49


Summary | 52


Chapter 4 – Protocols You Should Know | 53


EFI OS Loaders | 55


Device Path and Image Information of the OS Loader | 56


Accessing Files in the Device Path of the OS Loader | 57


Finding the OS Partition | 58


Getting the Current System Configuration | 60


Getting the Current Memory Map | 61


Getting Environment Variables | 62


Transitioning to an OS Kernel | 63


Summary | 63


Chapter 5 – UEFI Runtime | 65


Isn’t There Only One Kind of Memory? | 66


How Are Runtime Services Exposed? | 69


Time Services | 70


Why Abstract Time? | 70


Get Time | 70


Set Time | 71


Get Wakeup Time | 72


Set Wakeup Time | 72


Virtual Memory Services | 72


Set Virtual Address Map | 73


Convert Pointer | 73


Variable Services | 74


Get Variable | 74


Get Next Variable Name | 75


Set Variable | 75


Miscellaneous Services | 77


Reset System | 78


Get Next High Monotonic Count | 79


Update Capsule | 79


Query Capsule Capabilities | 80



Summary | 80


Chapter 6 – UEFI Console Services | 81


Simple Text Input Protocol | 83


Simple Text Input Ex Protocol | 86


Simple Text Output Protocol | 87


Remote Console Support | 89


Console Splitter | 92


Network Consoles | 93


Summary | 95


Chapter 7 – Different Types of Platforms | 97


Summary | 110


Chapter 8 – DXE Basics: Core, Dispatching, and Drivers | 111


DXE Core | 112


Hand-Off Block (HOB) List | 114


DXE Architectural Protocols | 115


EFI System Table | 117


EFI Boot Services Table | 118


EFI Runtime Services Table | 119


DXE Services Table | 119


Global Coherency Domain Services | 120


GCD Memory Resources | 120


GCD I/O Resources | 122


DXE Dispatcher | 123


The a priori File | 125


Dependency Grammar | 125


DXE Drivers | 126


Boot Device Selection (BDS) Phase | 127


Console Devices | 128


Boot Devices | 129


Boot Services Terminate | 129


Summary | 130


Chapter 9 – Some Common UEFI and PI Functions | 131


Architectural Protocol Examples | 132


CPU Architectural Protocol | 133


Real Time Clock Architectural Protocol | 135


Timer Architectural Protocol | 135


Reset Architectural Protocol | 136


Boot Device Selection Architectural Protocol | 137



Variable Architectural Protocol | 138


Watchdog Timer Architectural Protocol | 138


PCI Protocols | 139


PCI Host Bridge Resource Allocation Protocol | 139


PCI Root Bridge I/O | 143


PCI I/O | 145


Block I/O | 147


Disk I/O | 149


Simple File System | 150


EFI File Protocol | 151


Configuration Infrastructure | 152


Using the Configuration Infrastructure | 153


Driver Model Interactions | 154


Provisioning the Platform | 155


Summary | 156


Chapter 10 – Platform Security and Trust | 157


Trust Overview | 157


Trusted Platform Module (TPM) and Measured Boot | 160


What Is a Trusted Building Block (TBB)? | 163


What Is the Point of Measurements? | 168


UEFI Secure Boot | 169


UEFI Executable Verification | 170


UEFI Networking | 173


UEFI User Identification (UID) | 176


Hardware Evolution: SRTM-to-DRTM | 177


Platform Manufacturer | 178


Vulnerability Classification | 180


Roots of Trust/Guards | 180


Summary | 181


Chapter 11 – Boot Device Selection | 183


Firmware Boot Manager | 185


Related Definitions | 188


Globally-Defined Variables | 188


Default Behavior for Boot Option Variables | 191


Boot Mechanisms | 191


Boot via Simple File Protocol | 192


Boot via LOAD_FILE Protocol | 193


Summary | 194



Chapter 12 – Boot Flows | 195


Defined Boot Modes | 196


Priority of Boot Paths | 196


Reset Boot Paths | 198


Intel® Itanium® Processor Reset | 198


Non-Power-On Resets | 199


Normal Boot Paths | 199


Basic G0-to-S0 and S0 Variation Boot Paths | 200


S-State Boot Paths | 200


Recovery Paths | 201


Discovery | 201


General Recovery Architecture | 202


Special Boot Path Topics | 203


Special Boot Paths | 203


Special Intel Itanium® Architecture Boot Paths | 203


Intel Itanium® Architecture Access to the Boot Firmware Volume | 203


Architectural Boot Mode PPIs | 207


Recovery | 207


Discovery | 208


Summary | 208


Chapter 13 – Pre-EFI Initialization (PEI) | 209


Scope | 209


Rationale | 210


Overview | 210


Phase Prerequisites | 212


Temporary RAM | 212


Boot Firmware Volume | 212


Security Primitives | 213


Concepts | 213


PEI Foundation | 213


Pre-EFI Initialization Modules (PEIMs) | 214


PEI Services | 215


PEIM-to-PEIM Interfaces (PPIs) | 215


Simple Heap | 216


Hand-Off Blocks (HOBs) | 216


Operation | 217


Dependency Expressions | 218


Verification/Authentication | 219


PEIM Execution | 219


Memory Discovery | 219


Intel® Itanium® Processor MP Considerations | 220


Recovery | 220


S3 Resume | 221


The “Terse Executable” and Cache-as-RAM | 222


Example System | 223


Summary | 226


Chapter 14 – Putting It All Together—Firmware Emulation | 227


Virtual Platform | 228


Emulation Firmware Phases | 230


Hardware Pass-Through | 235


Summary | 236


Chapter 15 – Reducing Platform Boot Times | 237


Proof of Concept | 240


Marketing Requirements | 241


What Are the Design Goals? | 242


Platform Policy | 242


What Are the Supported OS Targets? | 243


Do We Have to Support Legacy Operating Systems? | 243


Do We Have to Support Legacy Option ROMs? | 243


Are We Required to Display an OEM Splash Screen? | 244


What Type of Boot Media Is Supported? | 244


What Is the BIOS Recovery/Update Strategy? | 245


When Processing Things Early | 245


Is There a Need for Pre-OS User Interaction? | 246


Additional Details | 246


Adjusting the BIOS to Avoid Unnecessary Drivers | 246


What Is the Boot Target? | 247


Steps Taken in a Normal and Optimized Boot | 247


Loading a Boot Target | 248


Organizing the Flash Effectively | 249


Minimize the Files Needed | 249


Summary | 250


The Primary Adjustments | 250


Suggested Next Steps | 251


Chapter 16 – Embedded Boot Solution | 253


CE Device Landscape | 253


CE Device Boot Challenges | 254


In-Vehicle Infotainment | 256


Other Embedded Platforms | 257


Generic Requirements | 258



Boot Strategies | 259


Power Management | 261


Boot Storage Devices | 261


Security | 263


Manageability | 267


Summary | 268


Chapter 17 – Manageability | 269


Overall Management Framework | 269


Dynamic In-Band | 271


Out-of-Band | 271


Distributed Management Task Force (DMTF) | 271


UEFI Error Format Standardization | 272


UEFI Error Format Overview | 276


Error Record Types | 276


Windows Hardware Error Architecture and the Role of UEFI | 277


Technology Intercepts: UEFI, IPMI, Intel® AMT, WS-MAN | 281


Intelligent Platform Management Interface (IPMI) | 281


Intel® Active Management Technology (Intel AMT) | 283


Web Services Management Protocol (WS-MAN) | 285


Other Industry Initiatives | 285


The UEFI/IPMI/Intel® AMT/WS-MAN Bridge | 286


IPMI Error Records to UEFI | 287


UEFI Error Records to IPMI | 287


Intel® AMT and IPMI | 287


Future Work | 288


Configuration Namespace | 288


Namespace Entries | 292


Summary | 293


Appendix A – Data Types | 295


Appendix B – Status Codes | 297


Index | 301

เกี่ยวกับผู้แต่ง

Vincent Zimmer Engineer, WA, USA, Suresh Marisetty Systems Architect, CA, USA, Michael Rothman Engineer, WA, USA
ซื้อ eBook เล่มนี้และรับฟรีอีก 1 เล่ม!
ภาษา อังกฤษ ● รูป EPUB ● หน้า 322 ● ISBN 9781501505836 ● ขนาดไฟล์ 53.9 MB ● สำนักพิมพ์ De|G Press ● เมือง Basel/Berlin/Boston ● การตีพิมพ์ 2017 ● ฉบับ 1 ● ที่สามารถดาวน์โหลดได้ 24 เดือน ● เงินตรา EUR ● ID 6625235 ● ป้องกันการคัดลอก Adobe DRM
ต้องใช้เครื่องอ่านหนังสืออิเล็กทรอนิกส์ที่มีความสามารถ DRM

หนังสืออิเล็กทรอนิกส์เพิ่มเติมจากผู้แต่งคนเดียวกัน / บรรณาธิการ

3,650 หนังสืออิเล็กทรอนิกส์ในหมวดหมู่นี้