edk2中的fdf文件简介
fdf的全称叫做flash device file,它用于描述固件在flash中的布局和位置,他可以分为几个部分[Defines],[FD],[FV],[Rule],本文主要介绍如下关键的3个部分:
- FD Section
这个部分需要在起始的地方标注[FD.xxx],一个fdf文件中可以分为多个FD Section。
################################################################################## FD Section# The [FD] Section is made up of the definition statements and a# description of what goes into the Flash Device Image. Each FD section# defines one flash "device" image. A flash device image may be one of# the following: Removable media bootable image (like a boot floppy# image,) an Option ROM image (that would be "flashed" into an add-in# card,) a System "Flash" image (that would be burned into a system's# flash) or an Update ("Capsule") image that will be used to update and# existing system flash.#################################################################################[FD.QcomModule_EFI]BaseAddress = 0x80200000|gEmbeddedTokenSpaceGuid.PcdEmbeddedFdBaseAddress #The base address of the FLASH Device.Size = 0x00024000|gEmbeddedTokenSpaceGuid.PcdEmbeddedFdSize #The size in bytes of the FLASH DeviceErasePolarity = 1BlockSize = 0x200NumBlocks = 0x120
- FD Region
每个FD的最后都会跟上该FD的区域布局,通过Region Type可以来表示存放在该FD中的内容类型,比如是FV还是DATA,或者是FILE。举例如下:
################################################################################## Following are lists of FD Region layout which correspond to the locations of different# images within the flash device.## Regions must be defined in ascending order and may not overlap.## A Layout Region start with a eight digit hex offset (leading "0x" required) followed by# the pipe "|" character, followed by the size of the region, also in hex with the leading# "0x" characters. Like:# Offset|Size# PcdOffsetCName|PcdSizeCName# RegionType <FV, DATA, or FILE>################################################################################## 512 bytes of configuration header & 8 bytes of image header0x00000000|0x00024000gEmbeddedTokenSpaceGuid.PcdFlashFvMainBase|gEmbeddedTokenSpaceGuid.PcdFlashFvMainSizeFV = FVMAIN_COMPACT
这里的FV表示存放在该FD中的FV是什么,本例表示存放的是FVMAIN_COMPACT这个FV,它会在下面进行定义。
- FV(Flash Volume)
该区域定义该FD的布局形势,其中包含很多inf文件,表示的是该FD包含的各个子模块,该区域需要在起始位置标注[FV]如下所示:
################################################################################
#
# FV Section
#
# [FV] section is used to define what components or modules are placed within a flash
# device file. This section also defines order the components and modules are positioned
# within the image. The [FV] section consists of define statements, set statements and
# module statements.
#
################################################################################[FV.FvMain]
BlockSize = 0x40
NumBlocks = 0 # This FV gets compressed so make it just big enough
FvAlignment = 8 # FV alignment and FV attributes setting.
ERASE_POLARITY = 1
MEMORY_MAPPED = TRUE
STICKY_WRITE = TRUE
LOCK_CAP = TRUE
LOCK_STATUS = TRUE
WRITE_DISABLED_CAP = TRUE
WRITE_ENABLED_CAP = TRUE
WRITE_STATUS = TRUE
WRITE_LOCK_CAP = TRUE
WRITE_LOCK_STATUS = TRUE
READ_DISABLED_CAP = TRUE
READ_ENABLED_CAP = TRUE
READ_STATUS = TRUE
READ_LOCK_CAP = TRUE
READ_LOCK_STATUS = TRUE
FvNameGuid = 046fae99-cf2e-49ed-a6a8-a1488b7e80d3INF QcomModulePkg/Application/LinuxLoader/LinuxLoader.inf[FV.FVMAIN_COMPACT]FvAlignment = 8ERASE_POLARITY = 1MEMORY_MAPPED = TRUESTICKY_WRITE = TRUELOCK_CAP = TRUELOCK_STATUS = TRUEWRITE_DISABLED_CAP = TRUEWRITE_ENABLED_CAP = TRUEWRITE_STATUS = TRUEWRITE_LOCK_CAP = TRUEWRITE_LOCK_STATUS = TRUEREAD_DISABLED_CAP = TRUEREAD_ENABLED_CAP = TRUEREAD_STATUS = TRUEREAD_LOCK_CAP = TRUEREAD_LOCK_STATUS = TRUEFILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {SECTION FV_IMAGE = FVMAIN}}
edk2中的fdf文件简介相关推荐
- Linux 中的一些文件简介
0x00 /etc/passwd root 用户可以查看和修改,其他用户只能查看该文件. ino:x:1000:1000:1Oin0,,,:/home/ino:/bin/bash在/etc/passw ...
- c++中algorithm头文件、STL库简介及使用说明
c++中algorithm头文件.STL库简介及使用说明 c++中algorithm头文件是STL的算法部分,里边定义了各种算法,比如sort之类的.加上algorithm就可以使用stl库里的各种算 ...
- Linux中的文件IO以及JDK中的NIO模型简介
一.IO方式 1.中断方式 1)当某个进程要进行IO操作时,CPU会将该线程挂起,向相应的IO设备控制器发一条IO命令,然后CPU返回继续执行自己原来的任务. 2)设备控制器收到命令,启动指定的IO设 ...
- UEFI开发与调试---edk2中的Package
在开始编写UEFI APP之前,我们需要先对UEFI包和模块的概念有个了解. 在edk2的根目录下,我们可以发现有很多*Pkg命令的目录,这些实际上都是各个不同的包,每个包中都是一组模块的集合,每个包 ...
- UEFI原理与编程第二章学习- .dsc .dec .fdf文件与包
.dsc .dec .fdf文件及包 上一篇介绍了 .inf文件, .inf文件相当于Visual Studio中的工程文件.而 .dsc(Platform Description File)则 ...
- 三代测序原理与数据文件简介(SMRT+Nanopore)
三代测序原理与数据文件简介(SMRT+Nanopore) 一生雾梦 2019-12-03 20:48:42 1578 收藏 2 分类专栏: 前沿文献分析 文章标签: 三代测序(SMS) SMRT ...
- 如何自动将AI Studio中的GIF文件上载到CSDN?
▲ 图1 旋转的数字 简 介: 本文给出了自动将AI Studio工作环境中的GIF目录下的动图图片完成压缩,下载并上载到CSDN的整个过程.给出了实现的详细代码.利用这个工具便可以完成更加丰富多彩的 ...
- Java中如何锁文件
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | liululee 来源 | 公众号「锅外的大佬 ...
- 【Android 逆向】ELF 文件格式 ( ELF 文件简介 | ELF 文件结构 )
文章目录 一.ELF 文件简介 二.ELF 文件结构 一.ELF 文件简介 ELF 文件是 Executable and Linkable Format ( 可执行 和 可链接 格式 ) 的文件 ; ...
最新文章
- Java项目:清新论坛系统(java+SSM+mysql+maven+tomcat)
- 销量过亿的《剑指0ffer》题目和答案电子书 (附下载)
- [原创]windows server 2012 AD架构 试验 系列 – 3 创建备份DC2
- Python2和Python3关于reload()用法的区别
- 关于 ElesticSearch 安装
- 子组件调用父组件方法_Vuejs组件(一)组件的注册使用方法
- [原]当你用%查不到记录的时候怎么办?
- ORA-19504,乌龙处理
- 判断参数大于0_能做条件判断的文本函数
- 使用 anacoda 安装scrapy
- 安卓交换位置动画_好马配好鞍,OriginOS系统让安卓系统大变样
- 全网首发:WINDOWS主机与MAC虚拟机文件访问的解决办法
- 通过运算符重载实现复数加减
- php json转数组示例,php json转数组的例子
- 3d建模师是吃青春饭的吗?混子上限也就8K,资历能力都很重要
- 【LeetCode】21. 合并两个有序链表
- 回顾一年的工作历程_回顾历程、总结经验、展望未来
- mysql数据库增加一行_在数据库中添加一行的SQL语句怎么写?
- 创建守护进程的步骤与练习,每隔1s向time.log写入系统时间!
- 出入库管理系统php,php销售供应链管理系统
热门文章
- php模板地图修改,让你一个地图拥有全部资源的修改方法
- pandoc md 文件转化pdf(中文字体)
- 智能编曲软件含音色库-Band in a Box 2017 macOS | 100GB
- Android 音乐APP(五)音乐通知栏、后台播放音乐
- 科创板拟上市企业申联生物和传音控股已提交注册
- C/C++编写Windows窗口应用程序(Win32程序),非黑漆漆的控制台窗口
- Lan9252-FPGA调试笔记
- Day 20 IOl流
- Esp8266学习搭建开发环境,开始一个“hellow world”串口打印。
- lol比尔吉沃特服务器未响应,LOL比尔吉沃特9月30日网络波动公告 引起卡机掉线丢包状况...