UEFI Boot Flow 系列之PEI

BIOS追code之PEI phase SEC 阶段总述PEI阶段的功能任务:PEI划分:PEI阶段执行流程:PEI阶段执行流程描述及流程图 阶段总述 PEI(Pre-EFI Initialization,预先EFI初始化),虽然SEC阶段对CPU和CPU内的资源进行了初始化,但是PEI阶段可用的资源依旧十分有限,该阶段对内存进行初始化,主要功能是为DXE阶段准备执行环境,将所需要传递给DXE的信息组成HOB(Hand Off Block)列表,最终将控制权转交到DXE。 UEFI具有模块化设计的特点,PEI就是一个模块。PEI Image的入口 阅读详情

转自CeliaQianhj

PEI:Pre-EFI Initialization

为什么要有PEI Phase?

1. ROM空间的问题,所有的Code都没有压缩

2. Memory还没有初始化

3. Chipset没有初始化

PEI Phase的特性:

1. 在ROM上执行

2. 都是没有被压缩的代码

3. PEI Core与硬体没有关联

PEI Phase的任务:

1. 基本的Chipset初始化

2. Memory Sizing

3. BIOS Recovery

4. S3 Resume

5. 切换Stack到Memory (Disable CAR, Enable Cache)

6. 启动DXEIPL(DXE Initial Program Loader)

PEI Phase包含的两个部分:

1. 一个PEI Foundation,存在于BFV。

2. 一个或多个PEIMs(Pre-EFI Initialize Module),存在于FVs。

一、关于PEI Foundation

PEI Foundation存在于FV0(即BFV),它是在SEC阶段被发现并通过验证的,这也就允许PEI阶段能够确定FV文件有没有被破坏掉。

PEI Foundation负责:

1. Dispatching PEIM

2. Maintaining the boot mode

3. Initialize permanent memory

4. Invoking DXEIPL

PEI Services

PEI Foundation建立了一个system table叫做PEI Services Table,它对所有的PEIM都可见。PEI Services的分类有:

二、关于PEIM(Pre-EFI Initialization Modules)

PEIM就是一些可执行的二进制代码,它封装着一些关于Processor,chipset,device或者是平台相关的一些功能。由PEI Foundation负责来Dispatch这些PEIMs。

大部分的PEIM都存在于ROM上,它们是没有被压缩的,只有极少数的PEIM为了提高性能而存在于RAM上,是被压缩的。

因为PEI Phase存在的环境只有极少的Hardware Resource可用,且PEIM大都位于ROM上,所以强烈建议PEIM只做尽可能少的,不得不做的工作来满足DXE阶段执行的要求。

PPI(PEIM to PEIM Interface)

PEIM与PEIM沟通是通过PPI,即PEIM to PEIM Interface。PPIs包含在数据结构EFI_PEI_PPI_DESCRIPTOR中,由一个GUID和一个指针组成。

一个PEIM通过PEI Service InstallPPI()和ReinstallPPI()来发布一个有效的PPI到PPI Database;

其他的PEIM通过PEI Service LocatePPI()来找到相关的PPI。

PEI Phase 代码流程图

UEFI Boot Flow 系列之 SEC Phase 为什么要有SEC Phase? 1. 需要用汇编语言来完成C无法处理的工作,如C语言无法处理CPU的特殊寄存器(MSR,MTRR,CRX)。 2. C语言需要Memory当成Stack来处理Local 变数,而刚开机Memory还没有被初始化,还不可用,所以需要CAR(Cac 阅读详情

相关推荐

PI Boot Flow

Security (SEC) Phase The Security (SEC) phase is the first phase in the PI Architecture architecture and is responsible for the following: Handling all platform restart events Creating a temporary m...

daydayup_668819的博客 480

UEFI Boot Flow 系列之 PEI Phase

PEI:Pre-EFI Initialization 为什么要有PEI Phase? 1. ROM空间的问题,所有的Code都没有压缩 2. Memory还没有初始化 3. Chipset没有初始化 PEI Phase的特性: 1. 在ROM上执行 2. 都是没有被

1万+

AMI Aptio S3 Resume Flow 技术文档

S3(Suspend‑to‑RAM,挂起到内存)为ACPI规范定义的系统睡眠状态。系统进入S3睡眠时,绝大多数外设、芯片组模块断电,仅内存模块保持供电以保存系统上下文。系统唤醒时BIOS执行S3‑Resume唤醒恢复流程,该流程不会完整执行冷启动DXE初始化,而是通过BootScript脚本回放,恢复内存、PCI设备、IO端口寄存器状态,完成硬件恢复后切换实模式,把系统控制权交给操作系统唤醒向量。

u010881504的博客 189

简单了解UEFI 系统的启动过程

1

C学习 3389

2025华东杯A/B/C题解题思路+可运行代码参考

这些因素包括但不限于:助滑坡的坡度、运动员的质量、滑雪板的接触面与雪地的摩擦力、空气阻力系数、运动员的体型和衣物形态等。助滑坡是运动员滑行至起跳台前的最后一段坡道,这一段坡道的坡度、长度和运动员的姿势会直接影响到起跳时的初始速度。运动员的滑行速度不仅受助滑坡的坡度影响,还受到摩擦力、空气阻力和重力等多方面因素的影响。通过合理的姿势调整,运动员能够有效减少空气阻力,增加身体的重力加速度,进而提升滑行速度。助滑坡的角度通常介于10°到12°之间,而运动员的滑行速度将受到重力、摩擦力和空气阻力的共同作用。

qq_52590045的博客 1797

Windows系统下Mamba环境配置实战:从零到编译成功

本文详细记录了在Windows系统下从零开始配置Mamba深度学习环境的完整实战过程。针对官方不直接支持Windows的难点,文章提供了关键解决方案,包括安装特定版本的Python、PyTorch与第三方Triton,以及修改源码以解决Windows编译器的兼容性问题,最终成功编译并运行Mamba-SSM。

weixin_28842269的博客 500

UEFI BIOS —— PEI阶段分析

PEI(Pre-EFI Initialization) -预先EFI初始化)阶段 一、PEI 主要功能 PEI阶段资源依然十分有限,内存到了PEI后期才被初始化。其主要功能是为DXE准备执行环境,将需要传递给DXE的信息组成HOB(Handoff Block)列表,最终将控制权交给DXE。执行流程如下: 从功能上讲,PEI可分为两部分: PEI 内核 ( PEI Foundation ):负责PEI基础服务和流程。 PEIM ( PEI Module) 派遣器: a. 主要功能是找出系统中所有的 PE.

C学习 1万+

深信服桌面云实战:从零部署到高效运维的关键配置指南

本文提供了一份深信服桌面云从零部署到高效运维的实战指南。内容涵盖项目启动阶段的资源、网络与存储规划,详细演示了VMP与VDC平台的安装与对接,并深入讲解了制作虚拟机模板、配置用户体系、优化终端策略等核心步骤。最后,分享了包括CPU公平分配、智能调度在内的关键性能调优与高阶运维技巧,旨在帮助管理员构建稳定、高效的云桌面环境。

blockchain9miner的博客 451

UEFI PI部分study

//转入BIOS已近一年多,跟了2个案子 打杂&自学。没人带进步有些慢。一定要把这部分细节理解清晰。。。。。。 //先框架后细节 //ppi结构定义 EFI_PEI_PPI_DESCRIPTOR mPpiListCodePpi = { (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST), &gMyPEIGUID, &mPpi }; PeiServicesInstallPp...

Robins.lee_的博客 890

告别Keil4!手把手教你用Keil C51 V9.61编译51单片机代码(附最新激活方法)

本文详细介绍了Keil C51 V9.61在51单片机开发中的全栈升级指南,包括编译速度提升、调试器性能优化和现代开发支持等核心优势。通过智能安装方案、项目迁移实战和新特性深度应用,帮助开发者告别Keil4,大幅提升开发效率。附有最新激活方法和实用技巧,适用于嵌入式开发工程师。

weixin_26886855的博客 420

测试工程师玩转DeepSeek之Prompt

掌握这些提示词技巧,测试工程师可提升与DeepSeek的协作效率至少3倍。建议结合具体项目上下文进行二次优化,并建立团队内部的提示词知识共享库。✅ “为电商支付接口生成包含幂等性验证的测试用例,覆盖网络中断重试场景”❌ “帮我写测试用例”

weixin_44872675的博客 2262

UEFI Boot Flow系列之 概述

有图有真相: 1. SEC Phase (Security) 开机之后,系统开始执行第一条指令,此时就已经进入了SEC阶段。这时的Memory还没有被初始化,还不可用,所以这一阶段最主要的工作就是建立一些临时的Memory,它可以是处理器的Cache,或是system S

1万+

OV5640调试大坑,关于binning、RES分辨率与EV曝光

OV5640在使用binning模式时,必须考虑使用场景,分辨率下降叠加动态范围压缩,会使目标对象细节在高光环境下大量丢失,2x2的binning模式,分辨率会远低于感光面积的1/4。

chongyun_的专栏 1825

UEFI Boot Flow

有图有真相: 1. SEC Phase (Security) 开机之后,系统开始执行第一条指令,此时就已经进入了SEC阶段。这时的Memory还没有被初始化,还不可用,所以这一阶段最主要的工作就是建立一些临时的Memory,它可以是处理器的Cache,或是system Static RAM(SRAM)。并且使CPU进入Protect Mode。   另外,SEC Phase可以先天知道(P

cassienj的博客 3286

(持续更新中!)详解【计算机类&面试真题】军队文职考试 ——第二期(真题+解析)| 网络协议的三个核心要素;交互式系统中的非剥夺策略;中断和陷入的区别;可变分区管理中的硬件机制;数据库系统的优点

本篇博客将讨论军队文职面试(计算机类)的几个关键问题。我们将介绍网络协议的核心要素(帮助你理解网络通信的基本原理)、交互式系统中的非剥夺策略(解释为何这是一个优秀的策略以及其对用户体验、系统稳定性和可预测性的影响)、中断和陷入的区别(从引起原因、处理机制、权限级别和应用等方面进行阐述)、可变分区管理的硬件机制以及数据库系统与文件系统的优点比较。通过阅读本文,您将深入了解这些话题,为面试准备和实际应用提供有价值的知识。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 1707

数据服务:数据服务框架Magic-API 介绍及实践

接口快速开发框架 基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发 。在线页面快速开发平台 基于 vue 的在线页面快速开发平台,主要把所有的 vue 代码都改为在线配置,最终获得一个 json 格式的页面新一代爬虫平台 基于Java实现的新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。今天给大家安利一

GIS摆渡人 2063

UEFI Boot Flow 系列之 DXE Phase

DXE: Driver Execution Environment 为什么要有DXE Phase? 大部分系统的初始化工作都是在DXE 阶段实现的。 DXE Phase由以下几部分组成: 1. DXE Core (DXE Foundation)      产生一组Boot Services, Runtime Services, DXE Services。 由boot service co

1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

UEFI Boot Flow系列之DXE

转自CeliaQianhj DXE: Driver Execution Environment 为什么要有DXE Phase? 大部分系统的初始化工作都是在DXE 阶段实现的。 DXE Phase由以下几部分组成: 1. DXE Core (DXE Foundation)      产生一组Boot Services, Runtime Services, DXE Services。 由

LifeIce的专栏 2131

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

UEFI Boot Flow 系列之SEC

转自CeliaQianhj   为什么要有SEC Phase? 1. 需要用汇编语言来完成C无法处理的工作,如C语言无法处理CPU的特殊寄存器(MSR,MTRR,CRX)。 2. C语言需要Memory当成Stack来处理Local 变数,而刚开机Memory还没有被初始化,还不可用,所以需要CAR(Cache As Ram)的初始化。 3. 让CPU进入Protected Mode(F

LifeIce的专栏 1222

01_UEFI启动流程

UEFI 启动流程描述的是一台机器从上电到进入操作系统的完整生命周期。

2301_80214137的博客 259

UEFI Boot Flow 系列之概述

转自CeliaQianhj 有图有真相: 1. SEC Phase (Security) 开机之后,系统开始执行第一条指令,此时就已经进入了SEC阶段。这时的Memory还没有被初始化,还不可用,所以这一阶段最主要的工作就是建立一些临时的Memory,它可以是处理器的Cache,或是system Static RAM(SRAM)。并且使CPU进入Protect Mode。   另外,SE

LifeIce的专栏 1515
上一篇: UEFI Boot Flow 系列之SEC
下一篇: UEFI Boot Flow系列之DXE
LifeIce
博客等级 码龄14年 10粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值