遇到过一些关于USB的东西(如下)
1. 曾经遇到一些Linux系统对USB3.0的支持不完善,从而导致在有USB3.0设备的PC上启动失败(kernel panic)。
2. 也曾在BIOS中设置为“开启EHCI,关闭XHCI”等来坚持使用USB2.0
3. 在QEMU代码中看到它支持的各种配置:
所以,这里就简单列一下各种xHCI(也包括真正的xHCI)的基本含义吧。
简单地讲,OHCI、UHCI都是USB1.1的接口标准,而EHCI是对应USB2.0的接口标准,最新的xHCI是USB3.0的接口标准。
是支持USB1.1的标准,但它不仅仅是针对USB,还支持其他的一些接口,比如它还支持Apple的火线(Firewire,IEEE 1394)接口。与UHCI相比,OHCI的硬件复杂,硬件做的事情更多,所以实现对应的软件驱动的任务,就相对较简单。主要用于非x86的USB,如扩展卡、嵌入式开发板的USB主控。
是Intel主导的对USB1.0、1.1的接口标准,与OHCI不兼容。UHCI的软件驱动的任务重,需要做得比较复杂,但可以使用较便宜、较简单的硬件的USB控制器。Intel和VIA使用UHCI,而其余的硬件提供商使用OHCI。
是Intel主导的USB2.0的接口标准。EHCI仅提供USB2.0的高速功能,而依靠UHCI或OHCI来提供对全速(full-speed)或低速(low-speed)设备的支持。