UEFI——HOB简单使用

HOB简介

HOB的全称是Hand-Off Block,用来存储交接的数据。

PEI是HOB的生成阶段,用来创建和修改HOB

DXE是HOB的消费阶段,用来使用HOB,此时HOB是只读的

【有博客说:SEC也可以作为HOB的生成阶段、BDS也可以作为HOB的消费阶段】

HOB在PEI阶段创建,并返回一个列表(称为HOB List,HOB列表),HOB堆叠放置在其中,最终形成如下形式:

HOB列表中的第一个必须是PHIT HOB,最后一个是End of HOB。HOB结构的实现分为三部分,PHIT头:描述HOB的起始位置和内存使用信息;

各种HOB列表,DXE从该列表上获取资源,传参为Hob Type和GUID;

最后是HOB结束部分。 

在UEFI(Unified Extensible Firmware Interface)启动过程中,HOB(Hand-Off Block)是一种数据结构,用于在不同的启动阶段之间传递信息。HOB可以包含不同类型的数据,如硬件描述符、内存描述符、处理器描述符等。
以下是UEFI启动过程中常见的HOB类型及其用途:

/// Union of all the possible HOB Types.
///
typedef union {
  EFI_HOB_GENERIC_HEADER                 *Header;
  EFI_HOB_HANDOFF_INFO_TABLE             *HandoffInformationTable;
  EFI_HOB_MEMORY_ALLOCATION              *MemoryAllocation;
  EFI_HOB_MEMORY_ALLOCATION_BSP_STORE    *MemoryAllocationBspStore;
  EFI_HOB_MEMORY_ALLOCATION_STACK        *MemoryAllocationStack;
  EFI_HOB_MEMORY_ALLOCATION_MODULE       *MemoryAllocationModule;
  EFI_HOB_RESOURCE_DESCRIPTOR            *ResourceDescriptor;
  EFI_HOB_GUID_TYPE                      *Guid;
  EFI_HOB_FIRMWARE_VOLUME                *FirmwareVolume;
  EFI_HOB_FIRMWARE_VOLUME2               *FirmwareVolume2;
  EFI_HOB_FIRMWARE_VOLUME3               *FirmwareVolume3;
  EFI_HOB_CPU                            *Cpu;
  EFI_HOB_MEMORY_POOL                    *Pool;
  EFI_HOB_UEFI_CAPSULE                   *Capsule;
  UINT8                                  *Raw;
} EFI_PEI_HOB_POINTERS;


这些HOB类型涵盖了UEFI启动过程中可能需要传递的各种信息。通过使用不同的HOB类型,UEFI启动过程可以确保正确地处理和存储HOB,并在需要时正确地使用它们。

上面的是HOB的种类,还有HOB的数据类型(存储于EFI_HOB_GENERIC_HEADER):


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值