没有合适的资源?快使用搜索试试~ 我知道了~
首页UEFI 2.3.1 Errata A: 官方规范详解
UEFI 2.3.1 Errata A: 官方规范详解
需积分: 10 3 下载量 179 浏览量
更新于2024-07-29
收藏 9.56MB PDF 举报
"UEFI_2_3_1_Errata_A.pdf是Unified Extensible Firmware Interface (UEFI)规范的第2.3.1版修正版,发布于2011年9月7日。该文档主要涵盖了UEFI的技术细节、更新和修订内容。UEFI是一种现代计算机启动和预操作系统环境的标准,旨在替代传统的BIOS(基本输入输出系统),提供更高效、安全和可扩展的平台。"
UEFI规范的核心目标是改进系统的启动过程,提供一个统一的接口,以便硬件厂商和操作系统开发商能够更好地协同工作。它引入了诸如图形化用户界面、安全启动、快速启动等功能,以提高用户体验和系统安全性。
在UEFI 2.3.1版本中,可能包含了以下关键知识点:
1. **模块化设计**:UEFI由一系列称为“模块”的独立代码单元组成,每个模块都有自己的接口和功能。这使得UEFI更加灵活,易于维护和扩展。
2. **固件体积**:UEFI允许较大的固件体积,支持更大的存储和复杂的预操作系统功能,如网络启动和磁盘加密。
3. **统一接口**:UEFI定义了一套标准的API(应用程序编程接口),使得操作系统可以与各种不同的硬件平台进行通信,而无需硬件特定的驱动程序。
4. **EFI Shell**:UEFI包含一个内置的命令行环境,称为EFI Shell,用于执行系统诊断和管理任务。
5. **安全启动**:这一特性确保只有经过认证的操作系统和固件组件才能在系统上启动,有助于防止恶意软件在启动过程中感染系统。
6. **可扩展性**:UEFI支持加载外部设备驱动程序,允许新的硬件设备在没有内置支持的情况下也能正常工作。
7. **错误报告和调试**:UEFI提供了详细的错误报告机制和调试工具,帮助开发者识别和修复问题。
8. **修正和增强**:Errata A是对2.3.1版本的修正,可能包括了错误修复、性能优化和新功能的添加。
9. **版权和法律声明**:文档中明确指出,内容不构成任何知识产权的许可,并且提供的信息按原样提供,不保证任何明示或暗示的性质,包括但不限于对适销性、特定用途适用性、响应准确性、结果、工作质量、无病毒和无过失的任何保证。
UEFI的实施使得计算机系统能够更高效地启动和运行,同时为开发者提供了更强大的平台来实现高级功能和安全特性。然而,设计者在使用UEFI时必须注意,不能依赖其特定的特性或指令,因为这些可能会有所变化或被废弃。因此,理解和遵循UEFI规范的最新版本是非常重要的。
Unified Extensible Firmware Interface Specification
xvi September 7, 2011 Version 2.3.1, Errata A
2.3.3 Intel
®
Itanium
®
-Based Platforms......................................................................... 26
2.3.4 x64 Platforms ...................................................................................................... 30
2.3.5 ARM Platforms ................................................................................................... 33
2.4 Protocols ......................................................................................................................... 36
2.5 UEFI Driver Model .......................................................................................................... 41
2.5.1 Legacy Option ROM Issues ................................................................................ 43
2.5.2 Driver Initialization............................................................................................... 45
2.5.3 Host Bus Controllers ........................................................................................... 46
2.5.4 Device Drivers..................................................................................................... 48
2.5.5 Bus Drivers.......................................................................................................... 49
2.5.6 Platform Components ......................................................................................... 51
2.5.7 Hot-Plug Events .................................................................................................. 52
2.5.8 EFI Services Binding........................................................................................... 52
2.6 Requirements.................................................................................................................. 54
2.6.1 Required Elements.............................................................................................. 54
2.6.2 Platform-Specific Elements ................................................................................ 55
2.6.3 Driver-Specific Elements..................................................................................... 57
2.6.4 Extensions to this Specification published elsewhere........................................ 58
3
Boot Manager................................................................................................ 61
3.1 Firmware Boot Manager ................................................................................................. 61
3.1.1 Boot Manager Programming ............................................................................... 62
3.1.2 Load Option Processing...................................................................................... 62
3.1.3 Load Options....................................................................................................... 63
3.1.4 Boot Manager Capabilities .................................................................................. 65
3.1.5 Launching Boot#### Applications....................................................................... 65
3.1.6 Launching Boot#### Load Options Using Hot Keys ........................................... 66
3.2 Globally Defined Variables.............................................................................................. 68
3.3 Boot Option Variables Default Boot Behavior ................................................................. 71
3.4 Boot Mechanisms ........................................................................................................... 71
3.4.1 Boot via the Simple File Protocol ........................................................................ 72
3.4.2 Boot via LOAD_FILE PROTOCOL...................................................................... 73
4
EFI System Table.......................................................................................... 75
4.1 UEFI Image Entry Point .................................................................................................. 75
EFI_IMAGE_ENTRY_POINT .............................................................................. 75
4.2 EFI Table Header ...........................................................................................................76
EFI_TABLE_HEADER ........................................................................................ 77
4.3 EFI System Table .......................................................................................................... 78
EFI_SYSTEM_TABLE......................................................................................... 78
4.4 EFI Boot Services Table ................................................................................................ 79
EFI_BOOT_SERVICES ...................................................................................... 80
4.5 EFI Runtime Services Table .......................................................................................... 84
EFI_RUNTIME_SERVICES ................................................................................ 84
4.6 EFI Configuration Table ................................................................................................. 86
Version 2.3.1, Errata A September 7, 2011 xvii
EFI_CONFIGURATION_TABLE ......................................................................... 86
4.7 Image Entry Point Examples........................................................................................... 88
4.7.1 Image Entry Point Examples............................................................................... 88
4.7.2 UEFI Driver Model Example ............................................................................... 89
4.7.3 UEFI Driver Model Example (Unloadable) .......................................................... 90
4.7.4 EFI Driver Model Example (Multiple Instances) .................................................. 91
5
GUID Partition Table (GPT) Disk Layout .................................................... 95
5.1 GPT and MBR disk layout comparison ........................................................................... 95
5.2 LBA 0 Format.................................................................................................................. 95
5.2.1 Legacy Master Boot Record (MBR) .................................................................... 95
5.2.2 OS Types ............................................................................................................ 97
5.2.3 Protective MBR ................................................................................................... 97
5.3 GUID Partition Table (GPT) Disk Layout ........................................................................ 99
5.3.1 GPT overview...................................................................................................... 99
5.3.2 GPT Header ...................................................................................................... 102
5.3.3 GPT Partition Entry Array.................................................................................. 104
6
Services — Boot Services ......................................................................... 107
6.1 Event, Timer, and Task Priority Services...................................................................... 108
CreateEvent() .................................................................................................... 112
CreateEventEx()................................................................................................ 116
CloseEvent()...................................................................................................... 120
SignalEvent()..................................................................................................... 121
WaitForEvent() .................................................................................................. 122
CheckEvent()..................................................................................................... 124
SetTimer() ......................................................................................................... 125
RaiseTPL() ........................................................................................................ 127
RestoreTPL()..................................................................................................... 129
6.2 Memory Allocation Services.......................................................................................... 129
AllocatePages() ................................................................................................. 133
FreePages() ...................................................................................................... 136
GetMemoryMap() .............................................................................................. 137
AllocatePool() .................................................................................................... 141
FreePool() ......................................................................................................... 142
6.3 Protocol Handler Services ............................................................................................ 142
InstallProtocolInterface() ................................................................................... 147
UninstallProtocolInterface() ............................................................................... 149
ReinstallProtocolInterface() ............................................................................... 151
RegisterProtocolNotify() .................................................................................... 153
LocateHandle().................................................................................................. 155
HandleProtocol() ............................................................................................... 157
LocateDevicePath()........................................................................................... 159
OpenProtocol() .................................................................................................. 161
CloseProtocol().................................................................................................. 168
OpenProtocolInformation() ................................................................................ 170
Unified Extensible Firmware Interface Specification
xviii September 7, 2011 Version 2.3.1, Errata A
ConnectController()........................................................................................... 172
DisconnectController()....................................................................................... 177
ProtocolsPerHandle() ........................................................................................ 179
LocateHandleBuffer() ........................................................................................ 181
LocateProtocol() ................................................................................................ 184
InstallMultipleProtocolInterfaces() ..................................................................... 185
UninstallMultipleProtocolInterfaces()................................................................. 186
6.4 Image Services ............................................................................................................. 186
LoadImage()...................................................................................................... 189
StartImage() ...................................................................................................... 192
UnloadImage()................................................................................................... 194
EFI_IMAGE_ENTRY_POINT ............................................................................ 195
Exit() .................................................................................................................. 197
ExitBootServices()............................................................................................. 199
6.5 Miscellaneous Boot Services ........................................................................................ 200
SetWatchdogTimer() ......................................................................................... 201
Stall() ................................................................................................................. 203
CopyMem()........................................................................................................ 204
SetMem()........................................................................................................... 205
GetNextMonotonicCount()................................................................................. 206
InstallConfigurationTable() ................................................................................ 207
CalculateCrc32() ............................................................................................... 209
7
Services — Runtime Services ................................................................... 211
7.1 Runtime Services Rules and Restrictions..................................................................... 212
7.1.1 Exception for Machine Check, INIT, and NMI. .................................................. 212
7.2 Variable Services .......................................................................................................... 213
GetVariable() ..................................................................................................... 215
GetNextVariableName() .................................................................................... 217
SetVariable() ..................................................................................................... 219
7.2.1 Using the EFI_VARIABLE_AUTHENTICATION_2 descriptor (Recommended).....
223
7.2.2 Using the EFI_VARIABLE_AUTHENTICATION descriptor .............................. 225
QueryVariableInfo() ........................................................................................... 228
7.2.3 Hardware Error Record Persistence ................................................................. 229
7.3 Time Services ...............................................................................................................230
GetTime() .......................................................................................................... 231
SetTime()........................................................................................................... 235
GetWakeupTime() ............................................................................................. 236
SetWakeupTime() ............................................................................................. 237
7.4 Virtual Memory Services ............................................................................................... 238
SetVirtualAddressMap() .................................................................................... 239
ConvertPointer() ................................................................................................ 241
7.5 Miscellaneous Runtime Services .................................................................................. 242
7.5.1 Reset System.................................................................................................... 242
ResetSystem()................................................................................................... 243
Version 2.3.1, Errata A September 7, 2011 xix
7.5.2 Get Next High Monotonic Count ....................................................................... 244
GetNextHighMonotonicCount() ......................................................................... 245
7.5.3 Update Capsule ................................................................................................ 246
UpdateCapsule() ............................................................................................... 247
QueryCapsuleCapabilities() .............................................................................. 253
8
Protocols — EFI Loaded Image................................................................. 255
8.1 EFI Loaded Image Protocol .......................................................................................... 255
EFI_LOADED_IMAGE_PROTOCOL ................................................................ 255
EFI_LOADED_IMAGE_PROTOCOL.Unload() ................................................. 258
8.2 EFI Loaded Image Device Path Protocol...................................................................... 258
EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL ..................................... 258
9
Protocols — Device Path Protocol ........................................................... 261
9.1 Device Path Overview................................................................................................... 261
9.2 EFI Device Path Protocol.............................................................................................. 261
EFI_DEVICE_PATH_PROTOCOL.................................................................... 261
9.3 Device Path Nodes ....................................................................................................... 262
9.3.1 Generic Device Path Structures........................................................................ 263
9.3.2 Hardware Device Path ...................................................................................... 264
9.3.3 ACPI Device Path ............................................................................................. 266
9.3.4 ACPI _ADR Device Path................................................................................... 268
9.3.5 Messaging Device Path .................................................................................... 269
9.3.6 Media Device Path ............................................................................................ 293
9.3.7 BIOS Boot Specification Device Path ............................................................... 296
9.4 Device Path Generation Rules...................................................................................... 297
9.4.1 Housekeeping Rules......................................................................................... 297
9.4.2 Rules with ACPI _HID and _UID....................................................................... 298
9.4.3 Rules with ACPI _ADR...................................................................................... 299
9.4.4 Hardware vs. Messaging Device Path Rules .................................................... 299
9.4.5 Media Device Path Rules.................................................................................. 299
9.4.6 Other Rules ....................................................................................................... 300
9.5 Device Path Utilities Protocol........................................................................................ 300
EFI_DEVICE_PATH_UTILITIES_PROTOCOL................................................. 300
EFI_DEVICE_PATH_UTILITIES_PROTOCOL.GetDevicePathSize() .............. 302
EFI_DEVICE_PATH_UTILITIES_PROTOCOL.DuplicateDevicePath() ............ 303
EFI_DEVICE_PATH_UTILITIES_PROTOCOL.AppendDevicePath()............... 304
EFI_DEVICE_PATH_UTILITIES_PROTOCOL.AppendDeviceNode() ............. 305
EFI_DEVICE_PATH_UTILITIES_PROTOCOL.AppendDevicePathInstance() . 306
EFI_DEVICE_PATH_UTILITIES_PROTOCOL.GetNextDevicePathInstance() 307
EFI_DEVICE_PATH_UTILITIES_PROTOCOL.CreateDeviceNode() ............... 308
EFI_DEVICE_PATH_UTILITIES_PROTOCOL.IsDevicePathMultiInstance() ... 309
9.6 EFI Device Path Display Format Overview................................................................... 309
9.6.1 Design Discussion............................................................................................. 309
9.6.2 Device Path to Text Protocol............................................................................. 326
EFI_DEVICE_PATH_TO_TEXT_PROTOCOL ................................................. 326
Unified Extensible Firmware Interface Specification
xx September 7, 2011 Version 2.3.1, Errata A
EFI_DEVICE_PATH_TO_TEXT_PROTOCOL.ConvertDeviceNodeToText()... 328
EFI_DEVICE_PATH_TO_TEXT_PROTOCOL.ConvertDevicePathToText().... 329
9.6.3 Device Path from Text Protocol ........................................................................ 330
EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL............................................ 330
EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL.ConvertTextToDeviceNode() ...
331
EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL.ConvertTextToDevicePath() ....
332
10
Protocols — UEFI Driver Model ................................................................ 333
10.1 EFI Driver Binding Protocol......................................................................................... 333
EFI_DRIVER_BINDING_PROTOCOL .............................................................. 333
EFI_DRIVER_BINDING_PROTOCOL.Supported() .......................................... 336
EFI_DRIVER_BINDING_PROTOCOL.Start() ................................................... 342
EFI_DRIVER_BINDING_PROTOCOL.Stop() ................................................... 351
10.2 EFI Platform Driver Override Protocol ........................................................................ 354
EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL..................................... 355
EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL.GetDriver().................. 357
EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL.GetDriverPath() .......... 359
EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL.DriverLoaded()............ 361
10.3 EFI Bus Specific Driver Override Protocol .................................................................. 362
EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL .............................. 362
EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL.GetDriver() ........... 364
10.4 EFI Driver Diagnostics Protocol .................................................................................. 365
EFI_DRIVER_DIAGNOSTICS2_PROTOCOL .................................................. 365
EFI_DRIVER_DIAGNOSTICS2_PROTOCOL.RunDiagnostics()...................... 367
10.5 EFI Component Name Protocol .................................................................................. 369
EFI_COMPONENT_NAME2_PROTOCOL....................................................... 369
EFI_COMPONENT_NAME2_PROTOCOL.GetDriverName() .......................... 371
EFI_COMPONENT_NAME2_PROTOCOL.GetControllerName() .................... 372
10.6 EFI Service Binding Protocol ...................................................................................... 373
EFI_SERVICE_BINDING_PROTOCOL............................................................ 373
EFI_SERVICE_BINDING_PROTOCOL.CreateChild() ..................................... 375
EFI_SERVICE_BINDING_PROTOCOL.DestroyChild().................................... 379
10.7 EFI Platform to Driver Configuration Protocol............................................................. 383
EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL .................. 384
EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL.Query() ..... 385
EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL.Response().....
387
10.7.1 DMTF SM CLP ParameterTypeGuid .............................................................. 389
10.8 EFI Driver Supported EFI Version Protocol ................................................................ 391
EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL............................. 391
10.9 EFI Driver Family Override Protocol ........................................................................... 391
10.9.1 Overview ......................................................................................................... 391
EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL ........................................... 392
EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL.GetVersion ()..................... 394
剩余2213页未读,继续阅读
点击了解资源详情
点击了解资源详情
点击了解资源详情
2009-05-31 上传
2020-05-14 上传
2010-02-11 上传
2020-07-02 上传
2021-04-02 上传
2018-05-19 上传
川河
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功