1.DXE阶段做哪些事?
(1)几乎所有的硬件的初始化都在这做完
(2)产生efi system table, 来提供各种service供所面阶段使用。
(3)把控制权交给bds来boot os.
2.DXE 有哪些元件? 各有什么功能?
(1)DXE Core,可视为dxe的核心,用来dispatch dxe driver 和产生efi system table,以提供
boot service, runtime service, dxe service.
(2) dxe driver, 被dxe core 所读取,用来做各种硬件的初始化,产生protocol和其他service.
(3) dxe dispatcher: dxe core 的一部分,以正确的顺序来搜寻和执行dxe driver.
(4) dxe architecture protocol: 由dxe driver所产生,是dxe core和hardware沟通的唯一介面,所以
没有install 完全不能开机。
(5) efi system table: 包含了许多pointer,如所有 efi system table, configuration table, handle
database, and console device.
3 dxe 用什么元件找到FV? 用什么方式将driver 读到memory中?
用firmware volume block driver, 以memory mapped io的方式,pe/coff loader.
4. DXE architecture protocol 有哪些? 各有什么功能?
(1)security: 提供 DXE core 验证 firmware volume中的程序是否可用。
(2)cpu: 提供cpu的service如管理cache,管理中断,取得处理器频率,查询处理器的timer.
(3)typedef struct _EFI_METRONOME_ARCH_PROTOCOL {
EFI_METRONOME_WAIT_FOR_TICK WaitForTIck;
UINT32 TickPeriod;
} EFI_METRONOME_ARCH_PROTOCOL;
提供一个微小的延时,百万分之一秒为单位。
4 Timer: 提供固定时间的中断,使dxe core dispatch 完成所有driver后,会将控制权交给BDS.