Intel? Framework Architecture Specification·3 (Chapter3:Pre-EFI Initialization (PEI) Pha)2007-05-26 15:253 Pre-EFI Initialization (PEI) Pha
3.1 Introduction
辣炒年糕 Pre-EFI Initialization (PEI) pha 提供了标准化的method来loading 和 invoking 特定的初始 configuration routines for the processor, chipt, and motherboard. PEI pha的首要目的是初始化足够的系统来允许Driver Execution Environment (DXE) pha运作. 最基本的, PEI Pha要做到决定系统boot path;初始化并描述system RAM和firmware volume的最小值. Firmware volume包含了DXE Foundation 和 DXE Architectural Protocols.
3.1.1 Scope
PEI pha负责将系统初始化到足够提供一个稳定的基础给随后的pha, 还负责侦测和recovering from 出问题的firmware storage space.
2000年时代的PC刚开始执行时还是处于非常原始的状态, processor需要通过microcode做update, chipt需要做非常多的初始化动作, RAM需要sizing, location和其他初始化. PEI p
疫情防控主题班会教案据为己有的意思ha就负责初始化这些subsystem. 另外PEI还将提供一个简单的基础框架以供很容易的完成到DXE pha的转换. 换而言之, 它必须完成开始DXE所需要的最少的动作. H/W有改变时, 这些动作也有所改变.
3.1.2 Rationale 基本原理
PEI的设计本质上是一个微型版本的DXE, 以用来处理很多相同的issue. 组成:
- A PEI Foundation
怂的意思- One or more Pre-EFI Initialization Modules (PEIMs)
PEI Foundation的目的是为特殊的processor架构保留参数, 并支持来自各种processor, chipt, platform vendor的add-in module.
PEI与DXE不同, 因为DXE理所当然的认为system RAM都存在并可用. PEI则需认定只用有限的temporary RAM存在, 并且当permanent system RAM初始化完后可以重分配temporary RAM以供他用. 就本身而言, PEI并不像DXE那样有丰富的feature
3.1.3 Overview
PEI pha由foundation code和特殊的driver(PEIM)组成. Foundation code负责按连续的顺序分配plug-in, 并提供基本的rvice. 而PEIM则类似与DXE driver通常与要初始化的component对应. 预订的惯例是由component vendor来提供PEIM.
PEI pha的实现比其他pha更依赖于processor 架构. 特别是, 当processor在其初始化或准初始化状态能提供的resource越多, PEI环境就会越充足.
学校安全管理制度 3.2 Pha Prerequisites
下面的ction描述了成功完成PEI pha所必须的条件.
3.2.1 Temporary RAM
PEI foundation需要SEC pha初始化一段有最低限度容量的scratch pad RAM. 这段RAM可被PEI pha用来做data store直到system memory被完全初始化. Scratch pad RAM可以如同普通的system RAM一样访问, 比如通过FSB的memory cycle来读写. 在syste
m memory被完全初始化后, 这段临时的RAM可重配置做他用. 一种典型的实现方式就是用processor的内部cache来做.
3.2.2 Boot Firmware Volume
Boot Firmware Volume (BFV) 包括了PEI Foundation 和 PEIM. 它必须出现在系统的memory address space, 并不能有前置F/W插入. 其包含了ret vector.
BFV的内容遵循EFI flash file system的格式. Platform-specific PEIM要通知PEI foundation其他firmware volume的location, 以方便其寻找.
3.2.3 Security Primitives
SEC pha会提供interface给PEI foundation做鉴定操作. 为了继续保持root of trust, PEI foundation会用这个机制去鉴定各种PEIM.
3.3 Concepts
3.3.1 PEI Foundation
执行两个主要功能:
- Dispatching PEIMs
- Providing a t of common core rvices ud by PEIMs
PEI Dispatcher 的工作是按照顺序方式传递控制权给PEIM. 而common core rvices则是从头到尾的按照PEI Services Table提供服务.这些服务做的事情如下:
1. 协助PEIM-to-PEIM communication.北京深秋的故事
2. 简要的管理temporary RAM.
3. 提供通用functions来帮助PEIM做到:
- 在FFS中寻找其他file
- 报告status code
什么叫erp
- 为Framework的下一个pha准备handoff state
SEC pha完成后, SEC会调入PEI Foundation并提供以下参数给PEI:
- BFV的location和size, 以让PEI Foundation知道去哪里寻找PEIM的初始化套路.
- PEI pha可用的最小数量 temporary RAM
- 鉴定rvice callback以让PEI Foundation验证PEIM
PEI Foundation协助PEIM彼此沟通. PEI Foundation会maintain一个包含了PEIM注册接口的databa. 这些interface称为PEIM-to-PEIM Interface (PPI).
PEI Dispatcher由single pha组成. PEI Foundation会检查每个包含了PEIM类型file的 firmware volume. 它会检查每个firmware file里的dependency expression (depex) 来决定是否一个PEIM可以被执行.
烟台海军航空大学
3.3.2 Pre-EFI Initialization Modules (PEIMs)
PEIM是一些可执行的二进制码, 封装了processor, chipt, device或platform-specific 功能. PEIM提供了interface,其他PEIM或者PEI Foundation可通过interface与PEIM
或者H/W沟通以得知其PEIM概要. PEIM各自独立的built成二进制模块, 不压缩的放在ROM里. 出于performance考虑, 有一小部分PEIM存在并运行于RAM里. 这些PEIM是以压缩方式放在ROM里的.
3.3.3 PEI Services
PEI Foundation会建立一张PEI Service Table以供所有系统PEIM访问. 由于在build time 时,PEI Foundation的location和temporary RAM是未知的, 所以一个PEI Service Table的Pointer会传给每个PEIM的entry point和部分的PPI. PEI Foundation 提供了一下几种rvice:
PPI Services: 管理PPI以让PEIM之间的内部模块调用更容易. Interface装载和后续使用都在temporary RAM的databa中.
Boot Mode Services: 管理系统的boot mode (S3, S5, 普通boot, 诊断模式等)
HOB Services: 创建称为Hand-Off Blocks(HOBs)的数据结构, 被用来传递信息给下一个pha.
Firmware Volume Services: 根据firmware volume中的FFS来寻找PEIM和其他flash device中的firmware file.