没有合适的资源?快使用搜索试试~ 我知道了~
首页UEFI Spec 2.3:详解2009年统一可扩展固件接口规范
UEFI Spec 2_3是关于统一可扩展固件接口(Unified Extensible Firmware Interface, UEFI)的最新规格版本,发布于2009年5月。这个文档详尽地阐述了UEFI规范的核心内容和设计原则,旨在提供一个标准化的方式来管理和控制现代计算机启动过程中的硬件与操作系统交互。
UEFI是一个开放的平台接口,它替代了传统的BIOS(Basic Input/Output System),在高级别的计算机启动过程中扮演着关键角色。UEFI的主要目标是提高系统的安全性和效率,支持64位操作,简化固件升级,并且优化电源管理。版本2.3包含了以下要点:
1. **知识产权声明**:文档中的内容并非对作者或开发者所拥有的知识产权的许可,而是以“原样”(AS-IS)的形式提供的。所有使用该文档需遵守适用法律,并明确指出该文档可能存在的错误、缺陷或未定义的功能,不提供任何形式的默示保证,包括但不限于质量保证、适销性、特定用途的适用性等。
2. **功能保留和未定义**:UEFI规范中可能会有一些特征或指令标记为“保留”或“未定义”,这表明它们在未来可能会被利用,但当前并不强制实施。设计师在使用时需谨慎,不应依赖这些预留功能或指令。
3. **适配性与兼容性**:随着技术发展,UEFI 2.3确保与各种硬件平台的兼容性,同时支持新出现的硬件特性。这对于硬件制造商和系统设计师来说,意味着他们需要确保他们的产品在UEFI环境下能够正常工作,并且遵循规范以保证互操作性。
4. **安全增强**:UEFI 2.3特别强调安全性,通过加密技术和安全引导流程,提高了系统抵御恶意代码的能力。这包括安全启动、TPM(Trusted Platform Module)集成以及固件更新的安全管理。
5. **性能优化**:UEFI的设计目标之一是提升启动速度和系统性能,通过改进引导加载流程、减少不必要的代码执行以及优化I/O操作,从而提高用户体验。
6. **更新和维护**:作为2.3版本,此规格反映了当时的最佳实践和标准,但随着时间的推移,后续版本可能会引入更多功能和改进,用户应关注最新的UEFI规范以保持与行业的同步。
UEFI Spec 2_3是现代计算机系统设计者和开发者不可或缺的参考资料,它定义了如何构建一个高效、安全、可升级的固件环境,以便在快速发展的硬件和技术背景下保持兼容性和竞争力。
Unified Extensible Firmware Interface Specification
xvi May, 2009 Version 2.3
EFI_GRAPHICS_OUTPUT_PROTOCOL ......................................................... 441
EFI_GRAPHICS_OUTPUT_PROTOCOL.QueryMode()................................... 446
EFI_GRAPHICS_OUTPUT_PROTOCOL.SetMode() ....................................... 448
EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt() ................................................. 449
EFI_EDID_DISCOVERED_PROTOCOL .......................................................... 451
EFI_EDID_ACTIVE_PROTOCOL ..................................................................... 452
EFI_EDID_OVERRIDE_PROTOCOL ............................................................... 453
EFI_EDID_OVERRIDE_PROTOCOL.GetEdid()............................................... 454
11.10 Rules for PCI/AGP Devices ...................................................................................... 455
12
Protocols - Media Access .......................................................................... 459
12.1 Load File Protocol ....................................................................................................... 459
EFI_LOAD_FILE_PROTOCOL ......................................................................... 459
EFI_LOAD_FILE_PROTOCOL.LoadFile() ........................................................ 460
12.2 Load File 2 Protocol .................................................................................................... 461
EFI_LOAD_FILE2_PROTOCOL ....................................................................... 461
EFI_LOAD_FILE2_PROTOCOL.LoadFile() ...................................................... 463
12.3 File System Format..................................................................................................... 464
12.3.1 System Partition .............................................................................................. 464
12.3.2 Partition Discovery .......................................................................................... 466
12.3.3 Number and Location of System Partitions..................................................... 468
12.3.4 Media Formats ................................................................................................ 468
12.4 Simple File System Protocol ....................................................................................... 470
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL ..................................................... 470
EFI_SIMPLE_FILE SYSTEM_PROTOCOL.OpenVolume().............................. 472
12.5 EFI File Protocol ......................................................................................................... 473
EFI_FILE_PROTOCOL ..................................................................................... 473
EFI_FILE_PROTOCOL.Open()......................................................................... 475
EFI_FILE_PROTOCOL.Close() ........................................................................ 478
EFI_FILE_PROTOCOL.Delete() ....................................................................... 479
EFI_FILE_PROTOCOL.Read() ......................................................................... 480
EFI_FILE_PROTOCOL.Write() ......................................................................... 482
EFI_FILE_PROTOCOL.SetPosition() ............................................................... 483
EFI_FILE_PROTOCOL.GetPosition() ............................................................... 484
EFI_FILE_PROTOCOL.GetInfo()...................................................................... 485
EFI_FILE_PROTOCOL.SetInfo() ...................................................................... 487
EFI_FILE_PROTOCOL.Flush()......................................................................... 489
EFI_FILE_INFO................................................................................................. 489
EFI_FILE_SYSTEM_INFO................................................................................ 491
EFI_FILE_SYSTEM_VOLUME_LABEL ............................................................ 492
12.6 Tape Boot Support...................................................................................................... 492
12.6.1 Tape I/O Support............................................................................................. 492
12.6.2 Tape I/O Protocol ............................................................................................ 493
EFI_TAPE_IO_PROTOCOL ............................................................................. 493
EFI_TAPE_IO_PROTOCOL.TapeRead() ......................................................... 495
EFI_TAPE_IO_PROTOCOL.TapeWrite() ......................................................... 497
May, 2009
EFI_TAPE_IO_PROTOCOL.TapeRewind()...................................................... 499
EFI_TAPE_IO_PROTOCOL.TapeSpace()........................................................ 500
EFI_TAPE_IO_PROTOCOL.TapeWriteFM() .................................................... 502
EFI_TAPE_IO_PROTOCOL.TapeReset() ........................................................ 503
12.6.3 Tape Header Format....................................................................................... 503
12.7 Disk I/O Protocol ......................................................................................................... 505
EFI_DISK_IO_PROTOCOL .............................................................................. 505
EFI_DISK_IO_PROTOCOL.ReadDisk() ........................................................... 507
EFI_DISK_IO_PROTOCOL.WriteDisk()............................................................ 508
12.8 EFI Block I/O Protocol................................................................................................. 509
EFI_BLOCK_IO_PROTOCOL........................................................................... 509
EFI_BLOCK_IO_PROTOCOL.Reset().............................................................. 512
EFI_BLOCK_IO_PROTOCOL.ReadBlocks() .................................................... 513
EFI_BLOCK_IO_PROTOCOL.WriteBlocks() .................................................... 515
EFI_BLOCK_IO_PROTOCOL.FlushBlocks().................................................... 517
12.9 Unicode Collation Protocol.......................................................................................... 517
EFI_UNICODE_COLLATION_PROTOCOL...................................................... 517
EFI_UNICODE_COLLATION_PROTOCOL.StriColl()....................................... 520
EFI_UNICODE_COLLATION_PROTOCOL.MetaiMatch()................................ 521
EFI_UNICODE_COLLATION_PROTOCOL.StrLwr()........................................ 523
EFI_UNICODE_COLLATION_PROTOCOL.StrUpr()........................................ 524
EFI_UNICODE_COLLATION_PROTOCOL.FatToStr() .................................... 525
EFI_UNICODE_COLLATION_PROTOCOL.StrToFat() .................................... 526
12.10 ATA Pass Thru Protocol ........................................................................................... 527
EFI_ATA_PASS_THRU_PROTOCOL .............................................................. 527
EFI_ATA_PASS_THRU_PROTOCOL.PassThru() ........................................... 530
EFI_ATA_PASS_THRU_PROTOCOL.GetNextPort()....................................... 537
EFI_ATA_PASS_THRU_PROTOCOL.GetNextDevice() .................................. 538
EFI_ATA_PASS_THRU_PROTOCOL.BuildDevicePath() ................................ 540
EFI_ATA_PASS_THRU_PROTOCOL.GetDevice().......................................... 542
EFI_ATA_PASS_THRU_PROTOCOL.ResetPort()........................................... 544
EFI_ATA_PASS_THRU_PROTOCOL.ResetDevice() ...................................... 545
13
Protocols - PCI Bus Support ..................................................................... 547
13.1 PCI Root Bridge I/O Support....................................................................................... 547
13.1.1 PCI Root Bridge I/O Overview ........................................................................ 547
13.2 PCI Root Bridge I/O Protocol ...................................................................................... 552
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL..................................................... 552
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.PollMem() ................................... 560
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.PollIo() ........................................ 562
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Mem.Read()
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Mem.Write().......................... 564
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Io.Read()
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Io.Write()............................... 566
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Pci.Read()
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Pci.Write()............................. 568
Unified Extensible Firmware Interface Specification
xviii May, 2009 Version 2.3
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.CopyMem() ................................ 570
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Map() .......................................... 572
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Unmap()...................................... 574
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.AllocateBuffer()........................... 575
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.FreeBuffer() ................................ 577
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Flush() ........................................ 578
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.GetAttributes() ............................ 579
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.SetAttributes()............................. 581
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.Configuration()............................ 583
13.2.1 PCI Root Bridge Device Paths ........................................................................ 584
13.3 PCI Driver Model......................................................................................................... 587
13.3.1 PCI Driver Initialization.................................................................................... 587
13.3.2 PCI Bus Drivers............................................................................................... 590
13.3.3 PCI Device Drivers.......................................................................................... 595
13.4 EFI PCI I/O Protocol ................................................................................................... 596
EFI_PCI_IO_PROTOCOL................................................................................. 597
EFI_PCI_IO_PROTOCOL.PollMem() ............................................................... 607
EFI_PCI_IO_PROTOCOL.PollIo() .................................................................... 609
EFI_PCI_IO_PROTOCOL.Mem.Read()
EFI_PCI_IO_PROTOCOL.Mem.Write() ...................................................... 611
EFI_PCI_IO_PROTOCOL.Io.Read()
EFI_PCI_IO_PROTOCOL.Io.Write() ........................................................... 613
EFI_PCI_IO_PROTOCOL.Pci.Read()
EFI_PCI_IO_PROTOCOL.Pci.Write() ......................................................... 615
EFI_PCI_IO_PROTOCOL.CopyMem() ............................................................ 617
EFI_PCI_IO_PROTOCOL.Map() ..................................................................... 620
EFI_PCI_IO_PROTOCOL.Unmap().................................................................. 622
EFI_PCI_IO_PROTOCOL.AllocateBuffer() ....................................................... 623
EFI_PCI_IO_PROTOCOL.FreeBuffer() ............................................................ 625
EFI_PCI_IO_PROTOCOL.Flush()..................................................................... 626
EFI_PCI_IO_PROTOCOL.GetLocation().......................................................... 627
EFI_PCI_IO_PROTOCOL.Attributes() .............................................................. 628
EFI_PCI_IO_PROTOCOL.GetBarAttributes()................................................... 631
EFI_PCI_IO_PROTOCOL.SetBarAttributes() ................................................... 634
13.4.1 PCI Device Paths ........................................................................................... 635
13.4.2 PCI Option ROMs ........................................................................................... 637
13.4.3 Nonvolatile Storage......................................................................................... 642
13.4.4 PCI Hot-Plug Events ....................................................................................... 643
14
Protocols — SCSI Driver Models and Bus Support ................................ 645
14.1 SCSI Driver Model Overview ...................................................................................... 645
14.2 SCSI Bus Drivers ........................................................................................................ 646
14.2.1 Driver Binding Protocol for SCSI Bus Drivers ................................................. 646
14.2.2 SCSI Enumeration .......................................................................................... 647
14.3 SCSI Device Drivers ................................................................................................... 647
14.3.1 Driver Binding Protocol for SCSI Device Drivers ............................................ 647
May, 2009
14.4 EFI SCSI I/O Protocol ................................................................................................. 648
EFI_SCSI_IO_PROTOCOL .............................................................................. 648
EFI_SCSI_IO_PROTOCOL.GetDeviceType() .................................................. 650
EFI_SCSI_IO_PROTOCOL.GetDeviceLocation()............................................. 652
EFI_SCSI_IO_PROTOCOL.ResetBus() ........................................................... 653
EFI_SCSI_IO_PROTOCOL.ResetDevice()....................................................... 654
EFI_SCSI_IO_PROTOCOL.ExecuteScsiCommand()....................................... 655
14.5 SCSI Device Paths ..................................................................................................... 659
14.5.1 SCSI Device Path Example ............................................................................ 659
14.5.2 ATAPI Device Path Example .......................................................................... 660
14.5.3 Fibre Channel Device Path Example .............................................................. 661
14.5.4 InfiniBand Device Path Example..................................................................... 662
14.6 SCSI Pass Thru Device Paths ................................................................................... 663
14.7 Extended SCSI Pass Thru Protocol............................................................................ 665
EFI_EXT_SCSI_PASS_THRU_PROTOCOL.................................................... 666
EFI_EXT_SCSI_PASS_THRU_PROTOCOL.PassThru()................................. 669
EFI_EXT_SCSI_PASS_THRU_PROTOCOL.GetNextTargetLun()................... 675
EFI_EXT_SCSI_PASS_THRU_PROTOCOL.BuildDevicePath()...................... 677
EFI_EXT_SCSI_PASS_THRU_PROTOCOL.GetTargetLun() .......................... 679
EFI_EXT_SCSI_PASS_THRU_PROTOCOL.ResetChannel() ......................... 681
EFI_EXT_SCSI_PASS_THRU_PROTOCOL.ResetTargetLun() ...................... 682
EFI_EXT_SCSI_PASS_THRU_PROTOCOL.GetNextTarget()......................... 684
15
Protocols - iSCSI Boot ............................................................................... 687
15.1 Overview ..................................................................................................................... 687
15.1.1 iSCSI UEFI Driver Layering ............................................................................ 687
15.2 EFI iSCSI Initiator Name Protocol............................................................................... 687
EFI_ISCSI_INITIATOR_NAME_PROTOCOL ................................................... 687
EFI_ISCSI_INITIATOR_NAME_PROTOCOL. Get()......................................... 689
EFI_ISCSI_INITIATOR_NAME_PROTOCOL.Set() .......................................... 690
16
Protocols — USB Support ......................................................................... 691
16.1 USB2 Host Controller Protocol ................................................................................... 691
16.1.1 USB Host Controller Protocol Overview.......................................................... 691
EFI_USB2_HC_PROTOCOL ............................................................................ 691
EFI_USB2_HC_PROTOCOL.GetCapability() ................................................... 694
EFI_USB2_HC_PROTOCOL.Reset() ............................................................... 696
EFI_USB2_HC_PROTOCOL.GetState() .......................................................... 698
EFI_USB2_HC_PROTOCOL.SetState()........................................................... 700
EFI_USB2_HC_PROTOCOL.ControlTransfer()................................................ 702
EFI_USB2_HC_PROTOCOL.BulkTransfer() .................................................... 705
EFI_USB2_HC_PROTOCOL.AsyncInterruptTransfer() .................................... 708
EFI_USB2_HC_PROTOCOL.SyncInterruptTransfer()...................................... 711
EFI_USB2_HC_PROTOCOL.IsochronousTransfer()........................................ 713
EFI_USB2_HC_PROTOCOL.AsyncIsochronousTransfer().............................. 716
EFI_USB2_HC_PROTOCOL.GetRootHubPortStatus().................................... 718
Unified Extensible Firmware Interface Specification
xx May, 2009 Version 2.3
EFI_USB2_HC_PROTOCOL.SetRootHubPortFeature() .................................. 722
EFI_USB2_HC_PROTOCOL.ClearRootHubPortFeature()............................... 724
16.2 USB Driver Model ....................................................................................................... 725
16.2.1 Scope .............................................................................................................. 725
16.2.2 USB Bus Driver ............................................................................................... 726
16.2.3 USB Device Driver .......................................................................................... 727
16.2.4 USB I/O Protocol............................................................................................. 728
EFI_USB_IO_PROTOCOL ............................................................................... 728
EFI_USB_IO_PROTOCOL.UsbControlTransfer()............................................. 731
EFI_USB_IO_PROTOCOL.UsbBulkTransfer() ................................................. 734
EFI_USB_IO_PROTOCOL.UsbAsyncInterruptTransfer() ................................. 736
EFI_USB_IO_PROTOCOL.UsbSyncInterruptTransfer()................................... 740
EFI_USB_IO_PROTOCOL.UsbIsochronousTransfer()..................................... 742
EFI_USB_IO_PROTOCOL.UsbAsyncIsochronousTransfer()........................... 744
EFI_USB_IO_PROTOCOL.UsbGetDeviceDescriptor() .................................... 746
EFI_USB_IO_PROTOCOL.UsbGetConfigDescriptor() ..................................... 748
EFI_USB_IO_PROTOCOL.UsbGetInterfaceDescriptor() ................................. 750
EFI_USB_IO_PROTOCOL.UsbGetEndpointDescriptor() ................................. 752
EFI_USB_IO_PROTOCOL.UsbGetStringDescriptor() ...................................... 754
EFI_USB_IO_PROTOCOL.UsbGetSupportedLanguages() ............................. 755
EFI_USB_IO_PROTOCOL.UsbPortReset()...................................................... 756
17
Protocols - Debugger Support .................................................................. 757
17.1 Overview ..................................................................................................................... 757
17.2 EFI Debug Support Protocol ....................................................................................... 758
17.2.1 EFI Debug Support Protocol Overview ........................................................... 758
EFI_DEBUG_SUPPORT_PROTOCOL ............................................................ 758
EFI_DEBUG_SUPPORT_PROTOCOL.GetMaximumProcessorIndex()........... 761
EFI_DEBUG_SUPPORT_PROTOCOL.RegisterPeriodicCallback()................. 762
EFI_DEBUG_SUPPORT_PROTOCOL.RegisterExceptionCallback() .............. 769
EFI_DEBUG_SUPPORT_PROTOCOL.InvalidateInstructionCache()............... 773
17.3 EFI Debugport Protocol .............................................................................................. 774
17.3.1 EFI Debugport Overview................................................................................. 774
EFI_DEBUGPORT_PROTOCOL...................................................................... 774
EFI_DEBUGPORT_PROTOCOL.Reset() ......................................................... 776
EFI_DEBUGPORT_PROTOCOL.Write() .......................................................... 777
EFI_DEBUGPORT_PROTOCOL.Read().......................................................... 778
EFI_DEBUGPORT_PROTOCOL.Poll() ............................................................ 779
17.3.2 Debugport Device Path ................................................................................... 779
17.3.3 EFI Debugport Variable................................................................................... 780
17.4 EFI Debug Support Table ........................................................................................... 781
17.4.1 Overview ......................................................................................................... 781
17.4.2 EFI System Table Location ............................................................................. 782
17.4.3 EFI Image Info................................................................................................. 782
剩余2089页未读,继续阅读
点击了解资源详情
点击了解资源详情
点击了解资源详情
2010-09-29 上传
2022-09-21 上传
2021-03-29 上传
2018-04-04 上传
2012-11-30 上传
2009-05-31 上传
qingshi_2008
- 粉丝: 1
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Cucumber-JVM模板项目快速入门教程
- ECharts打造公司组织架构可视化展示
- DC Water Alerts 数据开放平台介绍
- 图形化编程打造智能家居控制系统
- 个人网站构建:使用CSS实现风格化布局
- 使用CANBUS控制LED灯柱颜色的Matlab代码实现
- ACTCMS管理系统安装与更新教程
- 快速查看IP地址及地理位置信息的View My IP插件
- Pandas库助力数据分析与编程效率提升
- Python实现k均值聚类音乐数据可视化分析
- formdotcom打造高效网络表单解决方案
- 仿京东套餐购买列表源码DYCPackage解析
- 开源管理工具orgParty:面向PartySur的多功能应用程序
- Flutter时间跟踪应用Time_tracker入门教程
- AngularJS实现自定义滑动项目及动作指南
- 掌握C++编译时打印:compile-time-printer的使用与原理
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功