Edit online

USB Host Controller Driver

6 Dec 2024
Read time: 1 minute(s)
1. 源码说明
相关模块 源码路径
EHCI

source\linux-5.10\drivers\usb\host\ehci-aic.c

source\linux-5.10\drivers\usb\host\ehci-hcd.c

source\linux-5.10\drivers\usb\host\ehci-mem.c

source\linux-5.10\drivers\usb\host\ehci-q.c

source\linux-5.10\drivers\usb\host\ehci-timer.c

source\linux-5.10\drivers\usb\host\ehci-hub.c


image1

1. 模块架构

从 Host Controller Driver (HCD) 的框架图中可以看到,HCD 主要提供了两大功能:

  1. 普通 URB 数据收发功能。

    将 USB Class Driver 下发的 URB,按照硬件控制器要求的格式,按分类发送到硬件 List 当中。

  2. RootHub URB 的处理功能。

    对于 RootHub Driver 下发的 ep0 控制命令 URB,系统不会发送到硬件控制器之上,而是转发给 HCD 使用软件来模拟执行。

    对于 RootHub Driver 下发的端口状态查询 URB,通过响应中断进行上报。