The Host Controller (HC) contains a set of on-chip operational registers which is mapped into a noncacheable portion of T He system addressable space. These registers is used by the Host Controller Driver (HCD). According to the function of these registers, they is divided into four partitions, specifically for Control and Stat US, Memory Pointer, Frame Counter and Root Hub. All of the registers should is read and written as Dwords.
Reserved bits may is allocated in the future releases of this specification. To ensure interoperability, the Host Controller Driver This does not use a reserved field should not assume that the Reser Ved field contains 0. Furthermore, the Host Controller Driver should always preserve the value (s) of the reserved field. When a r/w register is modified, the Host Controller Driver should first read the register, modify the bits desired, t Hen write the register with the reserved bits still containing the read value. Alternatively, the Host Controller Driver can maintain an in-memory copy of previously written values so can be modified And then written to the Host Controller register. when a write to Set/clear register was written, bits written to reserved fields should be 0.
each enable bit in the Hcinterruptenable register corresponds to a associated interrupt bit in the Hcinterruptstatus register. The hcinterruptenable register is used to control which events generate a hardware interrupt.
Control and Status |
Hccontrol |
0x04h |
The Hccontrol register defines the operating modes for the Host Controller. |
Hccommandstatus |
0x08h |
The Hccommandstatus register is used by the host controller to receive commands issued by the host controller Driver, as W Ell as reflecting the current status of the Host Controller. |
Hcinterruptstatus |
0x0ch |
This register provides status is on various events that cause hardware interrupts. |
hcinterruptenable |
0x10h | " TD class= "XL65" width= "416" >
Hcinterruptdisable |
0x14h |
Each disable bit on the hcinterruptdisable register corresponds to a associated interrupt bit in the Hcinterruptstatus re Gister. |
Memory Pointer |
Hchcca |
0x18h |
The HCHCCA register contains the physical address of the Host Controller communication area. |
hcperiodcurrented |
0x1ch |
The hcperiodcurrented register contains the physical address of the current isochronous or Interrupt Endpoint descriptor. |
hccontrolheaded |
0x20h |
The hccontrolheaded register contains the physical address of the first Endpoint descriptor of the Control list. |
hccontrolcurrented |
0x24h |
The hccontrolcurrented register contains the physical address of the current Endpoint descriptor of the Control list. |
hcbulkheaded |
0x28h |
The hcbulkheaded register contains the physical address of the first Endpoint descriptor of the Bulk list. |
hcbulkcurrented |
0x2ch |
The hcbulkcurrented register contains the physical address of the current endpoint of the Bulk list. |
Hcdonehead |
0x30h |
The Hcdonehead register contains the physical address of the last completed Transfer descriptor that is added to the done Queue. |
frame Counter |
Hcfminterval |
0x34h |
the Hcfminterval Register contains a 14-bit value which indicates the bit time interval in a Frame, (i.e., between, consecutive SOFs), a nd a 15-bit value indicating the full speed maximum packet size, the Host Controller may transmit or receive without C Ausing scheduling overrun. |
Hcfmremaining |
0x38h |
The hcfmremaining register is a 14-bit down counter showing the bit time remaining in the current Frame. |
Hcfmnumber |
0x3ch |
The Hcfmnumber register is a 16-bit counter. IT provides a timing reference among events happening in the host controller and the host controller Driver. |
Hcperiodicstart |
0x40h |
The Hcperiodicstart register has a 14-bit programmable value which determines when is the earliest time HC should start PR Ocessing the periodic list. |
Hclsthreshold |
0x44h |
The Hclsthreshold register contains an 11-bit value used by the Host controllers to determine whether to commit to the Tran Sfer of a maximum of 8-byte LS packet before EOF. |
Root Hub |
Hcrhdescriptora |
0x48h |
The Hcrhdescriptora register is the first register of the describing the characteristics of the Root Hub. |
Hcrhdescriptorb |
0x4ch |
The Hcrhdescriptorb register is the second register of both describing the characteristics of the Root Hub. |
Hcrhstatus |
0x50h |
The Hcrhstatus register is divided into and parts. The lower word of a Dword represents the hub status field and the upper word represents the hub status change field. |
HCRHPORTSTATUS[1] |
0x54h |
The HCRHPORTSTATUS[1:NDP] Register is used to control and report port events on a per-port basis. |
... |
|
|
HCRHPORTSTATUS[NDP] |
54+4*ndp |
|
Usb-open Host Controller Operational Registers