|
#define | XHCI_MIN_ALIGN 64 |
| Minimum alignment required for data structures. More...
|
|
#define | XHCI_MTU 65536 |
| Maximum transfer size. More...
|
|
#define | XHCI_BAR PCI_BASE_ADDRESS_0 |
| xHCI PCI BAR More...
|
|
#define | XHCI_CAP_CAPLENGTH 0x00 |
| Capability register length. More...
|
|
#define | XHCI_CAP_HCIVERSION 0x02 |
| Host controller interface version number. More...
|
|
#define | XHCI_CAP_HCSPARAMS1 0x04 |
| Structural parameters 1. More...
|
|
#define | XHCI_HCSPARAMS1_SLOTS(params) ( ( (params) >> 0 ) & 0xff ) |
| Number of device slots. More...
|
|
#define | XHCI_HCSPARAMS1_INTRS(params) ( ( (params) >> 8 ) & 0x3ff ) |
| Number of interrupters. More...
|
|
#define | XHCI_HCSPARAMS1_PORTS(params) ( ( (params) >> 24 ) & 0xff ) |
| Number of ports. More...
|
|
#define | XHCI_CAP_HCSPARAMS2 0x08 |
| Structural parameters 2. More...
|
|
#define | XHCI_HCSPARAMS2_SCRATCHPADS(params) ( ( ( (params) >> 16 ) & 0x3e0 ) | ( ( (params) >> 27 ) & 0x1f ) ) |
| Number of page-sized scratchpad buffers. More...
|
|
#define | XHCI_CAP_HCCPARAMS1 0x10 |
| Capability parameters. More...
|
|
#define | XHCI_HCCPARAMS1_ADDR64(params) ( ( (params) >> 0 ) & 0x1 ) |
| 64-bit addressing capability More...
|
|
#define | XHCI_HCCPARAMS1_CSZ_SHIFT(params) ( 5 + ( ( (params) >> 2 ) & 0x1 ) ) |
| Context size shift. More...
|
|
#define | XHCI_HCCPARAMS1_XECP(params) ( ( ( (params) >> 16 ) & 0xffff ) << 2 ) |
| xHCI extended capabilities pointer More...
|
|
#define | XHCI_CAP_DBOFF 0x14 |
| Doorbell offset. More...
|
|
#define | XHCI_CAP_RTSOFF 0x18 |
| Runtime register space offset. More...
|
|
#define | XHCI_XECP_ID(xecp) ( ( (xecp) >> 0 ) & 0xff ) |
| xHCI extended capability ID More...
|
|
#define | XHCI_XECP_NEXT(xecp) ( ( ( (xecp) >> 8 ) & 0xff ) << 2 ) |
| Next xHCI extended capability pointer. More...
|
|
#define | XHCI_XECP_ID_LEGACY 1 |
| USB legacy support extended capability. More...
|
|
#define | XHCI_USBLEGSUP_BIOS 0x02 |
| USB legacy support BIOS owned semaphore. More...
|
|
#define | XHCI_USBLEGSUP_BIOS_OWNED 0x01 |
| USB legacy support BIOS ownership flag. More...
|
|
#define | XHCI_USBLEGSUP_OS 0x03 |
| USB legacy support OS owned semaphore. More...
|
|
#define | XHCI_USBLEGSUP_OS_OWNED 0x01 |
| USB legacy support OS ownership flag. More...
|
|
#define | XHCI_USBLEGSUP_CTLSTS 0x04 |
| USB legacy support control/status. More...
|
|
#define | XHCI_XECP_ID_SUPPORTED 2 |
| Supported protocol extended capability. More...
|
|
#define | XHCI_SUPPORTED_REVISION 0x00 |
| Supported protocol revision. More...
|
|
#define | XHCI_SUPPORTED_REVISION_VER(revision) ( ( (revision) >> 16 ) & 0xffff ) |
| Supported protocol minor revision. More...
|
|
#define | XHCI_SUPPORTED_NAME 0x04 |
| Supported protocol name. More...
|
|
#define | XHCI_SUPPORTED_PORTS 0x08 |
| Supported protocol ports. More...
|
|
#define | XHCI_SUPPORTED_PORTS_OFFSET(ports) ( ( (ports) >> 0 ) & 0xff ) |
| Supported protocol port offset. More...
|
|
#define | XHCI_SUPPORTED_PORTS_COUNT(ports) ( ( (ports) >> 8 ) & 0xff ) |
| Supported protocol port count. More...
|
|
#define | XHCI_SUPPORTED_PORTS_PSIC(ports) ( ( (ports) >> 28 ) & 0x0f ) |
| Supported protocol PSI count. More...
|
|
#define | XHCI_SUPPORTED_SLOT 0x0c |
| Supported protocol slot. More...
|
|
#define | XHCI_SUPPORTED_SLOT_TYPE(slot) ( ( (slot) >> 0 ) & 0x1f ) |
| Supported protocol slot type. More...
|
|
#define | XHCI_SUPPORTED_PSI(index) ( 0x10 + ( (index) * 4 ) ) |
| Supported protocol PSI. More...
|
|
#define | XHCI_SUPPORTED_PSI_VALUE(psi) ( ( (psi) >> 0 ) & 0x0f ) |
| Supported protocol PSI value. More...
|
|
#define | XHCI_SUPPORTED_PSI_MANTISSA(psi) ( ( (psi) >> 16 ) & 0xffff ) |
| Supported protocol PSI mantissa. More...
|
|
#define | XHCI_SUPPORTED_PSI_EXPONENT(psi) ( ( (psi) >> 4 ) & 0x03 ) |
| Supported protocol PSI exponent. More...
|
|
#define | XHCI_OP_USBCMD 0x00 |
| USB command register. More...
|
|
#define | XHCI_USBCMD_RUN 0x00000001UL |
| Run/stop. More...
|
|
#define | XHCI_USBCMD_HCRST 0x00000002UL |
| Host controller reset. More...
|
|
#define | XHCI_OP_USBSTS 0x04 |
| USB status register. More...
|
|
#define | XHCI_USBSTS_HCH 0x00000001UL |
| Host controller halted. More...
|
|
#define | XHCI_OP_PAGESIZE 0x08 |
| Page size register. More...
|
|
#define | XHCI_PAGESIZE(pagesize) ( (pagesize) << 12 ) |
| Page size. More...
|
|
#define | XHCI_OP_DNCTRL 0x14 |
| Device notifcation control register. More...
|
|
#define | XHCI_OP_CRCR 0x18 |
| Command ring control register. More...
|
|
#define | XHCI_CRCR_RCS 0x00000001UL |
| Command ring cycle state. More...
|
|
#define | XHCI_CRCR_CA 0x00000004UL |
| Command abort. More...
|
|
#define | XHCI_CRCR_CRR 0x00000008UL |
| Command ring running. More...
|
|
#define | XHCI_OP_DCBAAP 0x30 |
| Device context base address array pointer. More...
|
|
#define | XHCI_OP_CONFIG 0x38 |
| Configure register. More...
|
|
#define | XHCI_CONFIG_MAX_SLOTS_EN(slots) ( (slots) << 0 ) |
| Maximum device slots enabled. More...
|
|
#define | XHCI_CONFIG_MAX_SLOTS_EN_MASK XHCI_CONFIG_MAX_SLOTS_EN ( 0xff ) |
| Maximum device slots enabled mask. More...
|
|
#define | XHCI_OP_PORTSC(port) ( 0x400 - 0x10 + ( (port) << 4 ) ) |
| Port status and control register. More...
|
|
#define | XHCI_PORTSC_CCS 0x00000001UL |
| Current connect status. More...
|
|
#define | XHCI_PORTSC_PED 0x00000002UL |
| Port enabled. More...
|
|
#define | XHCI_PORTSC_PR 0x00000010UL |
| Port reset. More...
|
|
#define | XHCI_PORTSC_PLS(pls) ( (pls) << 5 ) |
| Port link state. More...
|
|
#define | XHCI_PORTSC_PLS_DISABLED XHCI_PORTSC_PLS ( 4 ) |
| Disabled port link state. More...
|
|
#define | XHCI_PORTSC_PLS_RXDETECT XHCI_PORTSC_PLS ( 5 ) |
| RxDetect port link state. More...
|
|
#define | XHCI_PORTSC_PLS_MASK XHCI_PORTSC_PLS ( 0xf ) |
| Port link state mask. More...
|
|
#define | XHCI_PORTSC_PP 0x00000200UL |
| Port power. More...
|
|
#define | XHCI_PORT_POWER_DELAY_MS 20 |
| Time to delay after enabling power to a port. More...
|
|
#define | XHCI_PORTSC_PSIV(portsc) ( ( (portsc) >> 10 ) & 0xf ) |
| Port speed ID value. More...
|
|
#define | XHCI_PORTSC_PIC(indicators) ( (indicators) << 14 ) |
| Port indicator control. More...
|
|
#define | XHCI_PORTSC_PIC_MASK XHCI_PORTSC_PIC ( 3 ) |
| Port indicator control mask. More...
|
|
#define | XHCI_PORTSC_LWS 0x00010000UL |
| Port link state write strobe. More...
|
|
#define | XHCI_LINK_STATE_DELAY_MS 100 |
| Time to delay after writing the port link state. More...
|
|
#define | XHCI_PORTSC_CSC 0x00020000UL |
| Connect status change. More...
|
|
#define | XHCI_PORTSC_PEC 0x00040000UL |
| Port enabled/disabled change. More...
|
|
#define | XHCI_PORTSC_WRC 0x00080000UL |
| Warm port reset change. More...
|
|
#define | XHCI_PORTSC_OCC 0x00100000UL |
| Over-current change. More...
|
|
#define | XHCI_PORTSC_PRC 0x00200000UL |
| Port reset change. More...
|
|
#define | XHCI_PORTSC_PLC 0x00400000UL |
| Port link state change. More...
|
|
#define | XHCI_PORTSC_CEC 0x00800000UL |
| Port config error change. More...
|
|
#define | XHCI_PORTSC_CHANGE |
| Port status change mask. More...
|
|
#define | XHCI_PORTSC_PRESERVE ( XHCI_PORTSC_PP | XHCI_PORTSC_PIC_MASK ) |
| Port status and control bits which should be preserved. More...
|
|
#define | XHCI_OP_PORTPMSC(port) ( 0x404 - 0x10 + ( (port) << 4 ) ) |
| Port power management status and control register. More...
|
|
#define | XHCI_OP_PORTLI(port) ( 0x408 - 0x10 + ( (port) << 4 ) ) |
| Port link info register. More...
|
|
#define | XHCI_OP_PORTHLPMC(port) ( 0x40c - 0x10 + ( (port) << 4 ) ) |
| Port hardware link power management control register. More...
|
|
#define | XHCI_RUN_ERSTSZ(intr) ( 0x28 + ( (intr) << 5 ) ) |
| Event ring segment table size register. More...
|
|
#define | XHCI_RUN_ERSTBA(intr) ( 0x30 + ( (intr) << 5 ) ) |
| Event ring segment table base address register. More...
|
|
#define | XHCI_RUN_ERDP(intr) ( 0x38 + ( (intr) << 5 ) ) |
| Event ring dequeue pointer register. More...
|
|
#define | XHCI_TRB_C 0x01 |
| Transfer request block cycle bit flag. More...
|
|
#define | XHCI_TRB_TC 0x02 |
| Transfer request block toggle cycle bit flag. More...
|
|
#define | XHCI_TRB_CH 0x10 |
| Transfer request block chain flag. More...
|
|
#define | XHCI_TRB_IOC 0x20 |
| Transfer request block interrupt on completion flag. More...
|
|
#define | XHCI_TRB_IDT 0x40 |
| Transfer request block immediate data flag. More...
|
|
#define | XHCI_TRB_TYPE(type) ( (type) << 2 ) |
| Transfer request block type. More...
|
|
#define | XHCI_TRB_TYPE_MASK XHCI_TRB_TYPE ( 0x3f ) |
| Transfer request block type mask. More...
|
|
#define | XHCI_TRB_NORMAL XHCI_TRB_TYPE ( 1 ) |
| A normal transfer request block. More...
|
|
#define | XHCI_TD_SIZE(remaining) ( ( ( (remaining) <= 0xf ) ? remaining : 0xf ) << 17 ) |
| Construct TD size field. More...
|
|
#define | XHCI_TRB_SETUP XHCI_TRB_TYPE ( 2 ) |
| A setup stage transfer request block. More...
|
|
#define | XHCI_SETUP_IN 3 |
| Setup stage input data direction. More...
|
|
#define | XHCI_SETUP_OUT 2 |
| Setup stage output data direction. More...
|
|
#define | XHCI_TRB_DATA XHCI_TRB_TYPE ( 3 ) |
| A data stage transfer request block. More...
|
|
#define | XHCI_DATA_IN 0x01 |
| Input data direction. More...
|
|
#define | XHCI_DATA_OUT 0x00 |
| Output data direction. More...
|
|
#define | XHCI_TRB_STATUS XHCI_TRB_TYPE ( 4 ) |
| A status stage transfer request block. More...
|
|
#define | XHCI_STATUS_IN 0x01 |
| Input status direction. More...
|
|
#define | XHCI_STATUS_OUT 0x00 |
| Output status direction. More...
|
|
#define | XHCI_TRB_LINK XHCI_TRB_TYPE ( 6 ) |
| A link transfer request block. More...
|
|
#define | XHCI_TRB_NOP XHCI_TRB_TYPE ( 8 ) |
| A no-op transfer request block. More...
|
|
#define | XHCI_TRB_ENABLE_SLOT XHCI_TRB_TYPE ( 9 ) |
| An enable slot transfer request block. More...
|
|
#define | XHCI_TRB_DISABLE_SLOT XHCI_TRB_TYPE ( 10 ) |
| A disable slot transfer request block. More...
|
|
#define | XHCI_TRB_ADDRESS_DEVICE XHCI_TRB_TYPE ( 11 ) |
| An address device transfer request block. More...
|
|
#define | XHCI_TRB_CONFIGURE_ENDPOINT XHCI_TRB_TYPE ( 12 ) |
| A configure endpoint transfer request block. More...
|
|
#define | XHCI_TRB_EVALUATE_CONTEXT XHCI_TRB_TYPE ( 13 ) |
| An evaluate context transfer request block. More...
|
|
#define | XHCI_TRB_RESET_ENDPOINT XHCI_TRB_TYPE ( 14 ) |
| A reset endpoint transfer request block. More...
|
|
#define | XHCI_TRB_STOP_ENDPOINT XHCI_TRB_TYPE ( 15 ) |
| A stop endpoint transfer request block. More...
|
|
#define | XHCI_TRB_SET_TR_DEQUEUE_POINTER XHCI_TRB_TYPE ( 16 ) |
| A set transfer ring dequeue pointer transfer request block. More...
|
|
#define | XHCI_TRB_NOP_CMD XHCI_TRB_TYPE ( 23 ) |
| A no-op command transfer request block. More...
|
|
#define | XHCI_TRB_TRANSFER XHCI_TRB_TYPE ( 32 ) |
| A transfer event transfer request block. More...
|
|
#define | XHCI_TRB_COMPLETE XHCI_TRB_TYPE ( 33 ) |
| A command completion event transfer request block. More...
|
|
#define | XHCI_TRB_PORT_STATUS XHCI_TRB_TYPE ( 34 ) |
| A port status change transfer request block. More...
|
|
#define | XHCI_TRB_HOST_CONTROLLER XHCI_TRB_TYPE ( 37 ) |
| A port status change transfer request block. More...
|
|
#define | XHCI_SLOT_INFO(entries, hub, speed, route) ( ( (entries) << 27 ) | ( (hub) << 26 ) | ( (speed) << 20 ) | (route) ) |
| Construct slot context device info. More...
|
|
#define | XHCI_ENDPOINT_STATE_MASK 0x07 |
| Endpoint state mask. More...
|
|
#define | XHCI_EP_TYPE(type) ( (type) << 3 ) |
| Endpoint type. More...
|
|
#define | XHCI_EP_TYPE_CONTROL XHCI_EP_TYPE ( 4 ) |
| Control endpoint type. More...
|
|
#define | XHCI_EP_TYPE_IN XHCI_EP_TYPE ( 4 ) |
| Input endpoint type. More...
|
|
#define | XHCI_EP_TYPE_PERIODIC XHCI_EP_TYPE ( 1 ) |
| Periodic endpoint type. More...
|
|
#define | XHCI_EP_DCS 0x00000001UL |
| Endpoint dequeue cycle state. More...
|
|
#define | XHCI_EP0_TRB_LEN 8 |
| Control endpoint average TRB length. More...
|
|
#define | XHCI_DBVAL(target, stream) ( (target) | ( (stream) << 16 ) ) |
| Calculate doorbell register value. More...
|
|
#define | XHCI_CTX_SLOT 0 |
| Slot context index. More...
|
|
#define | XHCI_CTX(address) |
| Calculate context index from USB endpoint address. More...
|
|
#define | XHCI_CTX_EP0 XHCI_CTX ( 0x00 ) |
| Endpoint zero context index. More...
|
|
#define | XHCI_CTX_END 32 |
| End of contexts. More...
|
|
#define | XHCI_DCI(ctx) ( (ctx) + 0 ) |
| Device context index. More...
|
|
#define | XHCI_ICI(ctx) ( (ctx) + 1 ) |
| Input context index. More...
|
|
#define | XHCI_CMD_TRBS_LOG2 2 |
| Number of TRBs (excluding Link TRB) in the command ring. More...
|
|
#define | XHCI_EVENT_TRBS_LOG2 6 |
| Number of TRBs in the event ring. More...
|
|
#define | XHCI_TRANSFER_TRBS_LOG2 6 |
| Number of TRBs in a transfer ring. More...
|
|
#define | XHCI_USBLEGSUP_MAX_WAIT_MS 100 |
| Maximum time to wait for BIOS to release ownership. More...
|
|
#define | XHCI_STOP_MAX_WAIT_MS 100 |
| Maximum time to wait for host controller to stop. More...
|
|
#define | XHCI_RESET_MAX_WAIT_MS 500 |
| Maximum time to wait for reset to complete. More...
|
|
#define | XHCI_COMMAND_MAX_WAIT_MS USB_CONTROL_MAX_WAIT_MS |
| Maximum time to wait for a command to complete. More...
|
|
#define | XHCI_COMMAND_ABORT_DELAY_MS 500 |
| Time to delay after aborting a command. More...
|
|
#define | XHCI_PORT_RESET_MAX_WAIT_MS 500 |
| Maximum time to wait for a port reset to complete. More...
|
|
#define | XHCI_PCH 0x0001 |
| Intel PCH quirk flag. More...
|
|
#define | XHCI_PCH_XUSB2PR 0xd0 |
| Intel PCH USB2 port routing register. More...
|
|
#define | XHCI_PCH_XUSB2PRM 0xd4 |
| Intel PCH USB2 port routing mask register. More...
|
|
#define | XHCI_PCH_USB3PSSEN 0xd8 |
| Intel PCH SuperSpeed enable register. More...
|
|
#define | XHCI_PCH_USB3PRM 0xdc |
| Intel PCH USB3 port routing mask register. More...
|
|
#define | XHCI_BAD_PSIV 0x0002 |
| Invalid protocol speed ID values quirk. More...
|
|