UEFI学习
文章平均质量分 85
Petal990912
这个作者很懒,什么都没留下…
展开
-
UEFI学习笔记(十七):SMCCC概述
SiP 服务调用是 Secure Monitor Call (SMC) 中的一个子集。SiP 服务调用是通过 SMC 指令触发的一组特定功能,由芯片制造商定义,用于满足特定硬件平台的需求。这些功能通常与硬件安全、平台管理、设备初始化相关。原创 2024-11-18 17:58:04 · 352 阅读 · 0 评论 -
UEFI学习笔记(十六):edk2子目录常用驱动介绍
它提供了支持嵌入式设备开发的工具和模块,涵盖了嵌入式平台的特定需求,例如硬件初始化、系统引导、设备驱动和平台配置等。通过实现不同的文件系统协议,如 EFI_SIMPLE_FILE_SYSTEM_PROTOCOL 和 EFI_FILE_PROTOCOL,该驱动程序使 UEFI 环境能够访问存储设备上的文件系统,如 FAT 文件系统。**功能:**提供图形输出支持。UEFI 模块开发环境的核心包,提供构建 UEFI 模块所需的基础库、头文件和工具,定义标准协议、库和环境,为所有模块提供支持。原创 2024-11-15 14:09:02 · 545 阅读 · 0 评论 -
UEFI学习笔记(十五):edk2 UEFI HII Driver概述
一、概述二、相关ProtocolsHII 是一种用于在 UEFI 环境中创建和管理用户界面的标准。它定义了如何描述和显示用户界面元素(如菜单、按钮和文本框),以及如何处理用户输入。定义在UEFI Spec里面。HII 允许固件开发人员构建复杂的用户界面,而无需依赖特定的硬件或操作系统。HII Driver是一个用于实现用户界面元素的驱动程序。HII 驱动程序的主要作用是在 UEFI 固件环境中提供图形用户界面(GUI)支持,并管理与用户界面相关的数据结构和功能。在BDS期间加载。原创 2024-11-04 15:34:33 · 850 阅读 · 0 评论 -
UEFI学习笔记(十四):UEFI Driver 模型与开发
一、UEFI Driver模型1、定义2、如何加载二、Driver Binding Protocol2、Start()3、Stop()Device Driver 在 DXE 阶段加载,而应用程序则在 BDS 阶段加载。通过在 BDS 启动时访问设备,可以提供相应的输入和输出设备。引入 Device Driver 旨在实现更好的模块化管理,主要用于设备管理。它支持二进制发布,并可以集成到 Option ROM 中,同时提供清晰的外部接口,从而提升固件的扩展性。原创 2024-11-04 11:02:16 · 413 阅读 · 0 评论 -
UEFI学习笔记(十三):Capsule Update
在UEFI(统一可扩展固件接口)中,胶囊更新(Capsule Update) 是通过胶囊文件来更新固件组件(如BIOS或系统固件)的机制。是 UEFI(统一可扩展固件接口)规范中定义的一种数据结构,用于描述系统中固件更新资源的信息。ESRT 的主要目的是为操作系统或固件更新工具提供一个统一的接口,以便于发现和管理可更新的固件组件。FMP 主要用于支持固件更新的功能,包括固件的发现、管理和更新。胶囊内包含的更新负载是实际要应用的固件或数据,可能包括更新的BIOS代码、ACPI表、微码或其他系统关键更新。原创 2024-10-31 15:52:22 · 560 阅读 · 0 评论 -
UEFI学习笔记(十二):PCIe的概述与访问
一、PCIe的概念二、PCI的访问三、PCI/PCIe的结构1、物理结构2.、配置空间结构。原创 2024-10-21 15:33:30 · 945 阅读 · 0 评论 -
UEFI学习笔记(十一):SMBIOS的概述与访问
一、概述二、SMBIOS结构三、SMBIOS的访问1、获取 SMBIOS 入口点2、初始化和检查入口点3、访问 SMBIOS 结构表4、遍历 SMBIOS 结构5、解析每个结构6、输出信息7、错误处理SMBIOS(System Management BIOS)是一种在计算机系统中用于管理和获取硬件信息的标准接口。它提供了一种结构化的方式,通过 BIOS 来传递有关系统硬件的详细信息,包括处理器、内存、主板、以及其他组件的信息。原创 2024-10-16 15:28:22 · 927 阅读 · 0 评论 -
UEFI学习笔记(十):系统表与ACPI表的遍历
SMBIOS(System Management BIOS)是一种在计算机系统中用于管理和获取硬件信息的标准接口。它提供了一种结构化的方式,通过 BIOS 来传递有关系统硬件的详细信息,包括处理器、内存、主板、以及其他组件的信息。SMBIOS 数据结构以表的形式存在,通常在系统启动时由 BIOS 提供,操作系统可以通过读取这些表来获取所需的信息。原创 2024-10-08 16:19:35 · 479 阅读 · 0 评论 -
UEFI学习笔记(九):ACPI详解
DSDT (Differentiated System Description Table)是 ACPI 表中的核心之一,定义了系统中的硬件和设备。它包括设备对象、方法、操作和控制策略。DSDT 描述了系统的设备和其功能,提供了系统启动和运行时所需的基本设备信息。通常在系统固件中存储,并由操作系统在启动时加载和解释。原创 2024-09-14 09:57:16 · 1171 阅读 · 0 评论 -
UEFI入门学习笔记(详细版,持续更新)
每个平台有其对应的 .dsc 文件(平台描述文件)和 .fdf 文件(固件描述文件),用来定义要构建的平台、所包含的模块、库、驱动程序,以及固件映像的布局。.dsc 文件是编译每个模块的主要参考,而 .fdf 文件是生成固件映像时的重要文件。模块是一个最小的可编译单元,Package是最小的对外发布的单元。模块放在包里面的。模块包括LibraryDriver等类型。每一个模块都有一个INF文件。HOB(Hand-Off Block)主要用于在不同的阶段共享数据。原创 2024-09-13 10:29:49 · 1553 阅读 · 0 评论 -
UEFI学习笔记(八):Memory Services
HOB(Hand-Off Block)主要用于在不同的阶段共享数据。由于Flash是只读的,直接修改全局变量是无效的。因此,在PEI(Pre-EFI Initialization)阶段,需要使用HOB来共享全局信息。HOB提供了一块临时内存,这块内存是CPU缓存的一部分,可以进行读写操作,从而在不同的阶段之间传递和共享信息。原创 2024-09-12 14:42:53 · 1147 阅读 · 0 评论 -
UEFI学习笔记(七):UEFI_Spec_2_10 Protocols整理
用于定位EFI MTFTPv4协议(Multicast Trivial FTP)驱动程序支持的通信设备,并创建和销毁可以使用底层通信设备的EFI MTFTPv4协议子协议驱动程序的实例。它提供了一组函数,用于初始化、控制和操作显示设备的图形输出。用于定位由EFI UDPv4协议驱动程序支持的通信设备,并创建和销毁可以使用底层通信设备的EFI UDPv4协议子协议驱动程序的实例。用于定位EFI IPv4协议驱动程序支持的通信设备,并创建和销毁可以使用底层通信设备的EFI IPv4协议子协议驱动程序的实例。原创 2024-09-12 09:14:33 · 510 阅读 · 0 评论 -
UEFI学习笔记(五):EDK II PCD的概念、类型、使用
如果在BIOS里面有一些模块是binary方式集成进来的而这些binary又需要用到PCD(用于Binary Release),那么这些Binary集成的要用到的PCD就必须要设置为。PCD的值存在memory里面,下次启动时,上次更改的值丢失了,每次启动都是从default值开始。是存在VPD空间的(在FLASH上,只读),一般是出厂配置。如果platform是从源码build出来的,没有binary在里面的时候,PCD用的都是。作用域在一个模块中(模块级的),可以在Binary Level进行修改。原创 2024-09-11 14:42:29 · 985 阅读 · 0 评论 -
UEFI学习笔记(四):inf、dec和dsc
INF DEC DSC原创 2024-09-10 15:51:37 · 1279 阅读 · 0 评论 -
UEFI学习笔记(三):FDF文件及FD、FV、FFS
FDF FD FFS原创 2024-09-10 14:48:32 · 1324 阅读 · 0 评论 -
UEFI学习笔记(二):edk2构建编译流程
每个平台有其对应的 .dsc 文件(平台描述文件)和 .fdf 文件(固件描述文件),用来定义要构建的平台、所包含的模块、库、驱动程序,以及固件映像的布局。.dsc 文件是编译每个模块的主要参考,而 .fdf 文件是生成固件映像时的重要文件。原创 2024-09-10 11:10:36 · 828 阅读 · 0 评论 -
UEFI学习笔记(一):UEFI中的Protocol操作
UEFI入门原创 2024-08-07 18:04:44 · 297 阅读 · 0 评论 -
UEFI学习笔记(六):EDK II 模块:Libraries,Drivers&Application
(os loader 是一种特殊的application,执行完成后不会return或者exit,相反会调用EFI boot service gBS->ExitBootServices()来将控制权从fireware 传递给os)Driver可以依赖Library,Driver可以生产protocols,主要用于支持硬件。里面的(Package是EDK II 最小的对外发布的单元)。App是被UEFI loader加载的,不会装protocols。每一个模块都有一个INF文件。对应的是一个模块(INF)原创 2024-09-11 17:21:38 · 549 阅读 · 0 评论