EFI 将启动顺序分成了很多阶段,PEI 和DXE 之间的跨度比较大,PEI 阶段是在RAM-limited 环境运行的,但DXE 阶段是在相对充足的内存空间上运行的。

在内存初始化之前,或者初始化内存的时候,PEI 收集了很多数据供后续的DXE 用,也就是说,有些数据需要从PEI 阶段传到DXE.

由于PEI 的运行受到内存的限制,所以需要一种稳定的机制去传输数据,即, 我们今天要说的HOB(Han Off Blocks).

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

PHIT的位置由GetHobList 这个系统服务区获得。

它的函数实现在hob.c :

如果我们想往hob list 里面追加一个HOB 那么是通过CreateHob 完成的。它的函数实现也是在hob.c 里面

85-88: 获取HOB 列表的起始地址

98: 调整HOB 的长度为8字节对齐。

100-101:计算当前可用的HOB数据块的空间。

110-113:  将hob 加到hob 列表最末端。

116: 将结束类型的hob 加到hob list 末尾用以表示HOB 列表结束。

118-112: 更新末端Hob节点的相关信息。

明明白白HOB hand-off Block相关推荐

  1. UEFI中PEI阶段Hob的描述

    转自: http://blog.csdn.net/cassienj/article/details/46892141 HOB:Hand-off Block 在PEI的执行过程中,PEI Phase提供 ...

  2. (转)UEFI系统的启动过程

    UEFI系统的启动过程(1) UEFI系统的启动遵循UEFI平台初始化(PlatformInitialization)标准.UEFI系统从加电到关机可分为7个阶段: SEC(安全验证)→PEI(EFI ...

  3. UEFI原理与编程实践--UEFI系统的启动过程

    看图粗略说一下: SEC: 安全验证阶段,这个阶段,需要用Assembly做一些 C 无法处理的工作,C语言无法处理CPU的特殊寄存器.让CPU进入Protected Mode(Flat Mode)的 ...

  4. UEFI之PEI阶段

    文章目录 一.PEI 简介 二.相关名词解释 三.PEI 流程 3.1 PEI执行顺序 3.2 PeiMain.inf 3.3 函数PeiCore() 四.PEIM 4.1 PEIM简介 4.2 PE ...

  5. UEFI原理与编程(一)

    第一章 UEFI概述(Unified Extensible Firmware Interface 统一的可扩展固件接口) 常见缩写及描述: 缩略词 全名 描述 UEFI Unified Extensi ...

  6. UEFI BIOS —— PEI阶段分析

    PEI(Pre-EFI Initialization) -预先EFI初始化)阶段 一.PEI 主要功能 PEI阶段资源依然十分有限,内存到了PEI后期才被初始化.其主要功能是为DXE准备执行环境,将需 ...

  7. UEFI系统的启动过程

    UEFI系统的启动遵循UEFI平台初始化(PlatformInitialization)标准.UEFI系统从加电到关机可分为7个阶段: SEC(安全验证)→PEI(EFI前期初始化)→DXE(驱动执行 ...

  8. HCIE-Cloud笔试

    前言: 目录按照HCIE-Cloud官方培训教材V2.0进行制定,通过笔试考点挂钩HCIE-Cloud官方培训教材V2.0中的知识,相互强化记忆 1.优点:基本笔试的知识分类,是按照该教材的目录大纲分 ...

  9. Python : IndentationError: expected an indented block

    如下图 运行包报错: IndentationError: expected an indented block 处理方法是 问题原因 1冒号后面要跟要写一些内容的, 2 其他位置,或多或少空格的位置不 ...

最新文章

  1. 面向对象设计原则_聊聊面向对象的6大设计原则
  2. celery 停止任务_celery异步任务框架
  3. 用python画烟花-用python做一个烟花show
  4. UI复习练习_优酷布局
  5. android sqlite 示例,android SQLite数据库使用示例
  6. 怎样才能有德国煤矿那样严密的安全网?
  7. C++:数字逆向输出
  8. 易语言数据类型与c 对照,易语言利用自定义数据类型和数组. 制作键对值操作类/内存配置...
  9. SpringBoot的MyBatis generator 注解方式和xml方式 (四)
  10. 《Linux编程》上机作业 ·002【Linux常用工具GCC、GDB、Make】
  11. java rbac 开源_java web快速开源开发框架RoubSite-admin
  12. Spark 学习笔记01
  13. 数模美赛论文Word模版_精装版(页码+目录+标题+修改须知)
  14. 遗传算法解决TSP问题
  15. 联想服务器win7系统安装教程,一键安装联想win7系统步骤指南
  16. LMS自适应波束形成算法(MATLAB)
  17. 100个最热门的国人开发开源软件
  18. 470万条12306用户信息遭泄露
  19. 第4章 点云的滤波与分类 4.1点云数据的过滤
  20. strcat、strcpy、strcmp三种函数用法

热门文章

  1. Android仿美团选择城市
  2. 杀软测评:2010年第四次“VB100”认证揭开谜底!
  3. 13种老人不适合带孩子_老人带小孩要注意的13种不恰当行为必须纠正!
  4. 计算机模拟育种,计算机模拟技术在动物遗传育种研究中应用.ppt
  5. WIN10 1903的更新失败的问题
  6. unitoy机器人怎么联网_unitoy智能机器人配网
  7. rimworld简单机器人mod_rimworld智能机器人MOD
  8. 广东省一本计算机学校排名,南方科技大学排名2021 广东排名第16全国排名第276...
  9. sofa启动的默认加载参数
  10. html语言br怎么用,HTML br 标签如何使用