UEFI HOB 学习

基本概念及用法

    HOB是Hand-offblock的缩写。是PEI阶段向DXE传递系统信息的手段。PEI阶段构建一些HOB结构,然后将其作为参数传给DXE阶段函数,DXE Core会根据其使用平台相关资源。

    HOB是系列的连续的内存结构体,可以认为其由三部分构成:第一部分,是PHIT头,它描述了HOB的起始地址以及总的内存使用;第二部分是各个Hob列表,DXE阶段会根据这一部分获取上关资源;第三部分是结束部分。

 Hob结构如上图所示;

通过PeiCreateHob 建立Hob,

 所有的Hob放在一段连续的内存里面,由一个以定义好的头去标识,这个头(header) 叫 Phase Handoff Information Table(PHIT). 我们把PHIT 和当前所有的hob  合在一起叫Hob list.,通过PeiCreatHob 查找当前Hob lis。

### UEFI HOB 导致无法开机的原因分析 HOB (Hand-Off Blocks) 是一种数据结构,用于在系统初始化期间传递信息给操作系统或其他软件组件。当遇到因 HOB 引起的无法开机问题时,通常是因为某些关键配置或硬件状态未能正确记录到 HOB 中[^1]。 对于此类问题,建议采取以下措施: #### 诊断工具的应用 利用主板制造商提供的专用调试工具来读取并解析当前系统的 HOB 数据。这些工具可以显示详细的启动过程日志以及任何潜在错误消息。如果官方未提供特定工具,则可考虑使用通用UEFI Shell环境下的命令行实用程序来进行初步排查。 #### BIOS/UEFI 设置调整 进入BIOS/UEFI设置界面,尝试重置为默认参数;关闭安全启动选项(Secure Boot),因为有时这会干扰正常的引导流程;确保CSM(兼容支持模块)处于适当的状态——对于纯64位UEFI系统而言应禁用此功能以防止加载旧版驱动造成冲突[^2]。 #### 更新固件版本 访问计算机厂商网站下载最新的BIOS/UEFI更新包,并按照说明完成升级操作。新版本往往修复了已知漏洞并且提高了稳定性,有助于解决由HOB引起的异常情况。 ```bash # 使用efibootmgr查看当前boot项(仅限Linux) sudo efibootmgr -v ``` #### 驱动程序验证 确认所有安装于目标平台上的设备驱动均遵循UEFI Driver Model标准开发,并且实现了必要的Protocol接口定义。不合规的第三方驱动可能会破坏正常的工作流而导致失败[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知秋贺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值