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文件简介相关推荐

  1. Linux 中的一些文件简介

    0x00 /etc/passwd root 用户可以查看和修改,其他用户只能查看该文件. ino:x:1000:1000:1Oin0,,,:/home/ino:/bin/bash在/etc/passw ...

  2. c++中algorithm头文件、STL库简介及使用说明

    c++中algorithm头文件.STL库简介及使用说明 c++中algorithm头文件是STL的算法部分,里边定义了各种算法,比如sort之类的.加上algorithm就可以使用stl库里的各种算 ...

  3. Linux中的文件IO以及JDK中的NIO模型简介

    一.IO方式 1.中断方式 1)当某个进程要进行IO操作时,CPU会将该线程挂起,向相应的IO设备控制器发一条IO命令,然后CPU返回继续执行自己原来的任务. 2)设备控制器收到命令,启动指定的IO设 ...

  4. UEFI开发与调试---edk2中的Package

    在开始编写UEFI APP之前,我们需要先对UEFI包和模块的概念有个了解. 在edk2的根目录下,我们可以发现有很多*Pkg命令的目录,这些实际上都是各个不同的包,每个包中都是一组模块的集合,每个包 ...

  5. UEFI原理与编程第二章学习- .dsc .dec .fdf文件与包

    .dsc .dec .fdf文件及包    上一篇介绍了 .inf文件, .inf文件相当于Visual Studio中的工程文件.而 .dsc(Platform Description File)则 ...

  6. 三代测序原理与数据文件简介(SMRT+Nanopore)

    三代测序原理与数据文件简介(SMRT+Nanopore) 一生雾梦 2019-12-03 20:48:42  1578  收藏 2 分类专栏: 前沿文献分析 文章标签: 三代测序(SMS) SMRT  ...

  7. 如何自动将AI Studio中的GIF文件上载到CSDN?

    ▲ 图1 旋转的数字 简 介: 本文给出了自动将AI Studio工作环境中的GIF目录下的动图图片完成压缩,下载并上载到CSDN的整个过程.给出了实现的详细代码.利用这个工具便可以完成更加丰富多彩的 ...

  8. Java中如何锁文件

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | liululee 来源 | 公众号「锅外的大佬 ...

  9. 【Android 逆向】ELF 文件格式 ( ELF 文件简介 | ELF 文件结构 )

    文章目录 一.ELF 文件简介 二.ELF 文件结构 一.ELF 文件简介 ELF 文件是 Executable and Linkable Format ( 可执行 和 可链接 格式 ) 的文件 ; ...

最新文章

  1. Java项目:清新论坛系统(java+SSM+mysql+maven+tomcat)
  2. 销量过亿的《剑指0ffer》题目和答案电子书 (附下载)
  3. [原创]windows server 2012 AD架构 试验 系列 – 3 创建备份DC2
  4. Python2和Python3关于reload()用法的区别
  5. 关于 ElesticSearch 安装
  6. 子组件调用父组件方法_Vuejs组件(一)组件的注册使用方法
  7. [原]当你用%查不到记录的时候怎么办?
  8. ORA-19504,乌龙处理
  9. 判断参数大于0_能做条件判断的文本函数
  10. 使用 anacoda 安装scrapy
  11. 安卓交换位置动画_好马配好鞍,OriginOS系统让安卓系统大变样
  12. 全网首发:WINDOWS主机与MAC虚拟机文件访问的解决办法
  13. 通过运算符重载实现复数加减
  14. php json转数组示例,php json转数组的例子
  15. 3d建模师是吃青春饭的吗?混子上限也就8K,资历能力都很重要
  16. 【LeetCode】21. 合并两个有序链表
  17. 回顾一年的工作历程_回顾历程、总结经验、展望未来
  18. mysql数据库增加一行_在数据库中添加一行的SQL语句怎么写?
  19. 创建守护进程的步骤与练习,每隔1s向time.log写入系统时间!
  20. 出入库管理系统php,php销售供应链管理系统

热门文章

  1. php模板地图修改,让你一个地图拥有全部资源的修改方法
  2. pandoc md 文件转化pdf(中文字体)
  3. 智能编曲软件含音色库-Band in a Box 2017 macOS | 100GB
  4. Android 音乐APP(五)音乐通知栏、后台播放音乐
  5. 科创板拟上市企业申联生物和传音控股已提交注册
  6. C/C++编写Windows窗口应用程序(Win32程序),非黑漆漆的控制台窗口
  7. Lan9252-FPGA调试笔记
  8. Day 20 IOl流
  9. Esp8266学习搭建开发环境,开始一个“hellow world”串口打印。
  10. lol比尔吉沃特服务器未响应,LOL比尔吉沃特9月30日网络波动公告 引起卡机掉线丢包状况...