73 Register Summary

The Enhanced USB Host Controller contains two sets of software-accessible hardware registers: memory-mapped Host Controller Registers and optional PCI configuration registers. Note that the PCI configuration registers are only needed for PCI devices that implement the Host Controller.

  • Memory-mapped USB Host Controller Registers—This block of registers is memory-mapped into non-cacheable memory. This memory space must begin on a DWord (32-bit) boundary. This register space is divided into two sections: a set of read-only capability registers and a set of read/write operational registers. The table below describes each register space.
    Note: Host controllers are not required to support exclusive-access mechanisms (such as PCI LOCK) for accesses to the memory-mapped register space. Therefore, if software attempts exclusive-access mechanisms to the host controller memory-mapped register space, the results are undefined.
  • PCI Configuration Registers (for PCI devices)—In addition to the normal PCI header, power management, and device-specific registers, two registers are needed in the PCI configuration space to support USB. The normal PCI header and device-specific registers are beyond the scope of this document (the UHPHS_CLASSC register is shown in this document). Note that HCD does not interact with the PCI configuration space. This space is used only by the PCI enumerator to identify the USB Host Controller, and assign the appropriate system resources.

    The table below summarizes the enhanced interface register sets.

    Offset Register Set Explanation
    0 to N-1 Capability Registers The capability registers specify the limits, restrictions, and capabilities of a host controller implementation.

    These values are used as parameters to the host controller driver.

    N to N+M-1 Operational Registers The operational registers are used by system software to control and monitor the operational state of the host controller.
Note: Software must not modify reserved bits in Read/Write registers.
OffsetNameBit Pos.76543210
0x00UHPHS_HCCAPBASE31:24HCIVERSION[15:8]
23:16HCIVERSION[7:0]
15:8        
7:0CAPLENGTH[7:0]
0x04UHPHS_HCSPARAMS31:24        
23:16N_DP[3:0]   P_INDICATOR
15:8N_CC[3:0]N_PCC[3:0]
7:0   PPCN_PORTS[3:0]
0x08UHPHS_HCCPARAMS31:24        
23:16        
15:8EECP[7:0]
7:0IST[3:0] ASPCPFLFAC

0x0C

...

0x0F

Reserved         
0x10UHPHS_USBCMD31:24        
23:16ITC[7:0]
15:8    ASPME ASPMC[1:0]
7:0LHCRIAADASEPSEFLS[1:0]HCRESETRS
0x14UHPHS_USBSTS31:24        
23:16        
15:8ASSPSSRCMHCHLT    
7:0  IAAHSEFLRPCDUSBERRINTUSBINT
0x18UHPHS_USBINTR31:24        
23:16        
15:8        
7:0  IAAEHSEEFLREPCIEUSBEIEUSBIE
0x1CUHPHS_FRINDEX31:24        
23:16        
15:8  FI[13:8]
7:0FI[7:0]

0x20

...

0x23

Reserved         
0x24UHPHS_PERIODICLISTBASE31:24BA[19:12]
23:16BA[11:4]
15:8BA[3:0]    
7:0        
0x28UHPHS_ASYNCLISTADDR31:24LPL[26:19]
23:16LPL[18:11]
15:8LPL[10:3]
7:0LPL[2:0]     

0x2C

...

0x4F

Reserved         
0x50UHPHS_CONFIGFLAG31:24        
23:16        
15:8        
7:0       CF
0x54UHPHS_PORTSC031:24        
23:16 WKOC_EWKDSCNNT_EWKCNNT_EPTC[3:0]
15:8PIC[1:0]POPPLS[1:0] PR
7:0SUSFPROCCOCAPEDCPEDCSCCCS
0x58UHPHS_PORTSC131:24        
23:16 WKOC_EWKDSCNNT_EWKCNNT_EPTC[3:0]
15:8PIC[1:0]POPPLS[1:0] PR
7:0SUSFPROCCOCAPEDCPEDCSCCCS
0x5CUHPHS_PORTSC231:24        
23:16 WKOC_EWKDSCNNT_EWKCNNT_EPTC[3:0]
15:8PIC[1:0]POPPLS[1:0] PR
7:0SUSFPROCCOCAPEDCPEDCSCCCS

0x60

...

0xA7

Reserved         
0xA8UHPHS_INSNREG0631:24AHB_ERR       
23:16        
15:8    HBURST[2:0]Nb_Burst[4]
7:0Nb_Burst[3:0]Nb_Success_Burst[3:0]
0xACUHPHS_INSNREG0731:24AHB_ADDR[31:24]
23:16AHB_ADDR[23:16]
15:8AHB_ADDR[15:8]
7:0AHB_ADDR[7:0]