没有合适的资源?快使用搜索试试~ 我知道了~
首页2011年UEFI Spec 2.3.1:BIOS平台的关键接口规范
2011年UEFI Spec 2.3.1:BIOS平台的关键接口规范
2星 需积分: 22 23 下载量 186 浏览量
更新于2024-07-30
1
收藏 9.76MB PDF 举报
UEFI(统一可扩展固件接口)规范是现代计算机硬件和操作系统启动过程中的关键组件,它定义了系统固件(BIOS)与硬件、操作系统以及用户界面之间的交互方式。2.3.1版本的UEFI Specification于2011年6月发布,反映了当时的技术发展和标准要求。
UEFI规范的核心目标是提供一个开放、灵活且安全的平台,以替代传统的BIOS(Basic Input/Output System),后者主要基于80x86汇编代码编写,难以支持现代高级功能。UEFI采用二进制可执行映像(Binary Execution Image, BEI)和引导加载程序(Boot Loader)模型,使得固件可以更高效地加载和管理操作系统,同时提供了更好的错误处理和安全性。
在2.3.1版本中,重要的变化可能包括:
1. **模块化设计**:UEFI规范强调模块化结构,允许开发人员构建自定义功能,比如安全启动(Secure Boot)、快速启动(Fast Boot)和虚拟化支持,这提升了系统的可定制性和兼容性。
2. **安全增强**:该版本可能增加了对安全特性的重视,如安全启动,确保只有来自信任源的签名驱动程序才能被加载,防止恶意软件入侵。
3. **高级功能**:UEFI 2.3.1可能引入了更多的高级功能,如UEFI Shell,这是一个命令行环境,方便用户进行低级系统操作和诊断。
4. **性能优化**:随着硬件的进步,该版本可能针对处理速度和能耗进行了优化,以适应新一代处理器和内存技术。
5. **标准一致性**:对于开发者来说,规范的标准化程度更高,意味着更多的文档和工具支持,有助于简化开发流程。
6. **预留和未定义区域**:规范中提到的“保留”和“未定义”区域表明,尽管UEFI提供了明确的功能和指令集,但仍有一些空间供未来的更新和扩展。
然而,需要注意的是,UEFI规范并不授予用户或开发者任何知识产权许可,而是作为“按现状”提供,且可能存在一定的风险,如潜在的病毒、不完整或错误的响应等。因此,在设计和使用UEFI时,设计师必须充分理解和处理这些限制,确保系统的可靠性和稳定性。
UEFI 2.3.1规范是一个里程碑式的文档,对现代计算机启动流程有着深远的影响,不仅提升了系统性能和安全性,也为未来硬件和软件的协同工作设定了新的标准。
Unified Extensible Firmware Interface Specification
xvi April 6, 2011 Version 2.3.1
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 April 6, 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 April 6, 2011 Version 2.3.1
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).....
222
7.2.2 Using the EFI_VARIABLE_AUTHENTICATION descriptor .............................. 224
QueryVariableInfo() ........................................................................................... 227
7.2.3 Hardware Error Record Persistence ................................................................. 228
7.3 Time Services ...............................................................................................................229
GetTime() .......................................................................................................... 230
SetTime()........................................................................................................... 234
GetWakeupTime() ............................................................................................. 235
SetWakeupTime() ............................................................................................. 236
7.4 Virtual Memory Services ............................................................................................... 237
SetVirtualAddressMap() .................................................................................... 238
ConvertPointer() ................................................................................................ 240
7.5 Miscellaneous Runtime Services .................................................................................. 241
7.5.1 Reset System.................................................................................................... 241
ResetSystem()................................................................................................... 242
Version 2.3.1 April 6, 2011 xix
7.5.2 Get Next High Monotonic Count ....................................................................... 243
GetNextHighMonotonicCount() ......................................................................... 244
7.5.3 Update Capsule ................................................................................................ 245
UpdateCapsule() ............................................................................................... 246
QueryCapsuleCapabilities() .............................................................................. 252
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 April 6, 2011 Version 2.3.1
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() ................................................... 350
10.2 EFI Platform Driver Override Protocol ........................................................................ 353
EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL..................................... 354
EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL.GetDriver().................. 356
EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL.GetDriverPath() .......... 358
EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL.DriverLoaded()............ 360
10.3 EFI Bus Specific Driver Override Protocol .................................................................. 361
EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL .............................. 361
EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL.GetDriver() ........... 363
10.4 EFI Driver Diagnostics Protocol .................................................................................. 364
EFI_DRIVER_DIAGNOSTICS2_PROTOCOL .................................................. 364
EFI_DRIVER_DIAGNOSTICS2_PROTOCOL.RunDiagnostics()...................... 366
10.5 EFI Component Name Protocol .................................................................................. 368
EFI_COMPONENT_NAME2_PROTOCOL....................................................... 368
EFI_COMPONENT_NAME2_PROTOCOL.GetDriverName() .......................... 370
EFI_COMPONENT_NAME2_PROTOCOL.GetControllerName() .................... 371
10.6 EFI Service Binding Protocol ...................................................................................... 372
EFI_SERVICE_BINDING_PROTOCOL............................................................ 372
EFI_SERVICE_BINDING_PROTOCOL.CreateChild() ..................................... 374
EFI_SERVICE_BINDING_PROTOCOL.DestroyChild().................................... 378
10.7 EFI Platform to Driver Configuration Protocol............................................................. 382
EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL .................. 383
EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL.Query() ..... 384
EFI_PLATFORM_TO_DRIVER_CONFIGURATION_PROTOCOL.Response().....
386
10.7.1 DMTF SM CLP ParameterTypeGuid .............................................................. 388
10.8 EFI Driver Supported EFI Version Protocol ................................................................ 390
EFI_DRIVER_SUPPORTED_EFI_VERSION_PROTOCOL............................. 390
10.9 EFI Driver Family Override Protocol ........................................................................... 390
10.9.1 Overview ......................................................................................................... 390
EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL ........................................... 391
EFI_DRIVER_FAMILY_OVERRIDE_PROTOCOL.GetVersion ()..................... 393
剩余2209页未读,继续阅读
207 浏览量
343 浏览量
330 浏览量
827 浏览量
2024-11-04 上传
389 浏览量
jackywu1010
- 粉丝: 39
- 资源: 35
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Meets:具有AI集成的下一代社交计划应用程序。 华盛顿大学202021冬季编码训练营最佳UX和UI设计奖以及“人民选择奖”
- katie
- Macrobond:Macrobond API的非官方熊猫包装
- Django-2.0.13.tar.gz
- pdf_converter
- Drawing:代码使草图软件中的手指绘图应用程序
- ec2recovery
- 转换tfrecord代码.zip
- qbaka-angular:Qbaka 的 Angular 插件
- Jukebox:TERA工具箱模块,可让您使用便携式自动点唱机在任何地方收听一些很棒的音乐!
- Android仿微信摇骰子游戏
- Oh Remind Me!-crx插件
- IBM x3650 m2网卡驱动32位 for win2003/2008 32位
- 控制任何外部IE内核浏览器-易语言
- ratings-api:在Redis上构建评级API的简单实现示例
- System-programming
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功