ZHCSS38 july 2020 TSB82AF15-EP
PRODUCTION DATA
The OHCI registers defined by the 1394 Open Host Controller Interface Specification are memory mapped into a 2K-byte region of memory pointed to by the OHCI base address register at offset 10h in PCI configuration space (see Section 10.6.4.8). These registers are the primary interface for controlling the IEEE Std 1394 link function.
This section provides the register interface and bit descriptions. Several set/clear register pairs in this programming model are implemented to solve various issues with typical read-modify-write control registers. There are two addresses for a set/clear register — RegisterSet and RegisterClear (see Table 10-88 for register listing). A 1 bit written to RegisterSet causes the corresponding bit in the set/clear register to be set to 1b; a 0 bit leaves the corresponding bit unaffected. A 1 bit written to RegisterClear causes the corresponding bit in the set/clear register to be cleared; a 0 bit leaves the corresponding bit in the set/clear register unaffected.
Typically, a read from either RegisterSet or RegisterClear returns the contents of the set or clear register, respectively. However, sometimes reading the RegisterClear provides a masked version of the set or clear register. The interrupt event register is an example of this behavior.
| DMA CONTEXT | REGISTER NAME | ABBREVIATION | OFFSET |
|---|---|---|---|
| OHCI version | Version | 00h | |
| GUID ROM | GUID_ROM | 04h | |
| Asynchronous transmit retries | ATRetries | 08h | |
| CSR data | CSRData | 0Ch | |
| CSR compare | CSRCompareData | 10h | |
| CSR control | CSRControl | 14h | |
| Configuration ROM header | ConfigROMhdr | 18h | |
| Bus identification | BusID | 1Ch | |
| Bus options(1) | BusOptions | 20h | |
| GUID high(1) | GUIDHi | 24h | |
| GUID low(1) | GUIDLo | 28h | |
| Reserved(1) | 2Ch-30h | ||
| Configuration ROM mapping | ConfigROMmap | 34h | |
| Posted write address low | PostedWriteAddressLo | 38h | |
| Posted write address high | PostedWriteAddressHi | 3Ch | |
| Vendor ID | VendorID | 40h | |
| Reserved | 44h-4Ch | ||
| Host controller control (1) | HCControlSet | 50h | |
| HCControlClr | 54h | ||
| Reserved | 58h-5Ch | ||
| Self-ID | Reserved | 60h | |
| Self-ID buffer pointer | SelfIDBuffer | 64h | |
| Self-ID count | SelfIDCount | 68h | |
| Reserved | 6Ch | ||
| Isochronous receive channel mask high | IRChannelMaskHiSet | 70h | |
| IRChannelMaskHiClear | 74h | ||
| Isochronous receive channel mask low | IRChannelMaskLoSet | 78h | |
| IRChannelMaskLoClear | 7Ch | ||
| Interrupt event | IntEventSet | 80h | |
| IntEventClear | 84h | ||
| Interrupt mask | IntMaskSet | 88h | |
| IntMaskClear | 8Ch | ||
| Isochronous transmit interrupt event | IsoXmitIntEventSet | 90h | |
| IsoXmitIntEventClear | 94h | ||
| Isochronous transmit interrupt mask | IsoXmitIntMaskSet | 98h | |
| IsoXmitIntMaskClear | 9Ch | ||
| Isochronous receive interrupt event | IsoRecvIntEventSet | A0h | |
| IsoRecvIntEventClear | A4h | ||
| Isochronous receive interrupt mask | IsoRecvIntMaskSet | A8h | |
| IsoRecvIntMaskClear | ACh | ||
| Initial bandwidth available | InitialBandwidthAvailable | B0h | |
| Initial channels available high | InitialChannelsAvailableHi | B4h | |
| Initial channels available low | InitialChannelsAvailableLo | B8h | |
| Reserved | BCh-D8h | ||
| Fairness control | FairnessControl | DCh | |
| Link control (1) | LinkControlSet | E0h | |
| LinkControlClear | E4h | ||
| Node identification | NodeID | E8h | |
| PHY control | PhyControl | ECh | |
| Isochronous cycle timer | Isocyctimer | F0h | |
| Reserved | F4h-FCh | ||
| Asynchronous request filter high | AsyncRequestFilterHiSet | 100h | |
| AsyncRequestFilterHiClear | 104h | ||
| Asynchronous request filter low | AsyncRequestFilterLoSet | 108h | |
| AsyncRequestFilterLoClear | 10Ch | ||
| Physical request filter high | PhysicalRequestFilterHiSet | 110h | |
| PhysicalRequestFilterHiClear | 114h | ||
| Physical request filter low | PhysicalRequestFilterLoSet | 118h | |
| PhysicalRequestFilterLoClear | 11Ch | ||
| Physical upper bound | PhysicalUpperBound | 120h | |
| Reserved | 124h-17Ch | ||
| Asynchronous Request Transmit (ATRQ) | Asynchronous context control | ContextControlSet | 180h |
| ContextControlClear | 184h | ||
| Reserved | 188h | ||
| Asynchronous context command pointer | CommandPtr | 18Ch | |
| Reserved | 190h-19Ch | ||
| Asynchronous Response Transmit (ATRS) | Asynchronous context control | ContextControlSet | 1A0h |
| ContextControlClear | 1A4h | ||
| Reserved | 1A8h | ||
| Asynchronous context command pointer | CommandPtr | 1ACh | |
| Reserved | 1B0h-1BCh | ||
| Asynchronous Request Receive (ARRQ) | Asynchronous context control | ContextControlSet | 1C0h |
| ContextControlClear | 1C4h | ||
| Reserved | 1C8h | ||
| Asynchronous context command pointer | CommandPtr | 1CCh | |
| Reserved | 1D0h-1DCh | ||
| Asynchronous Response Receive (ARRS) | Asynchronous context control | ContextControlSet | 1E0h |
| ContextControlClear | 1E4h | ||
| Reserved | 1E8h | ||
| Asynchronous context command pointer | CommandPtr | 1ECh | |
| Reserved | 1F0h-1FCh | ||
| Isochronous Transmit Context n n = 0, 1, 2, 3, ..., 7 | Isochronous transmit context control | ContextControlSet | 200h + 16*n |
| ContextControlClear | 204h + 16*n | ||
| Reserved | 208h + 16*n | ||
| Isochronous transmit context command pointer | CommandPtr | 20Ch + 16*n | |
| Reserved | 210h-3FCh | ||
| Isochronous Receive Context n n = 0, 1, 2, 3 | Isochronous receive context control | ContextControlSet | 400h + 32*n |
| ContextControlClear | 404h + 32*n | ||
| Reserved | 408h + 32*n | ||
| Isochronous receive context command pointer | CommandPtr | 40Ch + 32*n | |
| Isochronous receive context match | ContextMatch | 410h + 32*n |