UEFI学习笔记(三):FDF文件及FD、FV、FFS

UEFI学习笔记(三):FDF文件及FD、FV、FFS

一、基本概念

1.FDF文件:

Flash Description File (固件描述文件)定义了固件的布局、包含的模块和其他与映像生成相关的内容。

作用:

.fdf 文件用于指定固件映像的布局,包括:固件区域的定义、模块和驱动程序的链接位置、固件的启动设置。GenFds 工具用于将 FDF 文件转换为 FD 文件。

2.FD:

FD (Firmware Descriptor)文件通常包含多个固件区域,如启动区、驱动程序区、应用程序区等。一个FD由一组FV组成,它将这些固件卷组合成一个完整的固件映像,准备被烧录或加载到设备上。

作用:

FD 文件用于将多个固件组件打包成一个单一的固件映像。它定义了固件映像中各个部分的位置和大小。

生成:

在 UEFI 固件构建过程中,FD 文件是通过工具(如 GenFds)从 FDF 文件生成的。它表示固件的最终映像格式,包含所有需要的固件模块和区域。

3.FV

FV (Firmware Volume)是固件卷,它是固件映像中的一个逻辑区域,用于组织和存储固件组件。每个 FV 文件包含一个或多个 FFS 文件 ,构成固件映像中的不同区域(如启动区域、驱动区域)。在 .fdf 文件中,FV 是一个逻辑区块,实际存储多个固件文件。

作用:

FV 提供了一个结构化的方式来组织固件组件,使得不同的固件模块可以按需加载和管理。FV 通常用于 UEFI 固件映像的打包和管理。FV通过GUID(全局唯一标识符)来标识和访问其中的模块。

生成:

在固件构建过程中,FV 文件通过将多个 FFS 文件组合在一起生成,形成固件卷。

4.FFS

FFS (Firmware File System)是固件文件系统中的一个单独的文件,它可以是一个模块、驱动程序、库、或应用程序(如 .efi 文件)。FFS 文件是固件卷(FV)中的基本组成部分。

作用:

FFS 文件用于存储和组织固件中的不同模块和驱动程序。每个 FFS 文件都有一个头部,描述其类型、大小和其他属性。

生成:

FFS 文件在固件构建过程中由编译器和链接器生成,然后被打包到 FV 文件中。

4.Capsule

它是用于定义固件更新包的配置部分。Capsule 是一种特定格式的固件更新映像,通常由多个组件打包而成,供系统在运行时或重启时进行更新。Capsule 的定义涉及到如何将固件更新数据组织到一个整体的映像中,以便通过 UEFI 更新机制进行处理。

Capsule 在 .fdf 文件中的作用:

Capsule 在 .fdf 文件中用于描述固件更新映像的布局、内容以及如何将这些内容打包成 Capsule 文件。

二、关联

FD、FV 、FFS和section:

FD、FV 、FFS、section之间存在密切的层级关系 ,从大到小依次构成整个固件。

FD是FV的上层容器,FV是FD中存储固件组件的一种结构。在 UEFI 固件的构建过程中,这些文件格式协同工作,以确保固件映像的正确组织和打包。GenFds 工具用于将 FDF 文件转换为 FD 文件,FD 文件再包含多个 FV 和 FFS 文件,FFS由section组成,以生成最终的固件映像。

FDF和INF:

在 .fdf 文件中,FV 会引用通过 INF 文件定义的模块 ,将它们打包到固件卷中。通常,.fdf 文件会指向多个由 INF 文件生成的模块,并将它们组织到一个或多个 FV 中。
(!!!新增app或driver的时候,需要把.inf添加到fdf中)

参考文章:

UEFI中的edk2编译流程_edk2代码走读

【UEFI基础】FDF文件

相关推荐
DP DPharness16 小时前
ClearAI、记忆插件与普通笔记,三种让 Agent 记住的路数对比
笔记
piikee18 小时前
粤语初学入门:从粤拼、九声六调到开口,一个普通话母语者的练习笔记
笔记·粤语入门·怎么学习粤语
Seraphina3620 小时前
SQL注入(二)盲注
网络·数据库·经验分享·笔记·sql
白山编程大哥20 小时前
Carsim 2024.1 专业安装介绍:功能特性与应用场景详解
笔记
hss1234567821 小时前
整装落地与效果图差距有多大?从毫米级误差到ENF板材的量化拆解
笔记
zhangrelay1 天前
用ROS2Lyrical实验报告册思路重做蓝桥云课ROS1实验并改进
linux·笔记·学习·ubuntu·机器人
LHR_friendship1 天前
HCIP课程全部内容
网络·笔记·学习·hcip·华为ensp
海绵宝宝转agent1 天前
Pico 学习笔记 Harness 设计、历史压缩、三类目录与缓存复用
笔记·学习·缓存
xUxIAOrUIII1 天前
日常笔记-1005-1
linux·笔记·python·macos