Beyond BIOS
Developing with the Unified Extensible Firmware Interface, Third Edition
Beyond BIOS
Developing with the Unified Extensible Firmware Interface, Third Edition
- Broschiertes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
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…mehr
- Markus KammermannCompTIA A+69,99 €
- GUID Partition Table25,99 €
- Vincent ZimmerFirmware Development46,99 €
- Jacob BeningoReusable Firmware Development55,99 €
- Oscar Toledo GutierrezProgramming Boot Sector Games33,99 €
- Oscar Toledo GutierrezMore Boot Sector Games33,99 €
- Gilles BrocardThe LT Spice XVII Simulator49,00 €
-
-
-
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
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
- Produktdetails
- Verlag: De Gruyter
- 3rd Ed
- Seitenzahl: 324
- Erscheinungstermin: 23. Januar 2017
- Englisch
- Abmessung: 240mm x 170mm x 18mm
- Gewicht: 553g
- ISBN-13: 9781501514784
- ISBN-10: 1501514784
- Artikelnr.: 47319358
- Herstellerkennzeichnung Die Herstellerinformationen sind derzeit nicht verfügbar.
- Verlag: De Gruyter
- 3rd Ed
- Seitenzahl: 324
- Erscheinungstermin: 23. Januar 2017
- Englisch
- Abmessung: 240mm x 170mm x 18mm
- Gewicht: 553g
- ISBN-13: 9781501514784
- ISBN-10: 1501514784
- Artikelnr.: 47319358
- Herstellerkennzeichnung Die Herstellerinformationen sind derzeit nicht verfügbar.
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
ConvertPointer 73
Variable Services 74
GetVariable 74
GetNextVariableName 75
SetVariable 75
Miscellaneous Services 77
Reset System 78
Get Next High Monotonic Count 79
UpdateCapsule 79
QueryCapsuleCapabilities 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
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
ConvertPointer 73
Variable Services 74
GetVariable 74
GetNextVariableName 75
SetVariable 75
Miscellaneous Services 77
Reset System 78
Get Next High Monotonic Count 79
UpdateCapsule 79
QueryCapsuleCapabilities 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