EDK II之Device Path

时间:2023-03-08 17:56:32

UEFI中通过Device Path来描述设备的路径,一个完整的路径由多个Device Path Nodes组成。

EDK II之Device Path

下面通过输入设备的路径作为例子:

PNP0A03 – PCI Host Bridge
PNP0303 – PC Keyboard Controller
ConIn: The device path of the default input console.

下图是在系统不接任何外设的情况下:系统中只有一个输入设备:PS2 KB

EDK II之Device Path

下图在上图的基础上外接了一个USB的键盘:可以看到,除了一个PS2的键盘,系统的输入设备多了一个USB设备。

EDK II之Device Path

下面的截图摘自UEFI Spec,Spec对每个Device Path Node的类型做了定义:

EDK II之Device Path

EDK II之Device Path

EDK II之Device Path

EDK II之Device Path

EDK II之Device Path

EDK II之Device Path

下面是boot option的例子:

下图表示系统上有2个可以boot的设备,BootOrder显示2个设备的启动顺序:boot0000,boot0001

EDK II之Device Path

EDK II之Device Path

EDK II之Device Path

EDK II之Device Path

EDK II之Device Path

01 01 06 00 00 14:表示PCI(0x14,0x00):device14  function00

EDK II之Device Path

03 05 06 00 0E 00:表示USB(0x0E,0x00)(U盘接在Port14,使用的interface为00)

下面是PXE的boot option(使用的是接在USB HUB上的LAN dongle):

EDK II之Device Path

EDK II之Device Path

下面是Legacy support的boot option:

EDK II之Device Path

EDK II之Device Path