SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
Address Offset | 0x0000 0000 | ||
Physical Address | 0x4A14 0000 | Instance | DWC_ahsata |
Description | Capabilities register: Basic capabilities of the SATA AHCI core. Some fields can be written once after reset, read-only. | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
S64A | SNCQ | SSNTF | SMPS | SSS | SALP | SAL | SCLO | ISS | SNZO | SAM | SPM | FBSS | PMD | SSC | PSC | NCS | CCCS | EMS | SXS | NP |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31 | S64A | Supports 64-bit addressing | R | 1 |
Read 0x1: 64-bit addressing supported | ||||
Read 0x0: 32-bit addressing supported | ||||
30 | SNCQ | Supports NCQ (Native Command Queuing) Controller supports SATA NCQ by handling DMA setup FIS natively. | R | 1 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
29 | SSNTF | Supports SNotification
register Controller supports SATA_PxSNTF (SNotification) register and its associated functionality. | R | 1 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
28 | SMPS | Supports mechanical presence switch Support of a mechanical presence switch for hot plug operation, depending on integration Writable once after power up, read-only afterward | RW WSpecial | 0 |
0x0: Not supported | ||||
0x1: Supported | ||||
27 | SSS | Supports staggered spin-up Controller can support this feature through SATA_PxCMD.SUD Writable once after power up, read-only afterward | RW WSpecial | 0 |
0x0: Not supported | ||||
0x1: Supported | ||||
26 | SALP | Supports aggressive link power management | R | 1 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
25 | SAL | Supports Activity LED | R | 1 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
24 | SCLO | Supports command list override Supports the SATA_PxCMD.CLO bit functionality for enumeration of PM devices | R | 1 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
23:20 | ISS | Interface speed support Maximum speed the HBA can support | R | 0x2 |
Read 0x3: Gen 3 = 6 Gbps | ||||
Read 0x2: Gen 2 = 3 Gbps | ||||
Read 0x1: Gen 1 = 1.5 Gbps | ||||
19 | SNZO | Supports Non-zero DMA offsets | R | 0 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
18 | SAM | Supports AHCI mode only SATA controller supports AHCI mode only and does not support legacy, task file-based register interface. | R | 1 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
17 | SPM | Supports PM (Port Multiplier) SATA controller supports command-based switching PM on any port. | R | 1 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
16 | FBSS | FIS-based switching supported Support of PM FIS-based switching. | R | 0 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
15 | PMD | PIO Multiple DRQ Support of multiple DRQ block data transfers for the PIO command protocol | R | 1 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
14 | SSC | SLUMBER state capable Support of transitions to the interface SLUMBER power management state | R | 1 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
13 | PSC | PARTIAL state capable Support of transitions to the interface PARTIAL power management state | R | 1 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
12:8 | NCS | Number of command slots: slots supported by the SATA controller, minus 1 | R | 0x1F |
Read 0x1F: 32 command slots | ||||
7 | CCCS | Command completion coalescing supported | R | 1 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
6 | EMS | Enclosure management supported | R | 0 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
5 | SXS | Supports external SATA | R | 0 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
4:0 | NP | Number of ports: ports supported by the SATA controller, minus 1 | R | 0x00 |
Read 0x1: 2 ports | ||||
Read 0x0: 1 port |
Address Offset | 0x0000 0004 | ||
Physical Address | 0x4A14 0004 | Instance | DWC_ahsata |
Description | Global HBA control | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
AE | RESERVED | IE | HR |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31 | AE | AHCI enable Always set because SATA controller supports AHCI mode only, as indicated by the SATA_CAP.SAM = 1 | R | 1 |
30:2 | RESERVED | R | 0x0000 0000 | |
1 | IE | Interrupt enable Global enable of SATA controller interrupts. Reset on global reset (SATA_GHC.HR = 1). | RW | 0 |
0x0: All interrupt sources from all ports are disabled (masked). | ||||
0x1: Interrupts are enabled and any SATA controller interrupt event causes interrupt output assertion. | ||||
0 | HR | HBA reset Global reset control | RW | 0 |
Write 0x0: No action | ||||
Write 0x1: Start global reset: All state machines that relate to data transfers and queuing return to an IDLE state, and all ports are reinitialized by sending COMRESET if staggered spin-up is not supported. If staggered spin-up is supported, it is the responsibility of the software to spin up each port after this reset completes. | ||||
Read 0x1: Reset is ongoing. | ||||
Read 0x0: Reset is inactive (done). |
Address Offset | 0x0000 0008 | ||
Physical Address | 0x4A14 0008 | Instance | DWC_ahsata |
Description | Interrupt status Indicates which port has a pending interrupt | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | IPS |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:1 | RESERVED | R | 0x0000 0000 | |
0 | IPS | Interrupt pending status.
Bit-significant field. Bits are set by ports that have interrupt events pending in the SATA_PxIS bits and enabled in SATA_PxIE. Set bits are cleared by software writing 1 to them. | RW W1toClr | 0 |
Address Offset | 0x0000 000C | ||
Physical Address | 0x4A14 000C | Instance | DWC_ahsata |
Description | Ports implemented Indicates which ports are exposed by the SATA controller and available for use | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | PI |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:1 | RESERVED | R | 0x0000 0000 | |
0 | PI | Ports implemented.
Bit-significant field. Writable once after power up, read-only
afterward. If a bit is set (1), the corresponding port is available; else (0) it is not. Only bits 0 to SATA_CAP.NP can be set to 1. At least one bit must be set to 1. | RW WSpecial | 0 |
Address Offset | 0x0000 0010 | ||
Physical Address | 0x4A14 0010 | Instance | DWC_ahsata |
Description | AHCI version supported: 1.3 WARNING: Controller complies fully with AHCI version 1.10 and also complies with AHCI version 1.3 except for FIS-based switching, which is not currently supported. | ||
Type | R |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
MJR | MNR |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:16 | MJR | Major Version Number: 1 | R | 0x0001 |
15:0 | MNR | Minor Version Number: 3.00 | R | 0x0300 |
Address Offset | 0x0000 0014 | ||
Physical Address | 0x4A14 0014 | Instance | DWC_ahsata |
Description | CCC (Command Completion Coalescing) control Used to configure the CCC feature for the SATA controller Reset on global reset | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
TV | CC | INT | RESERVED | EN |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:16 | TV | Time-out value. Specifies the CCC time-out value in 1-ms intervals Loaded prior to enabling CCC; becomes read-only when SATA_CCC_CTL.EN = 1 | RW | 0x0001 |
0x0: Reserved value; do not use. | ||||
0x1 - 0xFFFF: timeout slectable between within the range (1 - 65535 ) ms. | ||||
15:8 | CC | Command completions Number of command completions necessary to cause a CCC interrupt Loaded prior to enabling CCC, becomes read-only when SATA_CCC_CTL.EN = 1 | RW | 0x01 |
0x0: CCC interrupts generated based on the timer, not on completed commands count | ||||
0x1 - 0xFF: specifies the number of commands upon which completion a CCC interrupt is generated. The number of commands to complete before interrupt is triggered are selectable within the range ( 1 - 255 ) commands. | ||||
7:3 | INT | Interrupt Number of the interrupt used by the CCC feature, using the number of ports configured for the core When a CCC interrupt occurs, the SATA_IS.IPS[INT] bit is set to 1. | R | 0x01 |
2:1 | RESERVED | R | 0x0 | |
0 | EN | Enable CCC enable | RW | 0 |
0x0: CCC feature is disabled and
no CCC interrupts are generated. SATA_CCC_CTL.TV and .CC are writable. | ||||
0x1: CCC feature is enabled and
CCC interrupts can be generated based on the time-out or command
completion conditions. All other SATA_CCC_CTL fields are read-only. |
Address Offset | 0x0000 0018 | ||
Physical Address | 0x4A14 0018 | Instance | DWC_ahsata |
Description | CCC ports Specifies the ports that are coalesced as part of the CCC feature when SATA_CCC_CTL.EN = 1 Reset on global reset | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | PRT |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:1 | RESERVED | R | 0x0000 0000 | |
0 | PRT | Ports Bit-significant field Set a bit to 1 to make the corresponding port part of the CCC feature. Bits set to 1 in this register have the same bit set to 1 in register PI. | RW | 0 |
Address Offset | 0x0000 0024 | ||
Physical Address | 0x4A14 0024 | Instance | DWC_ahsata |
Description | Extended capabilities | ||
Type | R |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | APST | NVMP | BOH |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:3 | RESERVED | R | 0x0000 0000 | |
2 | APST | Automatic PARTIAL to SLUMBER transitions | R | 1 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
1 | NVMP | NVMHCI present | R | 0 |
Read 0x1: Supported | ||||
Read 0x0: Not supported | ||||
0 | BOH | BIOS/OS Handoff | R | 0 |
Read 0x1: Supported | ||||
Read 0x0: Not supported |
Address Offset | 0x0000 00A0 | ||
Physical Address | 0x4A14 00A0 | Instance | DWC_ahsata |
Description | Built-In, Self-Test (BIST) Activate FIS Register Reset on global reset or port reset | ||
Type | R |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | NCP | PD |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:16 | RESERVED | R | 0x0000 | |
15:8 | NCP | Noncompliant pattern Least significant byte of the received BIST Activate FIS second DWORD (bits [7:0]). This value defines the required pattern for far-end transmit-only mode (SATA_BISTAFR.PD =0x80 or 0xA0). If none of the listed values is decoded, the simultaneous switching pattern is transmitted by default. | R | 0x00 |
0x4A: High frequency test pattern (HFTP) | ||||
0x7F: Simultaneous switching outputs pattern (SSOP) | ||||
0xF1: Low transition density pattern (LTDP) | ||||
0x8B: Lone Bit pattern (LBP) | ||||
0xB5: High transition density pattern (HTDP) | ||||
0x7E: Low frequency test pattern (LFTP) | ||||
0x78: Mid frequency test pattern (MFTP) | ||||
0xAB: Low frequency spectral component pattern (LFSCP) | ||||
7:0 | PD | Pattern definition Pattern definition field of the received BIST Activate FIS - bits [23:16] of the first DWORD. Puts the SATA controller in one of the listed BIST modes | R | 0x00 |
Read 0x10: Far-end retimed | ||||
Read 0xC0: Far-end transmit only | ||||
Read 0xE0: Far-end transmit only with scrambler bypassed | ||||
Read 0x8: Far-end analog (if PHY supports this mode) |
Address Offset | 0x0000 00A4 | ||
Physical Address | 0x4A14 00A4 | Instance | DWC_ahsata |
Description | BIST control register Reset on global reset or port reset | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | FERLB | RESERVED | TXO | CNTCLR | NEALB | LLB | RESERVED | ERRLOSSEN | SDFE | RESERVED | LLC_RPD | LLC_DESCRAM | LLC_SCRAM | RESERVED | ERREN | FLIP | PV | PATTERN |
Bits | Field Name | Description | Type(1) | Reset |
---|---|---|---|---|
31:21 | RESERVED | R | 0x000 | |
20 | FERLB | Far-end retimed loopback | WO | 0 |
Write 0x0: No action | ||||
Write 0x1: Puts the DWC_ahsata link into far-end retimed mode without the BIST activate FIS, regardless of whether the device is connected or disconnected (link in NOCOMM state) | ||||
Read 0x0: Read returns 0 | ||||
19 | RESERVED | R | 0 | |
18 | TXO | Transmit only | W | 0 |
0x0: No action | ||||
0x1: Initiate transmission of one of the noncompliant patterns defined by the SATA_BISTCR.PATTERN value when the device is disconnected. | ||||
17 | CNTCLR | Counter clear Clears BIST error count registers |
WO | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear SATA_BISTFCTR, SATA_BISTSR, and SATA_BISTDECR registers | ||||
Read 0x0: Read returns 0 | ||||
16 | NEALB | Near-end analog loopback This mode should be initiated in the PARTIAL or SLUMBER power state or with the device disconnected from the port PHY (link NOCOMM state). BIST Activate FIS is not sent to the device in this mode. |
WO | 0 |
Write 0x0: No action | ||||
Write 0x1: Places the port PHY in near-end analog loopback mode. SATA_BISTCR.PATTERN bit field contains the appropriate pattern. | ||||
15 | LLB | Lab
Loopback Mode Masks out phy_sig_det from the OOB detector in BIST Loopback Mode. To exit BIST Loopback mode, clear the register bit then issue COMRESET / receive COMINIT. |
RW | 0 |
14 | RESERVED | R | 0 | |
13 | ERRLOSSEN | Always keep this bit at default value. | RW | 0 |
12 | SDFE | Signal detect feature enable Not affected by global reset or port reset |
RW | 0 |
0x0: Link layer feature to handle unstable/absent phy_sig_det signal is disabled. | ||||
0x1: Link layer feature to handle unstable/absent phy_sig_det signal is enabled. | ||||
11 | RESERVED | Only write 0 into this reserved field to avoid undefined results. | RW | 0 |
10 | LLC_RPD | Link
layer control, repeat primitive drop In normal mode, the function can be changed only during port reset (SATA_PxSCTL.DET = 0x1). |
RW | 1 |
0x0: Repeat primitive drop function disabled in normal mode, enabled in BIST mode | ||||
0x1: Repeat primitive drop function enabled in normal mode, disabled in BIST mode | ||||
9 | LLC_DESCRAM | Link
layer control, descrambler In normal mode, the function can be changed only during port reset (SATA_PxSCTL.DET = 0x1). |
RW | 1 |
0x0: Descrambler disabled in normal mode, enabled in BIST mode | ||||
0x1: Descrambler enabled in normal mode, disabled in BIST mode | ||||
8 | LLC_SCRAM | Link
layer control, scrambler In normal mode, the function can be changed only during port reset (SATA_PxSCTL.DET = 0x1). Hardware–cleared (enabled) when the port enters a responder far-end transmit BIST mode with scrambling enabled (SATA_BISTAFR.PD = 0x80). |
RW | 1 |
0x0: Scrambler disabled in normal mode, enabled in BIST mode. | ||||
0x1: Scrambler enabled in normal mode, disabled in BIST mode. | ||||
7 | RESERVED | R | 0 | |
6 | ERREN | Error
enable Allow or filter (disable) PHY internal errors outside the FIS boundary to set corresponding SATA_PxSERR bits |
RW | 0 |
0x0: Filter errors outside the FIS; allow errors inside the FIS. | ||||
0x1: Allow errors outside or inside the FIS. | ||||
5 | FLIP | Flip
disparity Change disparity of the current test pattern to the opposite each time its state is changed by software. |
RW | 0 |
4 | PV | Pattern version Selects either short or long version of the SSOP, HTDP, LTDP, LFSCP, COMP pattern |
RW | 0 |
0x0: Short pattern version | ||||
0x1: Long pattern version | ||||
3:0 | PATTERN | Pattern Defines one of the listed SATA-compliant patterns for far-end retimed/ far-end analog/ near-end analog initiator modes, or noncompliant patterns for transmit-only responder mode when initiated by software writing to the SATA_BISTCR.TXO bit |
RW | 0x0 |
0x0: Simultaneous switching outputs pattern (SSOP) | ||||
0x1: High transition density pattern (HTDP) | ||||
0x2: Low transition density pattern (LTDP) | ||||
0x3: Low frequency spectral component pattern (LFSCP) | ||||
0x4: Composite pattern (COMP) | ||||
0x5: Lone bit pattern (LBP) | ||||
0x6: Mid-frequency test pattern (MFTP) | ||||
0x7: High frequency test pattern (HFTP) | ||||
0x8: Low frequency test pattern (LFTP) |
Address Offset | 0x0000 00A8 | ||
Physical Address | 0x4A14 00A8 | Instance | DWC_ahsata |
Description | BIST
frame-information-structure CounT register Received BIST FIS count in the loopback initiator far-end retimed, far-end analog, and near-end analog modes. Updated each time a new BIST FIS is received. Reset by global reset, port reset (COMRESET), or by writing 1 to SATA_BISTCR.CNTCLR Does not roll over and freezes when the FFFF_FFFFh value is reached. It takes approximately 65 hours of continuous BIST operation to reach this value. | ||
Type | R |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
COUNT |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:0 | COUNT | BIST FIS Count | R | 0x0000 0000 |
Address Offset | 0x0000 00AC | ||
Physical Address | 0x4A14 00AC | Instance | DWC_ahsata |
Description | BIST status
register Errors detected in the received BIST FIS in the loopback initiator far-end retimed, far-end analog, and near-end analog modes Updated each time a new BIST FIS is received Reset on global reset, port reset (COMRESET), or by writing 1 to SATA_BISTCR.CNTCLR | ||
Type | R |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | BRSTERR | FRAMERR |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:24 | RESERVED | R | 0x00 | |
23:16 | BRSTERR | Burst error count. Accumulated each time a burst error condition is detected: DWORD error is detected in the received frame and 1.5 seconds (27,000 frames) passed since the previous burst error was detected. Value does not roll over and freezes at FFh. | R | 0x00 |
Read 0xFF: Max error count reached or exceeded | ||||
Read 0x0: No error detected | ||||
15:0 | FRAMERR | Frame error count. New value is added to the old value each time a new BIST frame with a CRC error is received. Does not roll over and freezes at FFFFh | R | 0x0000 |
Read 0xFFFF: Maximum error count reached or exceeded. | ||||
Read 0x0: No error detected |
Address Offset | 0x0000 00B0 | ||
Physical Address | 0x4A14 00B0 | Instance | DWC_ahsata |
Description | BIST double-word error
count register Number of DWORD errors detected in the received BIST frame in the loopback initiator far-end retimed, far-end analog, and near-end analog modes Updated each time a new BIST frame is received, when the parameter BIST_MODE = DWORD. Reset on global reset, port reset (COMRESET), or by writing 1 to SATA_BISTCR.CNTCLR. | ||
Type | R |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DWERR |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:0 | DWERR | DWORD error count. New value is added to the old value each time a new BIST frame is received. The DWERR value does not roll over, and freezes when it exceeds 0xFFFF_F000. | R | 0x0000 0000 |
Read 0x0: No error detected | ||||
Read 0xFFFFF000: Max error count reached or exceeded |
Address Offset | 0x0000 00BC | ||
Physical Address | 0x4A14 00BC | Instance | DWC_ahsata |
Description | OOB (Out Of Band Register) register Controls the link layer OOB detection counters | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
WE | CWMIN | CWMAX | CIMIN | CIMAX |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31 | WE | WRITE_ENABLE | RW | 0 |
0x0: SATA_OOBR bits [30:0] are read-only. | ||||
0x1: SATA_OOBR bits [30:0] can be written. | ||||
30:24 | CWMIN | COMWAKE_MIN, in OOB rx clock
cycles Read-only when SATA_OOBR.WE = 0 | RW WSpecial | 0x0B |
23:16 | CWMAX | COMWAKE_MAX, in OOB rx clock
cycles Read-only when SATA_OOBR.WE = 0 | RW WSpecial | 0x15 |
15:8 | CIMIN | COMINIT_MIN, in OOB rx clock
cycles Read-only when SATA_OOBR.WE = 0 | RW WSpecial | 0x24 |
7:0 | CIMAX | COMINIT_MAX, in OOB rx clock
cycles Read-only when SATA_OOBR.WE=0 | RW WSpecial | 0x40 |
Address Offset | 0x0000 00E0 | ||
Physical Address | 0x4A14 00E0 | Instance | DWC_ahsata |
Description | Timer 1 ms Configuration to generate the 1-ms tick for the CCC logic Must be initialized before using the CCC feature Reset on power up, not affected by global reset | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | TIMV |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:20 | RESERVED | R | 0x000 | |
19:0 | TIMV | OCP bus clock frequency in kHz (for example, reset value is 100,000 = 100 MHz) | RW | 0x1 86A0 |
Address Offset | 0x0000 00E8 | ||
Physical Address | 0x4A14 00E8 | Instance | DWC_ahsata |
Description | Global parameters register 1 Hardware configuration of the DWC AHCI SATA core | ||
Type | R |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
ALIGN_M | RX_BUFFER | PHY_DATA | PHY_RST | PHY_CTRL | PHY_STAT | LATCH_M | BIST_M | PHY_TYPE | RETURN_ERR | AHB_ENDIAN | S_HADDR | M_HADDR | S_HDATA | M_HDATA |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31 | ALIGN_M | RX data alignment | R | 1 |
Read 0x1: Yes | ||||
Read 0x0: No | ||||
30 | RX_BUFFER | RX data buffer implemented | R | 1 |
Read 0x1: Yes | ||||
Read 0x0: No | ||||
29:28 | PHY_DATA | PHY data width (in 8- or 10-bit characters) | R | 0x0 |
Read 0x2: 4 characters | ||||
Read 0x1: 2 characters | ||||
Read 0x0: 1 character | ||||
27 | PHY_RST | PHY reset mode | R | 1 |
Read 0x1: High | ||||
Read 0x0: Low | ||||
26:21 | PHY_CTRL | PHY control width (in bits) | R | 0x00 |
20:15 | PHY_STAT | PHY status width (in bits) | R | 0x00 |
14 | LATCH_M | Test mode lock-up latches | R | 0 |
Read 0x1: Yes | ||||
Read 0x0: No | ||||
13 | BIST_M | BIST loopback checking depth | R | 0 |
Read 0x1: DWORD | ||||
Read 0x0: FIS | ||||
12:11 | PHY_TYPE | PHY interface type | R | 0x0 |
Read 0x1: Preset | ||||
Read 0x0: Configurable | ||||
0x2, 0x3: Reserved | ||||
10 | RETURN_ERR | Error response on illegal access | R | 0 |
Read 0x1: Yes | ||||
Read 0x0: No | ||||
9:8 | AHB_ENDIAN | Endianness of master and slave | R | 0x0 |
Read 0x2: Pin-configurable dynamic endianness | ||||
Read 0x1: Big-endian | ||||
Read 0x0: Little-endian | ||||
7 | S_HADDR | Slave address bus width | R | 0 |
Read 0x1: 64-bit address | ||||
Read 0x0: 32-bit address | ||||
6 | M_HADDR | Master address bus width | R | 1 |
Read 0x1: 64-bit address | ||||
Read 0x0: 32-bit address | ||||
5:3 | S_HDATA | Slave Data Bus Width | R | 0x0 |
Read 0x3: 256-bit | ||||
Read 0x2: 128-bit | ||||
Read 0x1: 64-bit | ||||
Read 0x0: 32-bit | ||||
2:0 | M_HDATA | Master Data Bus Width | R | 0x0 |
Read 0x3: 256-bit | ||||
Read 0x2: 128-bit | ||||
Read 0x1: 64-bit | ||||
Read 0x0: 32-bit |
Address Offset | 0x0000 00EC | ||
Physical Address | 0x4A14 00EC | Instance | DWC_ahsata |
Description | Global parameters register 2 Hardware configuration of the DWC AHCI SATA core, continued | ||
Type | R |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | DEV_CP | DEV_MP | ENCODE_M | RXOOB_CLK_M | RX_OOB_M | TX_OOB_M | RXOOB_CLK |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:15 | RESERVED | R | 0x0 0000 | |
14 | DEV_CP | Cold presence detection implemented in core | R | 1 |
Read 0x1: Yes | ||||
Read 0x0: No | ||||
13 | DEV_MP | Mechanical presence switch implemented in core | R | 1 |
Read 0x1: Yes | ||||
Read 0x0: No | ||||
12 | ENCODE_M | 8b/10b Encoding/decoding implemented in core | R | 1 |
Read 0x1: Yes | ||||
Read 0x0: No | ||||
11 | RXOOB_CLK_M | RX OOB clocking mode: | R | 0 |
Read 0x1: RX OOB detection uses separate clock | ||||
Read 0x0: Rx OOB detection uses RX clock | ||||
10 | RX_OOB_M | RX OOB mode: sequence generation implemented | R | 1 |
Read 0x1: Yes | ||||
Read 0x0: No | ||||
9 | TX_OOB_M | TX OOB mode: sequence generation implemented | R | 1 |
Read 0x1: Yes | ||||
Read 0x0: No | ||||
8:0 | RXOOB_CLK | RX OOB clock frequency, in MHz | R | 0x096 |
Address Offset | 0x0000 00F0 | ||
Physical Address | 0x4A14 00F0 | Instance | DWC_ahsata |
Description | Port parameter
register Hardware configuration of the DWC AHCI SATA core port selected by SATA_TESTR.PSEL | ||
Type | R |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | TX_MEM_M | TX_MEM_S | RX_MEM_M | RX_MEM_S | TXFIFO_DEPTH | RXFIFO_DEPTH |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:12 | RESERVED | R | 0x0 0000 | |
11 | TX_MEM_M | TX FIFO memory mode: | R | 0 |
Read 0x1: Synchronous | ||||
Read 0x0: Asynchronous | ||||
10 | TX_MEM_S | TX FIFO memory selection: | R | 0 |
Read 0x1: Internal memory | ||||
Read 0x0: External memory | ||||
9 | RX_MEM_M | RX FIFO memory mode: | R | 0 |
Read 0x1: Synchronous | ||||
Read 0x0: Asynchronous | ||||
8 | RX_MEM_S | RX FIFO memory selection: | R | 0 |
Read 0x1: Internal memory | ||||
Read 0x0: External memory | ||||
7:4 | TXFIFO_DEPTH | Tx FIFO Depth, in dwords (log2) | R | 0x6 |
Read 0x3: 8 dwords | ||||
Read 0x4: 16 dwords | ||||
Read 0x5: 32 dwords | ||||
Read 0x6: 64 dwords | ||||
3:0 | RXFIFO_DEPTH | Rx FIFO Depth, in dwords (log2) | R | 0x7 |
Read 0x4: 16 dwords | ||||
Read 0x5: 32 dwords | ||||
Read 0x6: 64 dwords | ||||
Read 0x7: 128 dwords |
Address Offset | 0x0000 00F4 | ||
Physical Address | 0x4A14 00F4 | Instance | DWC_ahsata |
Description | Test register Puts the SATA controller slave interface in a test mode and selects a port for BIST operation | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | PSEL | RESERVED | TEST_IF |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:19 | RESERVED | R | 0x0000 | |
18:16 | PSEL | Port select: Selects the port for BIST operation | RW | 0x0 |
0x0: Port 0 is selected | ||||
15:1 | RESERVED | R | 0x0000 | |
0 | TEST_IF | Test interface | RW | 0 |
0x0: Normal mode: read-back value of some registers might not match the value written, depending on ongoing operations. | ||||
0x1: Test mode: Normal operation
is disabled; read-back value of the registers match the value
written. The following registers/fields can be accessed in this mode: - SATA_GHC.IE - SATA_BISTAFR.NCP and .PD bits become writable. - SATA_BISTCR.LLC .ERREN .FLIP .PV, and .PATTERN - SATA_BISTFCTR, SATA_BISTSR, SATA_BISTDECR become writeable. - SATA_PxCLB / SATA_PxCLBU, SATA_PxFB / SATA_PxFBU - SATA_PxIS.UFS and write-1-to-clear bits become writeable. - SATA_PxIE - SATA_PxCMD.ASP .ALPE .DLAE .ATAPI and .PMA - SATA_PxTFD, SATA_PxSIG become writeable. - SATA_PxSCTL - SATA_PxSERR (write-1-to-clear) bits become writeable. Notes: 1) Interrupt is asserted if any IS register bit is set after setting the corresponding SATA_PxIS and SATA_PxIE bits, and SATA_GHC.IE = 1. 2) SATA_CAP.SMPS/SSS, SATA_PI, SATA_PxCMD.ESP/CPD/MPSP/HPCP cannot be used in test mode. They are written once after POR and become read-only. 3) Global reset must be issued (SATA_GHC.HR=1) after the TEST_IF bit is cleared following the test mode operation. |
Address Offset | 0x0000 00F8 | ||
Physical Address | 0x4A14 00F8 | Instance | DWC_ahsata |
Description | Version register | ||
Type | R |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
VERSION |
Address Offset | 0x0000 00FC | ||
Physical Address | 0x4A14 00FC | Instance | DWC_ahsata |
Description | ID register, containing the 32-bit Highlander (HL) revision. | ||
Type | R |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
REVISION |
Address Offset | 0x0000 0100 | ||
Physical Address | 0x4A14 0100 | Instance | DWC_ahsata |
Description | Port command List base address 32-bit base physical address for the command list for this port. Used when fetching commands to execute. The structure pointed to by this address range is 1 KiB in length. | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
CLB | ZERO |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:10 | CLB | Command list base address (bits 31:10) | RW | 0x00 0000 |
9:0 | ZERO | Always 0 as address is 1 KiB-aligned | R | 0x000 |
Address Offset | 0x0000 0104 | ||
Physical Address | 0x4A14 0104 | Instance | DWC_ahsata |
Description | Port Command List Base Upper address Upper half of the 64-bit base physical address for the command list for this Port. Used when fetching commands to execute. Remains all 0 when in 32-bit mode. Reserved & read-only when CAP.S64A=0 | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
CLBU |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:0 | CLBU | Command List Base Upper Address (bits 63:32)(1) | RW | 0x0000 0000 |
Address Offset | 0x0000 0108 | ||
Physical Address | 0x4A14 0108 | Instance | DWC_ahsata |
Description | Port Frame-information-structure Base address 32-bit base physical address for received FISes for this port. The structure pointed to by this address range is 256 bytes in length. | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
FB | ZERO |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:8 | FB | FIS base address (bits 31:8) | RW | 0x00 0000 |
7:0 | ZERO | Always 0 as address is 256-bytes aligned | R | 0x00 |
Address Offset | 0x0000 010C | ||
Physical Address | 0x4A14 010C | Instance | DWC_ahsata |
Description | FIS Base Upper Address Upper half of the 64-bit base physical address for received FISes for this port. Remains all 0 with a 32-bit SW driver. Reserved & read-only when CAP.S64A=0 | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
FBU |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:0 | FBU | FIS Base Upper Address (bits 63:32)(1) | RW | 0x0000 0000 |
Address Offset | 0x0000 0110 | ||
Physical Address | 0x4A14 0110 | Instance | DWC_ahsata |
Description | Port interrupt status Bits are set by internal conditions and cleared (when possible) by writing 1 to them. Reset on global reset. | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
CPDS | TFES | HBFS | HBDS | IFS | INFS | RESERVED | OFS | IPMS | PRCS | RESERVED | DMPS | PCS | DPS | UFS | SDBS | DSS | PSS | DHRS |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31 | CPDS | Cold port detect status Set when the pX_cp_det input changes its state due to the insertion or removal of a device Valid only if the port supports cold presence detection as indicated by the SATA_PxCMD.CPD bit set to 1. | RW W1toClr | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear event | ||||
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive | ||||
30 | TFES | Task file error status Set whenever the SATA_PxTFD.STS register is updated by the device and the error bit (bit 0) is set. | RW W1toClr | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear event | ||||
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive | ||||
29 | HBFS | Host bus fatal error status Set when master (DMA) detects an ERROR response from the slave | RW W1toClr | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear event | ||||
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive | ||||
28 | HBDS | Host bus data error status This bit is always cleared to 0. | RW W1toClr | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear event | ||||
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive | ||||
27 | IFS | Interface fatal error status This bit is set when any of the following conditions is detected: 1) SYNC escape is received from the device during H2D register or data FIS transmission. 2) One or more of the following errors are detected during data FIS transfer: - 10B to 8B Decode Error (SATA_PxSERR.DIAG_B) - Protocol (SATA_PxSERR.ERR_P) - CRC (SATA_PxSERR.DIAG_C) - Handshake (SATA_PxSERR.DIAG_H) - PHY not ready (SATA_PxSERR.ERR_C) 3) Unknown FIS is received with good CRC, but the length exceeds 64 bytes. 4) PRD table byte count is 0. 5) DMA setup FIS is received with a TAG corresponding to inactive (SATA_PxSACT bit is cleared) command slot. Port DMA transitions to a fatal state until the software clears SATA_PxCMD.ST bit or resets the interface by way of port reset or global reset. | RW W1toClr | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear event | ||||
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive | ||||
26 | INFS | Interface nonfatal error
status Set when any of the following conditions is detected: 1) One or more of the following errors are detected during nondata FIS transfer: - 10b to 8b decode error (SATA_PxSERR.DIAG_B) - Protocol (SATA_PxSERR.ERR_P) - CRC (SATA_PxSERR.DIAG_C) - Handshake (SATA_PxSERR.DIAG_H) - PHY not ready (SATA_PxSERR.ERR_C) 2) Command list underflow during read operation (that is, DMA read) when the software builds a command table that has more total bytes than the transaction given to the device. In both cases port operation continues normally. When an error is detected during nondata FIS transmission, this FIS is retransmitted continuously until it succeeds, or until the software times out and resets the interface. | RW W1toClr | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear event | ||||
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive | ||||
25 | RESERVED | R | 0 | |
24 | OFS | Overflow status Set when command list overflow is detected during read or write operation when the software builds command table that has fever total bytes than the transaction given to the device. Port DMA transitions to a fatal state until the software clears SATA_PxCMD.ST bit or resets the interface by way of port reset or global reset. | RW W1toClr | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear event | ||||
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive | ||||
23 | IPMS | Incorrect PM status FIS received from a device in which the PM field did not match what was expected May be set during enumeration of devices on a PM due to the normal PM enumeration process Must be used only after enumeration is complete on the PM | RW W1toClr | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear event | ||||
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive | ||||
22 | PRCS | PhyRdy change status Reflects the state of SATA_PxSERR.DIAG_N To clear this bit, clear the SATA_PxSERR.DIAG_N bit to 0. | R | 0 |
Read 0x1: Internal pX_phy_ready signal changed state | ||||
Read 0x0: Internal pX_phy_ready signal has not changed state since its last reset. | ||||
21:8 | RESERVED | R | 0x0000 | |
7 | DMPS | Device mechanical presence
status Set when the pX_mp_switch input changes its state as a result of a mechanical switch attached to this port opening or closing Valid only when SATA_CAP.SMPS and SATA_PxCMD.MPSP are set | RW W1toClr | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear event | ||||
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive | ||||
6 | PCS | Port connect change status This bit reflects the state of the SATA_PxSERR.DIAG_X bit. Cleared only when SATA_PxSERR.DIAG_X is cleared | R | 0 |
Read 0x1: Change in current connect status | ||||
Read 0x0: No change in current connect status | ||||
5 | DPS | Descriptor processed A PRD with the I bit set has transferred all of its data. Note. This is an opportunistic interrupt and must not be used to definitively indicate the end of a transfer. Two PRD interrupts could occur close enough together that the second interrupt is missed when the first PRD interrupt is cleared. | RW W1toClr | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear event | ||||
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive | ||||
4 | UFS | Unknown FIS interrupt An unknown FIS was received and has been copied into system memory. Cleared to 0 by the software clearing the SATA_PxSERR.DIAG_F bit to 0. Note: The UFS bit does not directly reflect the SATA_PxSERR.DIAG_F bit. SATA_PxSERR.DIAG_F bit is set immediately when an unknown FIS is detected, whereas the UFS bit is set when that FIS is posted to memory. The software should wait to act on an unknown FIS until the UFS bit is set to 1 or the two bits may become out of sync. | R | 0 |
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive | ||||
3 | SDBS | Set device bits interrupt A Set Device Bits FIS is received with the I bit set and copied into system memory. | RW W1toClr | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear event | ||||
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive | ||||
2 | DSS | DMA setup FIS interrupt A DMA Setup FIS is received with the I bit set and copied into system memory. | RW W1toClr | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear event | ||||
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive | ||||
1 | PSS | PIO setup FIS interrupt A PIO Setup FIS is received with the I bit set, copied into system memory, and the data related to the FIS is transferred. Note: This bit is set even when the data transfer resulted in an error. | RW W1toClr | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear event | ||||
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive | ||||
0 | DHRS | Device to host register FIS interrupt A D2H register FIS is received with the I bit set and copied into system memory. | RW W1toClr | 0 |
Write 0x0: No action | ||||
Write 0x1: Clear event | ||||
Read 0x1: IRQ event active | ||||
Read 0x0: Event inactive |
Address Offset | 0x0000 0114 | ||
Physical Address | 0x4A14 0114 | Instance | DWC_ahsata |
Description | Port interrupt
enable Enables and disables the reporting of the corresponding interrupt to system software When a bit is set (1), SATA_GHC.IE = 1, and the corresponding interrupt condition in SATA_PxIS is active, then the SATA controller interrupt output is asserted. When a bit is cleared (0), interrupt sources are still reflected in the status registers. Reset on global reset | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
CPDE | TFEE | HBFE | HBDE | IFE | INFE | RESERVED | OFE | IPME | PRCE | RESERVED | DMPE | PCE | DPE | UFE | SDBE | DSE | PSE | DHRE |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31 | CPDE | Cold port detect enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
30 | TFEE | Task file error enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
29 | HBFE | Host bus fatal error enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
28 | HBDE | Host bus data error enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
27 | IFE | Interface fatal error enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
26 | INFE | Interface non fatal error enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
25 | RESERVED | R | 0 | |
24 | OFE | Overflow enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
23 | IPME | Incorrect PM enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
22 | PRCE | PhyRdy change enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
21:8 | RESERVED | R | 0x0000 | |
7 | DMPE | Device mechanical presence enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
6 | PCE | Port connect change enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
5 | DPE | Descriptor processed interrupt enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
4 | UFE | Unknown FIS interrupt enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
3 | SDBE | Set device bits interrupt enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
2 | DSE | DMA setup FIS interrupt enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
1 | PSE | PIO setup FIS interrupt enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled | ||||
0 | DHRE | Device to host register FIS interrupt enable | RW | 0 |
0x0: Interrupt disabled | ||||
0x1: Interrupt enabled |
Address Offset | 0x0000 0118 | ||
Physical Address | 0x4A14 0118 | Instance | DWC_ahsata |
Description | Port command | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
ICC | ASP | ALPE | DLAE | ATAPI | APSTE | FBSCP | ESP | CPD | MPSP | HPCP | PMA | CPS | CR | FR | MPSS | CCS | RESERVED | FRE | CLO | POD | SUD | ST |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:28 | ICC | Interface communication control Control of power management states of the interface If the link layer is in the L_IDLE state, writes cause the port to request a transition to a given interface state. If the link layer is not in the L_IDLE state, writes have no effect. When a nonreserved, non-0 (No-Op) value is written, the core performs the action and clears the field back to 0 (Idle) | RW | 0x0 |
Write 0x0: No-Op | ||||
Read 0x0: Port is ready to accept a new interface control command, although the transition to the previously selected state might not have occurred yet. | ||||
0x1: Active | ||||
0x2: PARTIAL. SATA device can reject the request and the interface then remains in its current state. | ||||
0x6: SLUMBER. SATA device can reject the request and the interface then remains in its current state. | ||||
27 | ASP | Aggressive SLUMBER/PARTIAL | RW | 0 |
0x0: If SATA_PxCMD.ALPE = 1, the port aggressively enters the PARTIAL state when it clears the SATA_PxCI register and the SATA_PxSACT register is cleared when it clears the SATA_PxSACT register and SATA_PxCI is cleared. | ||||
0x1: If SATA_PxCMD.ALPE = 1, the port aggressively enters the SLUMBER state when it clears the SATA_PxCI and the SATA_PxSACT register is cleared or when it clears the SATA_PxSACT register and SATA_PxCI is cleared. | ||||
26 | ALPE | Aggressive link power management enable | RW | 0 |
0x0: Aggressive power management state transition is disabled. | ||||
0x1: Port aggressively enters a lower link power state (PARTIAL or SLUMBER) based on the setting of SATA_PxCMD.ASP. | ||||
25 | DLAE | Drive LED on ATAPI enable | RW | 0 |
0x0: LED is never enabled. | ||||
0x1: Port asserts the pX_act_led output when commands are active and SATA_PxCMD.ATAPI = 1. | ||||
24 | ATAPI | Device is ATAPI Used by the port to determine whether or not to assert pX_act_led output when commands are active. | RW | 0 |
0x0: Connected device is not an ATAPI. | ||||
0x1: Connected device is an ATAPI. | ||||
23 | APSTE | Auto PARTIAL to SLUMBER transition enable | RW | 0 |
0x0: No automatic transition from PARTIAL to SLUMBER | ||||
0x1: Link layer transitions from its PARTIAL power management state to SLUMBER state automatically, whether host software-, port (aggressive)-, or device-initiated. | ||||
22 | FBSCP | FIS-based Switching Capable Port May only be set to ?1? if CAP.SPM = CAP.FBSS = 1 (not the case). Writable once after power up, read-only afterwards. | RW | 0x0 |
0x0: port does not support FIS-based switching. | ||||
0x1: Port supports Port Multiplier FIS-based switching. | ||||
21 | ESP | External SATA port Writable once after power up, read-only afterward | RW | 0x0 |
0x0: Port signal-only connector is not externally accessible. | ||||
0x1: Port signal-only connector
is externally accessible. SATA_CAP.SXS is also set to 1. Mutually exclusive with SATA_PxCMD.HPCP | ||||
20 | CPD | Cold presence detect Writable once after power up, read-only afterward | RW | 0 |
0x0: Platform does not support cold presence detection on this port. | ||||
0x1: Platform supports cold
presence detection on this port. SATA_PxCMD.HPCP should be set to 1. | ||||
19 | MPSP | Mechanical presence switch attached to port Writable once after power up, read-only afterward | RW | 0 |
0x0: Platform does not support a mechanical presence switch on this port. | ||||
0x1: Platform supports a
mechanical presence switch attached to this port. SATA_PxCMD.HPCP should be set to 1. | ||||
18 | HPCP | Hot plug capable port Writable once after power up, read-only afterward | RW | 0 |
0x0: Port signal and power connectors are not externally accessible. | ||||
0x1: Port signal and power connectors are externally accessible through a joint signal-power connector for blindmate device hot plug. | ||||
17 | PMA | PM attached Software is responsible for detecting the presence of a PM. There is no autodetection. | RW | 0 |
0x0: No port Multiplier is attached to this Port | ||||
0x1: Port Multiplier is attached to this Port | ||||
16 | CPS | Cold presence state Reports whether a device is currently detected on this port as indicated by the pX_cp_det input state (assuming SATA_PxCMD.CPD = 1). | R | 0 |
Read 0x1: Device detected | ||||
Read 0x0: No device detected | ||||
15 | CR | Command list running For details, see the AHCI state-machine in Section 5.3.2 of the AHCI specification. | R | 0 |
Read 0x1: Command list DMA engine for this port is running. | ||||
Read 0x0: Command list is stopped for this port. | ||||
14 | FR | FIS receive running For details, see Section 10.3.2 of the AHCI specification. | R | 0 |
Read 0x1: FIS receive DMA engine for the port is running. | ||||
Read 0x0: FIS receive DMA engine for the port is stopped. | ||||
13 | MPSS | Mechanical presence switch
state Reports the state of a mechanical presence switch attached to this port as indicated by the pX_mp_switch input state (assuming SATA_CAP.SMPS = 1 and SATA_PxCMD.MPSP = 1) Cleared to 0 when SATA_CAP.SMPS = 0 | R | 0 |
Read 0x1: Switch is open. | ||||
Read 0x0: Switch is closed. | ||||
12:8 | CCS | Current command slot This field is valid when SATA_PxCMD.ST is set to 1 and is set to the command slot value of the command currently issued by the port. When SATA_PxCMD.ST transitions from 1 to 0, this field is reset to 0x00. After SATA_PxCMD.ST transitions from 0 to 1, the highest priority slot to issue from next is command slot 0. After the first command is issued, the highest priority slot to issue from next is SATA_PxCMD.CCS + 1. For example, after the port issues its first command, if CCS = 0x00 and SATA_PxCI is set to 0x3, the next command issued is from command slot 1. | R | 0x00 |
7:5 | RESERVED | R | 0x0 | |
4 | FRE | FIS receive enable Must not be set until SATA_PxFB / SATA_PxFBU is programmed with a valid pointer to the FIS receive area Base can be moved after clearing FRE and waiting for FR to clear to 0. | RW | 0 |
0x0: Received FISes are not accepted by the port, except for the first D2H register FIS after the initialization sequence, and no FISes are posted to the FIS receive area. | ||||
0x1: Port can post received FISes into the FIS receive area pointed to by SATA_PxFB and SATA_PxFBU. | ||||
3 | CLO | Command list override | RW | 0 |
Write 0x0: No effect | ||||
Write 0x1: Request to clear
SATA_PxTFD.STS_BSY and SATA_PxTFD.STS_DRQ to 0. Use only immediately prior to setting SATA_PxCMD.ST bit to 1 from a previous value of 0. Any other case results in indeterminate behavior. | ||||
Read 0x1: Override is active, SATA_PxTFD.STS_BSY and SATA_PxTFD.STS_DRQ are being cleared. | ||||
Read 0x0: Override is inactive. | ||||
2 | POD | Power-on device Writable if SATA_PxCMD.CPD = 1 (cold presence detection enabled), otherwise read-only -1. | RW | 0 |
0x0: Disabled | ||||
0x1: Port asserts the pX_cp_pod output pin so that it can be used to provide power to a cold-presence detectable port. | ||||
1 | SUD | Spin-up device Writable if SATA_CAP.SSS = 1 (staggered spin-up supported), else read-only 1. Read-only-0 on power-up until SATA_CAP.SSS bit is written with the required value. | RW | 0 |
0x0: Clearing the bit from 1 to 0 causes no action on the interface. | ||||
0x1: On edge-detect from 0 to 1, the port starts a COMRESET initialization sequence to the device. | ||||
0 | ST | Start | RW | 0 |
0x0: Port does not process the
command list. On transition from 1 to 0, the SATA_PxCI register is cleared by the port on transition to an IDLE state. | ||||
0x1: Port processes the command
list. On transition from 0 to 1, the port starts processing the command list at entry 0. SATA_PxSERR must be cleared prior to setting ST to 1. For important restrictions on when ST can be set to 1, See Section 10.3.1 of the AHCI specification. |
Address Offset | 0x0000 0120 | ||
Physical Address | 0x4A14 0120 | Instance | DWC_ahsata |
Description | Port Task File Data: copies specific fields of the task file when FISes are received | ||
Type | R |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | ERR | STS_BSY | STS_CS2 | STS_DRQ | STS_CS | STS_ERR |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:16 | RESERVED | R | 0x0000 | |
15:8 | ERR | Err: Latest copy of the task file error register | R | 0x00 |
7 | STS_BSY | Status, busy Latest copy of the 8-bit task file status register, bit 7 STS_BSY = Interface is busy | R | 0 |
6:4 | STS_CS2 | Status, command-specific Latest copy of the 8-bit task file status register, bits 6:4 | R | 0x7 |
3 | STS_DRQ | Status, data request Latest copy of the 8-bit task file status register, bit 3 STS_DRQ = Data transfer is requested | R | 1 |
2:1 | STS_CS | Status, command-specific Latest copy of the 8-bit task file status register, bits 2:1 | R | 0x3 |
0 | STS_ERR | Status, error Latest copy of the 8-bit task file status register, bit 0 STS_ERR = Error during the transfer | R | 1 |
Address Offset | 0x0000 0124 | ||
Physical Address | 0x4A14 0124 | Instance | DWC_ahsata |
Description | Port signature: Signature received from a device on the first D2H register FIS. Updated once after a reset sequence. | ||
Type | R |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
SIG_LBAH | SIG_LBAM | SIG_LBAL | SIG_SCR |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:24 | SIG_LBAH | Signature, LBA high (cylinder high) register | R | 0xFF |
23:16 | SIG_LBAM | Signature, LBA mid (cylinder low) register | R | 0xFF |
15:8 | SIG_LBAL | Signature, LBA low (sector number) register | R | 0xFF |
7:0 | SIG_SCR | Signature, sector count register | R | 0xFF |
Address Offset | 0x0000 0128 | ||
Physical Address | 0x4A14 0128 | Instance | DWC_ahsata |
Description | Port SATA status Current state of the interface and host, updated continuously and asynchronously. When the port transmits a COMRESET to the device, this register is updated to its reset values (that is, global reset, port reset, or COMINIT from the device). | ||
Type | R |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | IPM | SPD | DET |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:12 | RESERVED | R | 0x0 0000 | |
11:8 | IPM | Interface power management: Current interface state | R | 0x0 |
Read 0x0: Device not present or communication not established | ||||
Read 0x1: Interface in ACTIVE state | ||||
Read 0x2: Interface in PARTIAL power management state | ||||
Read 0x6: Interface in SLUMBER power management state | ||||
7:4 | SPD | Current interface speed: Negotiated interface communication speed | R | 0x0 |
Read 0x3: Generation 3 communication rate negotiated (6 Gbps) | ||||
Read 0x2: Generation 2 communication rate negotiated (3 Gbps) | ||||
Read 0x1: Generation 1 communication rate negotiated (1.5 Gbps) | ||||
Read 0x0: Device not present or communication not established | ||||
3:0 | DET | Device detection: Interface device detection and PHY state | R | 0x0 |
Read 0x0: No device detected and PHY communication not established | ||||
Read 0x1: Device presence detected but PHY communication not established | ||||
Read 0x3: Device presence detected and PHY communication established | ||||
Read 0x4: PHY in offline mode as a result of the interface being disabled or running in a BIST loopback mode |
Address Offset | 0x0000 012C | ||
Physical Address | 0x4A14 012C | Instance | DWC_ahsata |
Description | Port SATA control Control of SATA interface capabilities. Writes to this register result in action taken by the port PHY interface. Reads from the register return the last value written to it. Reset on global reset. Wait for at least seven periods of the slower clock (OCP or parallel serdes clock) between writes, due to the internal clock domain crossing between the transport (OCP) and link (serdes I/F) layers. | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | PMP | SPM | IPM | SPD | DET |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:20 | RESERVED | R | 0x000 | |
19:16 | PMP | PM port: This field is not used by the AHCI. | R | 0x0 |
15:12 | SPM | Select power management: This field is not used by the AHCI. | R | 0x0 |
11:8 | IPM | Interface power management transitions allowed: Indicates which power states the HBA is allowed to transition to. If an interface power management state is disabled, the HBA is not allowed to initiate that state and the HBA must PMNAK_P any request from the device to enter that state. The two MSBs are always 2'b00 (not writable), as for all unreserved field values. | RW | 0x0 |
0x0: No interface power management state restrictions | ||||
0x1: Transitions to the PARTIAL state disabled | ||||
0x2: Transitions to the SLUMBER state disabled | ||||
0x3: Transitions to both PARTIAL and SLUMBER states disabled | ||||
7:4 | SPD | Speed allowed: Highest allowable speed of the interface The two MSBs are always 2'b00 (not writable), as for all unreserved field values. | RW | 0x0 |
0x0: No speed negotiation restrictions | ||||
0x1: Limit speed negotiation to generation 1 communication rate. | ||||
0x2: Limit speed negotiation to a rate not greater than generation 2 communication rate. | ||||
3:0 | DET | Device detection initialization:
Controls the HBA device detection and interface initialization. Can be modified only when SATA_PxCMD.ST = 0. Must have a value of 0x0 when SATA_PxCMD.ST = 1. MSB is always 1'b0 (not writable), as for all unreserved field values. | RW | 0x0 |
0x0: No device detection or initialization action requested | ||||
0x1: Perform interface communication initialization sequence to establish communication. This is functionally equivalent to a hard reset and results in the interface being reset and communications reinitialized. While this field is 1h, COMRESET is transmitted on the interface. Software must leave the DET field set to 1h for a minimum of 1 ms to ensure that a COMRESET is sent on the interface. | ||||
0x4: Disable the serial ATA interface and put PHY in offline mode. |
Address Offset | 0x0000 0130 | ||
Physical Address | 0x4A14 0130 | Instance | DWC_ahsata |
Description | Port SATA error Detected interface errors accumulated since the last time it cleared. When set, indicates that the corresponding error condition became true one or more times since the last time cleared. Write 1 to a bit to clear it. Cleared by global reset or port reset (COMRESET). | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | DIAG_X | DIAG_F | DIAG_T | DIAG_S | DIAG_H | DIAG_C | DIAG_D | DIAG_B | DIAG_W | DIAG_I | DIAG_N | RESERVED | ERR_E | ERR_P | ERR_C | ERR_T | RESERVED | ERR_M | ERR_I |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:27 | RESERVED | R | 0x00 | |
26 | DIAG_X | Exchanged: PHY COMINIT signal detected. Reflected in SATA_PxIS.PCS. | RW W1toClr | 0 |
25 | DIAG_F | Unknown FIS type: One or more FISes were received by the transport layer with good CRC, but had a type field that was not recognized/known and the length was = 64 bytes. Note: If the unknown FIS length exceeds 64 bytes, DIAG_F is not set and DIAG_T is set instead. | RW W1toClr | 0 |
24 | DIAG_T | Transport state transition error: Transport Layer protocol violation detected. | RW W1toClr | 0 |
23 | DIAG_S | Link sequence error: One or more Link state machine error conditions encountered, including device doing SYNC escape during FIS transmission. | RW W1toClr | 0 |
22 | DIAG_H | Handshake error: One or more R-ERRp received in response to frame transmission. May be the result of a CRC error detected by the device, a disparity or 8b/10b decoding error, or other error condition leading to a negative handshake on a transmitted frame. | RW W1toClr | 0 |
21 | DIAG_C | CRC error: One ore more CRC errors detected by the link layer during FIS reception. | RW W1toClr | 0 |
20 | DIAG_D | Disparity error: Not used by AHCI, always 0. | R | 0 |
19 | DIAG_B | 10bit-to-8bit decode error: Errors detected by the 10b8b decoder. Note: Set only when an error is detected on the received FIS data word. Not set when an error is detected on the primitive, regardless of whether it is inside or outside the FIS. | RW W1toClr | 0 |
18 | DIAG_W | Comm wake: Comm wake signal detected by the PHY. | RW W1toClr | 0 |
17 | DIAG_I | PHY internal error: Internal error detected by the PHY. Note: If the PHY does not support any errors, this bit is never set. | RW W1toClr | 0 |
16 | DIAG_N | PhyRdy change: Indicates that the PHY Ready signal changed state. Reflected in SATA_PxIS.PRCS. | RW W1toClr | 0 |
15:12 | RESERVED | R | 0x0 | |
11 | ERR_E | Internal error: One or more errors detected on the master (DMA) or the slave (MMR access) interfaces. | RW W1toClr | 0 |
10 | ERR_P | Protocol error: Any of the following conditions: - Transport state transition error (DIAG_T) - Link sequence error (DIAG_S) - RxFIFO overflow - Link bad end error (WTRM instead of EOF received) | RW W1toClr | 0 |
9 | ERR_C | Nonrecovered persistent communication error: PHY Ready signal is negated due to loss of communication with the device or problems with the interface, but not after transition from ACTIVE to PARTIAL or SLUMBER power management state. | RW W1toClr | 0 |
8 | ERR_T | Nonrecovered transient data integrity error: Any of the following conditions are set during data FIS transfer: - ERR_P (Protocol) - DIAG_C (CRC) - DIAG_H (Handshake) - ERR_C (PHY Ready negation) | RW W1toClr | 0 |
7:2 | RESERVED | R | 0x00 | |
1 | ERR_M | Recovered communication error: PHY Ready condition is detected after interface initialization, but not after transition from PARTIAL or SLUMBER power management state to ACTIVE state. | RW W1toClr | 0 |
0 | ERR_I | Recovered data integrity error: Any of the following conditions are set during non-data FIS transfer: - ERR_P (Protocol) - DIAG_C (CRC) - DIAG_H (Handshake) - ERR_C (PHY Ready negation) | RW W1toClr | 0 |
Address Offset | 0x0000 0134 | ||
Physical Address | 0x4A14 0134 | Instance | DWC_ahsata |
Description | Port SATA active (SActive): Indicates which command slots contain commands. | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DS |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:0 | DS | Device status: Field is
bit-significant. Each bit corresponds to the TAG and command slot of
a native queued command, where bit 0 corresponds to TAG 0 and
command slot 0. Set by Software prior to issuing a native queued
command for a particular command slot. Prior to writing
SATA_PxCI[TAG] to 1, software sets DS[TAG] to 1 to indicate that a
command with that TAG is outstanding. The device clears bits by
sending a set device bits FIS to the port. The port clears bits in
this field that are set to 1 in the SActive field of the set device
bits FIS. The port only clears bits that correspond to native queued
commands completed successfully. Write only when SATA_PxCMD.ST bit is set to 1. Cleared when SATA_PxCMD.ST is written from 1 to 0. Not cleared by a port reset (COMRESET) or a software reset. | RW | 0x0000 0000 |
Address Offset | 0x0000 0138 | ||
Physical Address | 0x4A14 0138 | Instance | DWC_ahsata |
Description | Port command issue: Indicates that a command is constructed and may be carried out. | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
CI |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:0 | CI | Commands issue: Field is
bit-significant. Each bit corresponds to a command slot, where bit 0
corresponds to command slot 0. This field is set by software to
indicate to the port that a command is built in system memory for a
command slot and may be sent to the device. When the port receives a
FIS that clears the BSY, DRQ, and ERR bits for the command, it
clears the corresponding bit in this register for that command slot.
Bits in this field can only be set to 1 by software when
SATA_PxCMD.ST is set to 1. Also cleared when SATA_PxCMD.ST is written from 1 to 0 by software. | RW | 0x0000 0000 |
Address Offset | 0x0000 013C | ||
Physical Address | 0x4A14 013C | Instance | DWC_ahsata |
Description | Port SATA notification: Used to determine if asynchronous notification events have occurred for directly connected devices and devices connected to a PM. | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | PMN |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:16 | RESERVED | R | 0x0000 | |
15:0 | PMN | PM notify: Indicates whether a particular device with the corresponding PM port number issued a set device bits FIS to the SATA controller Port with the notification bit set: - PM Port 0h sets bit 0. - PM Port 0h sets bit 1. - etc. Write 1 to a bit to clear it. Reset on global reset but not on port reset (COMRESET) or software reset. | RW W1toClr | 0x0000 |
Address Offset | 0x0000 0170 | ||
Physical Address | 0x4A14 0170 | Instance | DWC_ahsata |
Description | Port DMA control
register. Not AHCI-standard. Writable only when SATA_PxCMD.ST =
0. Attempts to write a field value less than the minimum or more than the maximum cause the field to be set to the minimum or the maximum. Reset on global reset and port reset (COMRESET) | ||
Type | RW |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
RESERVED | RXTS | TXTS |
Bits | Field Name | Description | Type | Reset |
---|---|---|---|---|
31:8 | RESERVED | R | 0x00 0000 | |
7:4 | RXTS | Receive transaction size: DMA transaction size for receive operations (system bus write, device read). | RW | 0x6 |
0x0: 1 dword | ||||
0x1: 2 dwords | ||||
0x2: 4 dwords | ||||
0x3: 8 dwords | ||||
0x4: 16 dwords | ||||
0x5: 32 dwords | ||||
0x6: 64 dwords; maximum value for the 128-dword RX FIFO of this implementation. | ||||
3:0 | TXTS | Transmit transaction size: DMA transaction size for transmit operations (system bus read, device write). | RW | 0x5 |
0x0: 1 dword | ||||
0x1: 2 dwords | ||||
0x2: 4 dwords | ||||
0x3: 8 dwords | ||||
0x4: 16 dwords | ||||
0x5: 32 dwords; maximum value for this implementation. |