UEFI学习笔记(十四):UEFI驱动的分类与UEFI驱动模型

(一)UEFI的驱动分类

在UEFI中,驱动分为两类:

1、UEFI_DRIVER:

符合UEFI驱动模型的驱动。包括总线驱动、设备驱动和混合驱动。通过实现 Driver Binding Protocol 来控制设备。这些驱动程序可以动态地启动、停止和管理设备。

2、DXE_DRIVER:

不遵循UEFI驱动模型的驱动。从功能上划分可以划分成:

(1)服务型驱动

不管理任何设备,不需要硬件支持,用来产生protocol提供功能服务。一般来说,服务是可以常驻内存的,应用程序不能常驻内存,只有驱动可以,所以用驱动的形式来提供服务,称之为服务型驱动。

(2)初始化驱动

不产生任何句柄,用来做一些初始化操作,执行完后就会从系统中卸载

(3)根桥型驱动

用来初始化平台上的根桥控制器,并产生一个设备地址Protocol,以及访问总线设备的Protocol。一般用来通过总线驱动访问设备。比如,使用的支持访问PCIE/PCI设备的EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL

UEFI Driver 主要用于管理 PCI 设备,采用分层架构,具有良好的模块化特性,层次结构清晰。相较之下,DXE Driver 主要负责平台的初始化工作以及一些功能服务。

(二)UEFI Driver模型

一、定义

Device Driver 在 DXE 阶段加载,而应用程序则在 BDS 阶段加载。通过在 BDS 启动时访问设备,可以提供相应的输入和输出设备。

引入 Device Driver 旨在实现更好的模块化管理,主要用于设备管理。它支持二进制发布,并可以集成到 Option ROM 中,同时提供清晰的外部接口,从而提升固件的扩展性。

从 UEFI 驱动程序模型的角度来看,总线驱动程序和设备驱动程序几乎是相同的。唯一的区别在于,总线驱动程序必须为其创建的每个子句柄安装协议接口。最低要求是它需要安装一个协议接口,为子控制器提供总线服务的 I/O 抽象。如果总线驱动程序创建的子句柄代表的是一个物理设备,则它还必须在子句柄上安装 Device Path Protocol 实例。
设备驱动的连接
总线驱动的连接

二、如何加载

Application:在 DXE 阶段加载,执行入口点(Entry Point),完成驱动初始化,安装相关协议到Handle Database,然后退出入口点,将控制权交给 UEFI Loader。

Driver:同样在 DXE 阶段加载,执行入口点,进行驱动初始化,安装协议,然后退出入口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值