UEFI & EDKII学习

UEFI: FW和OS之间抽象的规范,标准

UEFI提供了启动环境、接口和结构的集合,压缩算法等

UEFI目标:驱动尽可能小等

驱动片控制总线和设备,提供服务。服务包括boot (OS前), RT (OS前后)

驱动片:包括PCI bus, PCI device, USB bus, USB device, SCSI等

protocol: 包括EFI load image, device path, driver model等。driver model包括服务,binding, override等

EDKII: UEFI 的一种开源实现

定义了BIOS启动流程:SEC->PEI->DXE->BDS->TSL->RT->AL

包:包括模块,dsc(平台描述文件),dec(包声明文件)

UEFI 模块:包括标准应用程序工程模块,ShellAppMain应用程序工程模块,main 应用程序工程模块,UEFI驱动模块,库模块等。工程模块:包括inf 文件,源文件,可选efi文件

标准应用程序:包括工程文件,源文件。源文件:包括C/C++文件,asm 汇编文件,可选uni字符串资源文件,vfr窗体资源文件。

uni文件:

#string STR_XXXX #language en-US "XXXX XXX XX"

                               #language xx-XX "XXX"

STR_XXXX: token,标记。 en-us: RFC4646语言代码,如en-us, zh-CN, fr-FR等。

一个setup选项用一个token 表示,但可以选择显示多种语言。

C代码中使用uni文件的定义,要在[Sources]中包含uni文件。

Unicode: 16位统一码,包含全世界字符,每个字对应一个唯一编号。

vfr 文件:窗体资源文件,有自己的语法和语句,可以很简单的画出setup页面,比如goto 会画出带右箭头的选项。显示帮助也有语法可以简单得实现。

 

你可能感兴趣的:(学习笔记)