UEFI USB端口控制

BIOS下 usb 智能管控,主要是控制每一个接口的开启关闭,以及存储设备的只读功能。

如果ec没有针对每一个usb端口进行供电控制,需要使用软件方案完成该功能。

目前每一个usb端口在uefi中都有一个devicePath,在uefi shell中可以看到当前插入的usb设备,主要是u盘,或者鼠标键盘

例如:

 L"PciRoot(0x0)/Pci(0x7,0x1)/Pci(0x0,0x3)/USB(0x6,0x0)/USB(0x3,"

前面是pci 设备路径,分别是DEV FUNC号。USB路径 ,分别是port以及interface.

我们这边可以先使用shell或者打印,将每一个端口路径打印出来,和硬件进行对比确认正确。

有了所有的端口路径,我们就可以针对所有端口进行软件控制。

在usb扫描过程中,会创建USB_INTERFACE,这个代表设备所用到的接口,一般u盘、键盘会是一个接口,鼠标可能会有2个interface.

在Bus\Usb\UsbBusDxe\UsbEnumer.c UsbCreateInterface 函数中会创建usb interface.并且为每一个interface安装gEfiUsbIoProtocolGuid,该gEfiUsbIoProtocolGuid会在后续鼠标键盘u盘驱动中使用,驱动通过该gEfiUsbIoProtocolGuid调用设备以及设备方法。

可在UsbCreateInterface 中进行端口的管控

 

针对USB的存储只读,可在u盘驱动中,在读写函数中对DevicePath进行判断,然后进行控制。

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值