XHCI,即可扩展的主机控制器接口,是英特尔公司开发的一个USB主机控制器接口,它主要是面向USB 3.0的,同时它也支持USB 2.0及以下的设备,包括所有种类速度的USB设备(USB 3.0 SuperSpeed, USB 2.0 Low-, Full-, and High-speed, USB 1.1 Low- and Full-speed),是UHCI/OHCI/EHCI等接口标准的升级版本
XHCI接口架构主要包括三大部分,
驱动相关的源文件如下,
drivers/usb/fxhci
├── fxhci.c
├── fxhci.h
├── fxhci_cmd.c
├── fxhci_debug.c
├── fxhci_dev.c
├── fxhci_evt.c
├── fxhci_hw.c
├── fxhci_hw.h
├── fxhci_private.h
└── fxhci_roothub.c
USB主机操作和USB设备发现
USB大容量存储器读写
无
下列错误码来自XHCI标准
- [5] FXHCI_CC_TRB_ERROR : TRB error (XHCI spec.)
- [6] FXHCI_CC_STALL_ERROR : stall error (XHCI spec.)
- [7] FXHCI_CC_RESOURCE_ERROR : resource error (XHCI spec.)
- [8] FXHCI_CC_BANDWIDTH_ERROR : bandwidth error (XHCI spec.)
- [9] FXHCI_CC_NO_SLOTS_AVAILABLE : No available slot error (XHCI spec.)
- [13] FXHCI_CC_SHORT_PACKET : short packet error (XHCI spec.)
- [21] FXHCI_CC_EVENT_RING_FULL_ERROR : event ring full error (XHCI spec.)
- [24] FXHCI_CC_COMMAND_RING_STOPPED : command ring stopped error (XHCI spec.)
- [25] FXHCI_CC_STOPPED : command abort error (XHCI spec.)
- [26] FXHCI_CC_TRB_ERROR : stopped error (XHCI spec.)
- [27] FXHCI_CC_STOPPED_LENGTH_INVALID : stopped invalid length error (XHCI spec.)
FUsbHc *FXhciHcInit (FUsb *instance, uintptr base_addr)
Note:
Input:
Return: