EFI基本概念之UDK2015定制EDKTOOL

本文介绍了如何使用EDKTool为不被原生支持的CPU架构构建EFI BIOS。主要涉及内容包括:EDKTool的作用、编译过程,以及针对新平台需要修改的Conf和Source文件夹中的内容,如build.py、FfsInfStatement.py、PeImage.h、GenFw工具和tools_def.template的调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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需要在此文件中设定。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值