OpenHCI - Open Host Controller Operational Registers

The Host Controller (HC) contains a set of on-chip operational registers which are mapped into a noncacheable portion of the system addressable space. These registers are used by the Host Controller Driver (HCD). According to the function of these registers, they are divided into four partitions, specifically for Control and Status, Memory Pointer, Frame Counter and Root Hub. All of the registers should be read and written as Dwords. 

Reserved bits may be allocated in future releases of this specification. To ensure interoperability, the Host Controller Driver that does not use a reserved field should not assume that the reserved 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, then 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 that can be modified and then written to the Host Controller register. When a write to set/clear register is written, bits written to reserved fields should be 0.

Control and StatusHcControl0x04HThe HcControl register defines the operating modes for the Host Controller.
HcCommandStatus 0x08HThe HcCommandStatus register is used by the Host Controller to receive commands issued by the Host Controller Driver, as well as reflecting the current status of the Host Controller.
HcInterruptStatus0x0CHThis register provides status on various events that cause hardware interrupts.
HcInterruptEnable0x10HEach enable bit in the HcInterruptEnable register corresponds to an associated interrupt bit in the HcInterruptStatus register.The HcInterruptEnable register is used to control which events generate a hardware interrupt.
HcInterruptDisable0x14HEach disable bit in the HcInterruptDisable register corresponds to an associated interrupt bit in the HcInterruptStatus register.
Memory PointerHcHCCA0x18HThe HcHCCA register contains the physical address of the Host Controller Communication Area.
HcPeriodCurrentED0x1CHThe HcPeriodCurrentED register contains the physical address of the current Isochronous or Interrupt Endpoint Descriptor.
HcControlHeadED0x20HThe HcControlHeadED register contains the physical address of the first Endpoint Descriptor of the Control list.
HcControlCurrentED0x24HThe HcControlCurrentED register contains the physical address of the current Endpoint Descriptor of the Control list.
HcBulkHeadED0x28HThe HcBulkHeadED register contains the physical address of the first Endpoint Descriptor of the Bulk list.
HcBulkCurrentED0x2CHThe HcBulkCurrentED register contains the physical address of the current endpoint of the Bulk list.
HcDoneHead0x30HThe HcDoneHead register contains the physical address of the last completed Transfer Descriptor that was added to the Done queue.
Frame CounterHcFmInterval0x34HThe HcFmInterval register contains a 14-bit value which indicates the bit time interval in a Frame, (i.e., between two consecutive SOFs), and a 15-bit value indicating the Full Speed maximum packet size that the Host Controller may transmit or receive without causing scheduling overrun.
HcFmRemaining0x38HThe HcFmRemaining register is a 14-bit down counter showing the bit time remaining in the current Frame.
HcFmNumber0x3CHThe HcFmNumber register is a 16-bit counter. It provides a timing reference among events happening in the Host Controller and the Host Controller Driver.
HcPeriodicStart0x40HThe HcPeriodicStart register has a 14-bit programmable value which determines when is the earliest time HC should start processing the periodic list.
HcLSThreshold0x44HThe HcLSThreshold register contains an 11-bit value used by the Host Controller to determine whether to commit to the transfer of a maximum of 8-byte LS packet before EOF.
Root HubHcRhDescriptorA0x48HThe HcRhDescriptorA register is the first register of two describing the characteristics of the Root Hub.
HcRhDescriptorB0x4CHThe HcRhDescriptorB register is the second register of two describing the characteristics of the Root Hub.
HcRhStatus0x50HThe HcRhStatus register is divided into two parts. The lower word of a Dword represents the Hub Status field and the upper word represents the Hub Status Change field.
HcRhPortStatus[1]0x54HThe HcRhPortStatus[1:NDP] register is used to control and report port events on a per-port basis.
  
HcRhPortStatus[NDP]54+4*NDP 

转载于:https://www.cnblogs.com/utank/p/4636421.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值