EFI基本概念之UDK2015定制EDKTOOL
1 EDKTool作用
EDKTool是EDK代码的编译所需要的工具。由这指定编译器及编译选项,编译平台,编译active平台及编译DEBUG或Release版本。
EDKTool对X86及ARM的支持比较好,但对其它平台的支持不怎么好。鉴于EDK的包容性,即使没有对其它平台的支持,我们也要方便地构建其平台对应的工具。
2 EDKTool编译
BUILD SPEC上把EDKTool编译代码分成三个步骤:第一个步骤是预编译或者称元数据处理阶段;第二个步骤是编译步骤;第三个步骤是Image生成阶段。如果想在EDK代码还未支持的平台上做这几个步骤,首先要配置好EDKTOOL。
首先看一下Basetool文件夹内容:
这Bin和BinWrappers是编译过后的工具,我们配置环境的时候可以将其路径加入系统环境中,这是代码编译时,就知道build,GenFw,GenFv等工具在哪找寻。Conf是配置文件,其中有编译规则,编译目标的选择及编译工具,供我们使用者来配置。Source文件是第一阶段和第三阶段所用工具的源文件。Tests文件可以帮我们改的代码做一下语法检查。userManuals是对各个工具使用方法的说明。
3 EDKTool修改内容
我们要为一个EDK不支持的CPU架构做EFI成BIOS,主要是修改Conf和Source两个文件夹的内容。
3.1 build.py
这里要加入所要支持的CPU架构,要不然EDKTOOL不认识-a所带的参数。
3.2 FfsInfStatement.py
和3.1一样,加入CPU架构。不过用途不一样,此处主要是为Inf的解析及生成Ffs时使用。
3.3 PeImage.h
加入CPU的机器码,BIOS是PE32架构,都有PE头,这个机器码就是BIOS代码解析FFS的PE头使用的。
3.4 GenFw工具
如果在Linux下面编译,需要将ELF转成PE结构的。
3.5 tools_def.template
-t所需要的toolchain需要在此文件中设定。
EFI基本概念之UDK2015定制EDKTOOL相关推荐
- EFI基本概念之HOB
1 基本概念及用法 HOB是Hand-offblock的缩写.是PEI阶段向DXE传递系统信息的手段.PEI阶段构建一些HOB结构,然后将其作为参数传给DXE阶段函数,DXE Core会根据其使用平台 ...
- 和老BIOS说永别 EFI BIOS技术解析
BIOS最后的璀璨 BIOS,几乎和PC有着同样的寿命,当年康柏第一台"克隆"PC诞生的时候,它为了简化启动的设置,引入了固化程序的概念,在启动时负责将PC初始化,然后再将控制权交 ...
- ubuntu linux定制过程
定制的组成部分 linux安装文件加载程序isolinu及其他相关信息.根文件系统镜像(Ramdisk).内核镜像.根文件系统四部分组成.安装过程由安装加载程序控制,直至完成后转入到挂载的根文件系统. ...
- 比较EFI和BIOS
文章太长,有很多人会看不进去.在这个浮躁的社会里,能够把一本书逐字阅读已经变成了一种奢侈,尤其是现在大行其道的速读阅读法,讲究快即是美.而技术来不得半点取巧,需要一点点的读,一点点的思考和吸收,浮躁了 ...
- 【EFI系统分区】关于EFI系统分区的说明
转载:https://zhidao.baidu.com/question/92653981.html EFI 可扩展固件接口(英文名Extensible Firmware Interface 或EFI ...
- efi系统分区是什么?efi系统分区怎么删除?
efi系统分区介绍 EFI在概念上非常类似于一个低阶的操作系统,并且具有操控所有硬件资源的能力.不少人感觉它的不断发展将有可能代替现代的操作系统.事实上,EFI的缔造者们在第一版规范出台时就将EFI的 ...
- EFI删不删有什么影响
EFI,可扩展固件接口英文名Extensible Firmware Interface 的缩写,是英特尔,一个主导个人电脑技术研发的公司推出的一种在未来的类PC的电脑系统中替代BIOS的升级方案. 1 ...
- 苹果8参数配置_黑苹果引导工具-Clover EFI bootloader(支持苹果10.12以上系统)
Clover EFI Mac版是Mac平台上的一款最新支持Mac OS X10.12.10.13.10.14.10.15系统的四叶草启动引导配置工具.借助Clover EFI对Mac系统进行定制,用于 ...
- 手写操作系统(3)——开发环境建立与内核架构设计
之前介绍了简单的Hello OS以及代码是如何运行的.接下来我们会真正动手开始往我们的Hello OS中增加功能,但是--操作系统架构是一个极其精细的活.如老话所言"凡事三思而后行" ...
最新文章
- 结构化的网络故障检测与排除方法
- :架构优化在何时,方成为公司的推动力与核心竞争力
- [OS复习]进程管理5
- C#模拟HTTP POST 请求
- 如何用dds实现线性调频_用神经网络生成线性调频
- android功耗iphone,是心目中的安卓小屏旗舰吗?iPhone 8尺寸大小,4000mAh电池容量...
- jersey spring_实施Jersey 2 Spring集成
- 26 MM配置-采购-采购申请-定义编码范围
- opencv颜色识别_opencv-python污水颜色识别
- 导入 kotlin(7)
- 电芯容量在前期循环中容量增加_锂离子电池容量“跳水”背后元凶找到了!——非均匀压力...
- 邬贺铨/余晓晖/田溯宁…千家从业者,数十位行业大咖共同烹制了一场怎样的AIoT“盛宴”?
- 洛谷——P1307 [NOIP2011 普及组] 数字反转
- Python实现多重弹窗脚本 整蛊朋友
- python生成随机中文_随机字生成器-Python
- DBCP连接池配置优化分析
- 朋友说:能不能用python,帮我写一个“制作工资条”的自动化程序?
- CSS3无限滚动(无线循环滚动)
- 青柚文案:水果店青柚推广文案,水果青柚广告文案
- android系统优化排行,性能最强的10大安卓手机排行,你用的排第几?