- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 DXE Core GCD 服务
简介Global Coherency Domain(简称GCD 全局一致域)是把运行启动代码的CPU所能发现的系统资源(由Hand off Block 从PEI 传递过来信息)进行统一管理的一种视图。这个视图由两类GCD服务来管理,一类存储空间资源(GCD Memory Space)管理服务,另一类是输入/输出资源(GCD IP Space)管理服务。通过调用这两类服务,系统资源(...
2019-08-30 23:43:26 1513 1
原创 i386的页式内存管理机制
学过操作系统原理的读者都知道,内存管理有两种,一种是段式管理,另一种是页式管理,而页式管理更为先进,从80年代中期开始,页式内存管理进入了种操作系统(以Unix为主) 的内核,一时成为操作系统领域的一个热点。 Intel 从80286开始实现其“保护模式”, 也即段式内存管理。但是很快就发现,光有段式管理而没有页式管理是不够的,那样会使他的X86系列逐渐失去竟争力...
2019-08-16 18:31:01 666
原创 UEFI SMM
SMM 介绍SMM (System Management Mode) 是Intel IA32/Intel64 CPU 架构的一种特殊模式。CPU通过SMI(System Management Interrupt) 进入SMM 模式。然后,CPU 保存当前环境,跳转到预先定义的地址,执行完后通过RSM指令返回。目前主流的的操作系统和Intel CPU 都支持SMM. BIOS...
2019-08-15 14:15:50 4445
原创 启动设备选择BDS
BDS简介BDS 的全称是启动设备选择(Boot Device Select), DXE 阶段最终会调用BDS ARCHprotocol 的接口EFI_BDS_ARCH_PROTOCOL.Entry() 转入BDS阶段。BDS 阶段负责加载额外的驱动,与用户交互,必要的硬件初始化,并转入操作系统。系统全局环境变量其他模块和BDS 交互是通过一系列系统全局环境变量进行的。其...
2019-08-14 18:25:49 2823
原创 SMBIOS
SMBIOS(System Management BIOS) 规范是由DMTF(Distributed Management Task Force) 制定,目的是在英特尔架构系统中向系统中向系统管理软件提供主板和硬件厂商信息。第一个版本是在1995年9月14号发布的。根据SMBIOS规范,BIOS 开发者可以创建包含硬件和其他系统信息SMBIOS 表。SMBIOS 表以一个标准的数据结...
2019-08-13 16:56:41 1868
原创 ACPI
BIOS 对于ACPI 的支持包括以下几个方面:提供ACPI 表告诉操作系统信息,包括ASL 代码 提供S3 唤醒功能,包括平台寄存器恢复EFI_ACPI_SDT_PROTOCOL 是PI 规范中定义的协议。它给用户提供了接口用来获取ACPI 表,添加ACPI 表的回调函数,并且提供接口管理AML 代码。typedef struct _EFI_ACPI_SDT_PROTOCOL {...
2019-08-13 13:48:01 1432 1
原创 PCI总线
PCI 总线介绍外围部件互连总线PCI (Peripheral Component Interconnect) 总线,是一种先进的高性能32/64 位地址数据复用局部总线,可同时支持多组外围设备,为中央处理器与高速外围设备提供了一座沟通的桥梁,是现在PC领域中流行的总线。本文重点介绍UEFI 规范如何支持PCI 总线,以及UEFI 固件中PCI 总线驱动的实现 。 BIO...
2019-08-09 14:31:54 2599
原创 HII 数据库
HII 介绍HII, 全称Human Interface Infrastructure, 定义了一套管理用户输入的基础架构,支持多种类型的用户输入。在这个架构中HII 数据库处理底层位置,负责提供用户安装、卸载及使用各种字符串、字体及图片等资源的接口。HII 数据库主要包括以下功能模块:1 HII 数据库协议 -- 以包装表(Package List ) 为单位管理HI...
2019-08-08 19:45:46 1659
原创 DXE 其它服务
EDKII 中实现DXE Foundation 的源代码位于MdeModulePkg\Core\Dxe 目录下。/** Introduces a fine-grained stall. @param Microseconds The number of microseconds to stall execution. @retval EFI_SUCCESS...
2019-08-08 18:28:48 406
原创 UEFI 协议与句柄
简介DxeCore 维护一个协议数据库,数据库中包含有句柄(Handle) , 协议(Protocol) 和接口(Interface).协议以GUID 命名,由数据结构表示,数据结构可能为空,可能只包含数据,可能只包含函数指针,也可能两者都包含。接口是协议的具体实现,与面向对象概念类比,协议等同于类,接口等同于类的实例。协议数据库在UEFI 概念中,一个句柄(Hand...
2019-08-08 14:00:08 1452
原创 DXE Core 事件,时钟与优先级服务
现代操作系统一般在系统调用和时钟中断发生时进行任务调度。如果把DXE Foundation 比作操作系统的kernel, 把boot service 比作系统调用,那么EDKII , DXE Foundation 也是在“系统调用”和时钟中断发生时进行有限多任务的调度,从本质上说,EDK II 代码的流程是单任务单线程的,这里的调度只是一种事件分发机制。UEFI 规范中定义了基于事件机...
2019-08-07 14:23:59 1067
原创 DXE Core 内存服务
简介DXE 阶段的动态存储空间管理模块与GCD 管理模块有着密切的关系。此部分不仅包括了系统启动过程中必不可少的存储分配,释放服务而且还包括了整个动态存储管理的实现即如何从GCD 中获取可使用的系统资源构建初始化存储空间: 如何从GCD 中获取后续系统资源以维持整个存储空间管理的正常运行。内存服务全局变量gMemoryLockMemory 管理专用锁。此锁的TP...
2019-08-06 11:12:07 1686
原创 DXE Foundation
DXE 简介在PI 架构中,PEI 阶段之后为DXE 阶段。系统的大多数初始化工作在DXE 阶段中完成。组成DXE 阶段的模块有DXE Foundation, 若干DXE 驱动,若干UEFI 驱动。PEI Foundation 调用DXE IPL PPI 加载和执行DXE Foundation 标志着DXE 阶段的开始。DXE Foundation 是DXE 阶段的基础和核心...
2019-08-01 19:52:15 2047
原创 DxeIPL
DxeIPL 简介DXE IPL 是DXE Initial Program Loader 的简称。PI 规范规定PEI 阶段必须有一个Architecture PPI, 称为DXE IPL PPI, PEI Foundation 通过DXE IPL PPI 向DXE 阶段交权。当PEI Foundation dispatch 完所有的PEIM 后,调用DXE IPL PPI. DXE ...
2019-08-01 15:39:51 2220
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人