BIOS初始化PEI至DXE阶段hob学习

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 :
BIOS初始化PEI至DXE阶段hob学习_第1张图片
如果我们想往hob list 里面追加一个HOB 那么是通过CreateHob 完成的。它的函数实现也是在hob.c 里面
BIOS初始化PEI至DXE阶段hob学习_第2张图片

你可能感兴趣的:(bios,bios)