UEFI Boot Flow系列之DXE

BIOS追Code之BDS phase ->TSL->RT->AL 综述 BDS 的全称是启动设备选择(Boot Device Select), DXE 阶段最终会调用BDS ARCH protocol 的接口EFI_BDS_ARCH_PROTOCOL.Entry() 转入BDS阶段。BDS 阶段负责加载额外的驱动,与用户交互,必要的硬件初始化,并转入操作系统。 EFI的引导顺序包括以下内容: 平台固件从全局定义的NVRAM变量中读取boot order 引导顺序列表,引导顺序列表定义了一个NVRAM变量列表,其中包含要引导的信息。每个NVRAM变量为引导选项定义一个Uni 阅读详情

转自CeliaQianhj

DXE: Driver Execution Environment

为什么要有DXE Phase?

大部分系统的初始化工作都是在DXE 阶段实现的。

DXE Phase由以下几部分组成:

1. DXE Core (DXE Foundation)

     产生一组Boot Services, Runtime Services, DXE Services。 由boot service code组成,boot到OS之后就不存在了。

2. DXE Dispatcher

    负责发现并以正确的顺序执行DXE Drivers。

3. DXE Drivers

    负责初始化CPU,Chipset,系统组件以及为Sysem Services、控制台和启动设备提供系统概要。

这几部分协同工作以完成platform的初始化,并提供启动到操作系统所要求的services.

DXE Phase与PEI Phase的关系:

可以执行DXE Phase的唯一的条件是:有一个有效的HOB List。 有很多种方式产生HOB List, PEI只是其中一种。所以DXE Phase之前并不要求一定先执行PEI Phase。

DXE Phase与BDS Phase的关系:

DXE Phase与BDS Phase协同工作以建立工作台并尝试boot OS。当OS成功启动,即BDS Phase开始的时候,DXE Phase就结束了。

DXE Driver 的分类:

1. Early DXE Driver--Platform initialization Drivers

       a. 在DXE Phase最早执行的Driver

       b. 包含Dependency Expression Syntax(DEPEX) 来描述Dispatch的顺序。

       c. 典型的包含:

              Basic Services

              Processor Initialization Code

              Chipset Initialization Code

              Platform Initialization Code

       d. 产生Architectural Protocols

2. EFI Drivers that follow EFI Driver Model

        a. 初始化的过程中不会涉及到硬件

        b. Follow EFI Driver Model

        c. 典型的提供对Console Devices 和 Boot Devices的访问

        d. Abstract Bus Controller

        e. 只有Boot OS 所需要的Driver才被初始化

        f. DXE Dispather完成的时候才被呼叫

        g. 像个Driver一样被执行

        h. 需要建立控制台(Keyboard,Video)和处理EFI Boot Option(Boots OS)的时候要连接EFI Drivers

 

DXE-------Driver Execution Environment (执行驱动环境)详解 DXE是在PEI阶段之后的下一个阶段。它实现了驱动环境的搭建(UEFI第三阶段)。DXE阶段执行了大量的系统初始化工作,在PEI的基础上,进入此阶段时,内存已经可以被完全使用,因此此阶段可以进行大量复杂的工作。DXE驱动之间通过Protocol通信。当所有的Driver都执行完毕后,系统完成初始化,接着会执行一个特殊的DXE Driver 的Protocol进而进入BDS阶段。从本质上讲,BDS是一种特殊的DXE阶段的应用程序。整体流程DxeMain是DXE阶段执行的主函数,入口函数。 阅读详情

相关推荐

UEFI Boot Flow 系列之 BDS Phase

BDS: Boot Device Select  BDS阶段的任务: 1. Initialize console devices base on the ConIn, ConOut and StdErr environment variables. 2. Attempt to load all drivers listed in the Driver#### and DriverOrder

1万+

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万+

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

BIOS追code之DXE phase

DXE Phase综述执行流程图涉及元件及功能protocol介绍Protocol实现方式DXE architecture protocol种类及其功能DxeMain() 综述 DXE ( Driver Execution Environment)阶段执行大部分系统初始化工作,进人此阶段时, 内存已经可以被完全使用,因而此阶段可以进行大量的复杂工作。从程序设计的角度讲, DXE阶段与PEI阶段相似,由于最终的OS 是64位的,所以要引导和启动OS就需要相应的64位环境同时从该阶段开始memory可用空间变多

这里是为我所统率的战场 1万+

AMI Aptio S3 Resume Flow 技术文档

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

u010881504的博客 189

入门UEFI

UEFI基础学习,入门资料。

大猫的博客 2859

UEFI Boot Flow系列之 概述

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

1万+

使用Anaconda和conda快速搭建YOLO开发环境

本文详细介绍了如何使用Anaconda和conda为YOLO目标检测项目快速搭建独立、纯净的开发环境。通过创建虚拟环境,有效解决了Python包版本冲突和CUDA兼容性问题,并指导安装GPU版PyTorch等核心依赖,最后通过验证脚本确保环境配置成功,为YOLO开发提供了稳定可靠的基础。

weixin_28829629的博客 163

UEFI Boot Flow

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

cassienj的博客 3286

[XJTUSE DATABASE]——第三章 关系数据库标准语言SQL

新年了,来个大的,写了好几天,将近9000字,希望对大家有所帮助

weixin_47692652的博客 3120

AD9371实战:如何用ZCU106搭建JESD204B TX时钟链(含关键参数计算)

本文详细解析了如何基于Xilinx ZCU106开发板为AD9371搭建JESD204B TX时钟链。文章从系统需求出发,逐步推导出从IQ采样率到GTH线速率的关键参数计算公式,并提供了在Vivado中配置GTH收发器(包括QPLL选择、分频比设置)的实战步骤与调试技巧,旨在帮助硬件工程师快速实现稳定可靠的JESD204B高速数据传输链路。

weixin_29164843的博客 293

UEFI Boot Flow 系列之 PEI Phase

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

1万+

abaqus wcm插件下载_Abaqus随机短纤维增强复合材料建模插件

文末附Abaqus随机短纤维增强复合材料建模插件下载链接前言短纤维增强复合材料相对于长纤维增强复合材料来说更容易制备,且短纤维的填充性能略有改善,可制造复杂产品,广泛应用于车辆、航空航天、建筑等行业,对短纤维增强复合材料进行细观力学分析,可对其宏观力学性能进行预测、分析破坏机理等。接下来对随机短纤维增强复合材料建模插件进行介绍。NO.1 【算法简介】难点一:此插件核心在于判断生成的纤维是...

weixin_39974882的博客 2833

UEFI Boot Flow 系列之BDS

转自CeliaQianhj BDS: Boot Device Select  BDS阶段的任务: 1. Initialize console devices base on the ConIn, ConOut and StdErr environment variables. 2. Attempt to load all drivers listed in the Driver####

LifeIce的专栏 1231

ConnectionResetError 10054 根因分析与全链路防御指南

ConnectionResetError(错误码10054)是TCP协议中服务端主动发送RST包导致的强制断连,本质并非网络连接失败,而是服务端基于空闲超时、连接满载、TLS协商失败等策略做出的确定性终止决策。理解其底层原理有助于跳出‘重试’误区,转向连接生命周期管理。该错误高频出现在HTTP长连接、WebSocket、第三方API对接等场景,尤其在Nginx反向代理、负载均衡器(如AWS ALB)、WAF设备及内核conntrack机制下极易触发。本文结合Wireshark抓包分析、客户端心跳保鲜、协议指

weixin_30225755的博客 639

nicegui 可视化扩展库

总体来说,这段代码使用nicegui库创建了一个具有一些基本UI元素的界面,并使用扩展库来实现更多的布局功能。这段代码使用了nicegui库创建了一个UI界面。函数导入了一个扩展库,用于实现更多的布局功能。然后又使用了一个行布局,并添加了两个按钮(在UI界面中,使用了一个卡片(在行布局中依次添加了一个标签(在卡片中使用了一个头像(接下来使用了一个行布局(设置了背景颜色为绿色。设置了居中对齐和红色。设置了间距和字体大小。设置了居中对齐和样式。设置了按钮的对齐方式。

东方佑 1021

UEFI Boot Flow 系列之概述

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

LifeIce的专栏 1515

【同等学力】01-逻辑符号表达

F(x): x是确诊者,G(x):x有症状F(x): x是老人,G(x):x是宠物,L(x,y): x喜欢y。

super_mochi1 1880

01_UEFI启动流程

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

2301_80214137的博客 259

华为OD机试双机位C卷:完美走位 (C++/C/Py/Java/Js/GO)

华为OD机试双机位C卷 完美走位, 提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机考 完美走位, 华为OD机试 完美走位。

qq_45776114的博客 1724

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

UEFI Boot Flow 系列之PEI

转自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.

LifeIce的专栏 1471

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

给x86固件工程师的ARM ATF/TF-A入门:对比UEFI启动,搞懂BL2/31/33到底干了啥

本文为x86固件工程师提供ARM ATF/TF-A安全启动架构的入门指南,通过对比UEFI启动流程,详细解析BL2/31/33各阶段的功能与差异。文章深入探讨ARM与x86在安全启动哲学上的根本区别,帮助工程师快速掌握ARM Trusted Firmware的核心概念和实战技巧,实现从x86到ARM平台的安全启动架构迁移。

weixin_42656416的博客 401

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

claude-red 漏洞利用开发全流程实战指南:从 PoC 到可靠 Exploit 的方法论与工具链

本篇技术指南以 claude-red 仓库中的 [offensive-exploit-development 技能](https://link.gitcode.com/i/9d913a5e744b2461bb0d1a1bd78aed2e) 为主体,系统讲解漏洞利用开发(Exploit Development)的完整方法论:环境搭建、调试工作流、PoC 开发生命周期、pwntools/pwndbg

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值