文章目录[隐藏]
上一节主要讲了USB主控制器驱动的一般流程,接下来主要讲一下USB 总线驱动和USB 设备驱动
USB总线驱动
同样的,从下面的函数开始说起:
EFI_STATUS
EFIAPI
UsbBusControllerDriverStart (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{......
尝试打开USB BUS Protocol 判断UsbBus 驱动程序是否已经在当前主控制器句柄上启动。
如果第一次启动,则需要调用UsbBusBuildProtocol()进行初始化。
//
// If first start, build the bus execute environment and install bus protocol
//
REPORT_STATUS_CODE (EFI_PROGRESS_CODE, (EFI_IO_BUS_USB | EFI_P_PC_ENABLE));
Status = UsbBusBuildProtocol (This, Controller, RemainingDevicePath);
整体流程如下图:
USB Device(Mass Storage)驱动初始化的流程
重启USB(MASS DEVICE)设备
版权声明:本文为CSDN博主「潇洒Anthony」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011397314/article/details/122338270
上一节主要讲了USB主控制器驱动的一般流程,接下来主要讲一下USB 总线驱动和USB 设备驱动
USB总线驱动
同样的,从下面的函数开始说起:
EFI_STATUS
EFIAPI
UsbBusControllerDriverStart (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{......
尝试打开USB BUS Protocol 判断UsbBus 驱动程序是否已经在当前主控制器句柄上启动。
如果第一次启动,则需要调用UsbBusBuildProtocol()进行初始化。
//
// If first start, build the bus execute environment and install bus protocol
//
REPORT_STATUS_CODE (EFI_PROGRESS_CODE, (EFI_IO_BUS_USB | EFI_P_PC_ENABLE));
Status = UsbBusBuildProtocol (This, Controller, RemainingDevicePath);
整体流程如下图:
USB Device(Mass Storage)驱动初始化的流程
重启USB(MASS DEVICE)设备
版权声明:本文为CSDN博主「潇洒Anthony」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011397314/article/details/122338270
暂无评论