SPRUHZ7K August 2015 – April 2024 AM5706 , AM5708 , AM5716 , AM5718 , AM5718-HIREL
All GPMC registers are aligned to 32-bit address boundaries. All register file accesses, except to GPMC_NAND_DATA_i register, are little-endian. If the GPMC_NAND_DATA_i register location is accessed, the endianness is access-dependent.
In this section i corresponds to the chip-select number, where i = 0 to 7.
| Address Offset | 0x0000 0000 | ||
| Physical Address | 0x5000 0000 | Instance | GPMC |
| Description | This register contains the IP revision code. | ||
| 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 | |||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:0 | REVISION | IP revision | R | TI internal data |
| Address Offset | 0x0000 0010 | ||
| Physical Address | 0x5000 0010 | Instance | GPMC |
| Description | This register controls the various parameters of the interconnect. | ||
| 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 | IDLEMODE | RESERVED | SOFTRESET | AUTOIDLE | |||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:5 | RESERVED | Write 0s for future compatibility. Read returns 0. | RW | 0x0000000 |
| 4:3 | IDLEMODE | 0x0: Force-idle. An idle request is acknowledged unconditionally. | RW | 0x0 |
| 0x1: No-idle. An idle request is never acknowledged. | ||||
| 0x2: Smart-idle. Acknowledgment to an idle request is given based on the internal activity of the module. | ||||
| 0x3: Do not use. | ||||
| 2 | RESERVED | Write 0 for future compatibility Read returns 0. | RW | 0x0 |
| 1 | SOFTRESET | Software reset. Set this bit to 1 triggers a module reset. This bit is automatically reset by hardware. During reads, it always returns 0. | RW | 0x0 |
| 0x0: Normal mode | ||||
| 0x1: The module is reset. | ||||
| 0 | AUTOIDLE | Internal interface clock-gating strategy | RW | 0x0 |
| 0x0: Interface clock is free-running. | ||||
| 0x1: Automatic Interface clock gating strategy is applied, based on the interconnect activity. |
| Address Offset | 0x0000 0014 | ||
| Physical Address | 0x5000 0014 | Instance | GPMC |
| Description | This register provides status information about the module, excluding the interrupt status information. | ||
| 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 | RESERVED | RESETDONE | |||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:8 | RESERVED | Read returns 0. | R | 0x000000 |
| 7:1 | RESERVED | Read returns 0 (reserved for interconnect-socket status information). | R | 0x00 |
| 0 | RESETDONE | Internal reset monitoring | R | 0x- |
| 0x0: Internal module reset is ongoing. | ||||
| 0x1: Reset is complete. |
| Address Offset | 0x0000 0018 | ||
| Physical Address | 0x5000 0018 | Instance | GPMC |
| Description | This interrupt status register regroups all the status of the module internal events that can generate an 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 | WAIT1EDGEDETECTIONSTATUS | WAIT0EDGEDETECTIONSTATUS | RESERVED | TERMINALCOUNTSTATUS | FIFOEVENTSTATUS | ||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:10 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x000000 |
| 9 | WAIT1EDGEDETECTIONSTATUS | Status of the Wait1 Edge Detection interrupt | RW | 0x0 |
| Read 0x0: A transition on WAIT1 input pin has not been detected. | ||||
| Write 0x0: WAIT1EDGEDETECTIONSTATUS bit is unchanged. | ||||
| Read 0x1: A transition on WAIT1 input pin has been detected. | ||||
| Write 0x1: WAIT1EDGEDETECTIONSTATUS bit is reset. | ||||
| 8 | WAIT0EDGEDETECTIONSTATUS | Status of the Wait0 Edge Detection interrupt | RW | 0x0 |
| Read 0x0: A transition on WAIT0 input pin has not been detected. | ||||
| Write 0x0: WAIT0EDGEDETECTIONSTATUS bit is unchanged. | ||||
| Read 0x1: A transition on WAIT0 input pin has been detected. | ||||
| Write 0x1: WAIT0EDGEDETECTIONSTATUS bit is reset. | ||||
| 7:2 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x00 |
| 1 | TERMINALCOUNTSTATUS | Status of the TerminalCountEvent interrupt | RW | 0x0 |
| Read 0x0: Indicates that CountValue is greater than 0 | ||||
| Write 0x0: TERMINALCOUNTSTATUS bit is unchanged. | ||||
| Read 0x1: Indicates that CountValue is equal to 0 | ||||
| Write 0x1: TERMINALCOUNTSTATUS bit is reset. | ||||
| 0 | FIFOEVENTSTATUS | Status of the FIFOEvent interrupt | RW | 0x0 |
| Read 0x0: Indicates that less than GPMC_PREFETCH_STATUS[16] FIFOTHRESHOLDSTATUS bytes are available in prefetch mode and less than FIFOTHRESHOLD bytes free places are available in write-posting mode | ||||
| Write 0x0: FIFOEVENTSTATUS bit is unchanged. | ||||
| Read 0x1: Indicates that at least GPMC_PREFETCH_STATUS[16] FIFOTHRESHOLDSTATUS bytes are available in prefetch mode and at least FIFOTHRESHOLD bytes free places are available in write-posting mode | ||||
| Write 0x1: FIFOEVENTSTATUS bit is reset. |
| Address Offset | 0x0000 001C | ||
| Physical Address | 0x5000 001C | Instance | GPMC |
| Description | The interrupt enable register allows to mask/unmask the module internal sources of interrupt, on a event-by-event basis. | ||
| 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 | WAIT1EDGEDETECTIONENABLE | WAIT0EDGEDETECTIONENABLE | RESERVED | TERMINALCOUNTEVENTENABLE | FIFOEVENTENABLE | ||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:10 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x000000 |
| 9 | WAIT1EDGEDETECTIONENABLE | Enables the Wait1 Edge Detection interrupt | RW | 0x0 |
| 0x0: Wait1EdgeDetection interrupt is masked. | ||||
| 0x1: Wait1EdgeDetection event generates an interrupt if occurs. | ||||
| 8 | WAIT0EDGEDETECTIONENABLE | Enables the Wait0 Edge Detection interrupt | RW | 0x0 |
| 0x0: Wait0EdgeDetection interrupt is masked. | ||||
| 0x1: Wait0EdgeDetection event generates an interrupt if occurs. | ||||
| 7:2 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x00 |
| 1 | TERMINALCOUNTEVENTENABLE | Enables TerminalCountEvent interrupt issuing in prefetch or write-posting mode | RW | 0x0 |
| 0x0: TerminalCountEvent interrupt is masked. | ||||
| 0x1: TerminalCountEvent interrupt is not masked. | ||||
| 0 | FIFOEVENTENABLE | Enables the FIFOEvent interrupt | RW | 0x0 |
| 0x0: FIFOEvent interrupt is masked. | ||||
| 0x1: FIFOEvent interrupt is not masked. |
| Address Offset | 0x0000 0040 | ||
| Physical Address | 0x5000 0040 | Instance | GPMC |
| Description | The GPMC_TIMEOUT_CONTROL register allows the user to set the start value of the timeout counter. | ||
| 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 | TIMEOUTSTARTVALUE | RESERVED | TIMEOUTENABLE | ||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:13 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x00000 |
| 12:4 | TIMEOUTSTARTVALUE | Start value of the time-out counter 0x000: Zero GPMC_FCLK cycle 0x001: One GPMC_FCLK cycle ... 0x1FF: 511 GPMC_FCLK cycles | RW | 0x1FF |
| 3:1 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 0 | TIMEOUTENABLE | Enable bit of the TimeOut feature | RW | 0x0 |
| 0x0: TimeOut feature is disabled. | ||||
| 0x1: TimeOut feature is enabled. |
| Address Offset | 0x0000 0044 | ||
| Physical Address | 0x5000 0044 | Instance | GPMC |
| Description | The GPMC_ERR_ADDRESS register stores the address of the illegal access when an error occurs. | ||
| 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 | ILLEGALADD | ||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31 | RESERVED | Write 0s for future compatibility. Read returns 0. | RW | 0x0 |
| 30:0 | ILLEGALADD | Address of illegal access A30: 0 for memory region, 1 for GPMC register region A29-A0: 1 GiB maximum | R | 0x00000000 |
| Address Offset | 0x0000 0048 | ||
| Physical Address | 0x5000 0048 | Instance | GPMC |
| Description | The GPMC_ERR_TYPE register stores the type of error when an error occurs. | ||
| 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 | ILLEGALMCMD | RESERVED | ERRORNOTSUPPADD | ERRORNOTSUPPMCMD | ERRORTIMEOUT | RESERVED | ERRORVALID | ||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:11 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x000000 |
| 10:8 | ILLEGALMCMD | System command of the transaction that caused the error | R | 0x0 |
| 7:5 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 4 | ERRORNOTSUPPADD | Not supported address error | R | 0x0 |
| 0x0: No error occurs. | ||||
| 0x1: The error is due to a nonsupported address. | ||||
| 3 | ERRORNOTSUPPMCMD | Not supported command error | R | 0x0 |
| 0x0: No error occurs. | ||||
| 0x1: The error is due to a nonsupported command | ||||
| 2 | ERRORTIMEOUT | Time-out error | R | 0x0 |
| 0x0: No error occurs. | ||||
| 0x1: The error is due to a timeout. | ||||
| 1 | RESERVED | Write 0s for future compatibility. Read returns 0. | RW | 0x0 |
| 0 | ERRORVALID | Error validity status - Must be explicitly cleared with a write 1 transaction | RW | 0x0 |
| 0x0: All error fields no longer valid | ||||
| 0x1: Error detected and logged in the other error fields |
| Address Offset | 0x0000 0050 | ||
| Physical Address | 0x5000 0050 | Instance | GPMC |
| Description | The configuration register allows global configuration of the GPMC. | ||
| 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 | WAIT1PINPOLARITY | WAIT0PINPOLARITY | RESERVED | RESERVED | NANDFORCEPOSTEDWRITE | ||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:10 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x000000 |
| 9 | WAIT1PINPOLARITY | Selects the polarity of input pin WAIT1 | RW | 0x1 |
| 0x0: WAIT1 active low | ||||
| 0x1: WAIT1 active high | ||||
| 8 | WAIT0PINPOLARITY | Selects the polarity of input pin WAIT0 | RW | 0x0 |
| 0x0: WAIT0 active low | ||||
| 0x1: WAIT0 active high | ||||
| 7:2 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x00 |
| 1 | RESERVED | Write 0 for future compatibility. Read returns 0. | RW | 0x0 |
| 0 | NANDFORCEPOSTEDWRITE | Enables the Force Posted Write feature to NAND Cmd/Add/Data location | RW | 0x0 |
| 0x0: Disables Force Posted Write | ||||
| 0x1: Enables Force Posted Write |
| Address Offset | 0x0000 0054 | ||
| Physical Address | 0x5000 0054 | Instance | GPMC |
| Description | The status register provides global status bits of the GPMC. | ||
| 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 | WAIT1STATUS | WAIT0STATUS | RESERVED | EMPTYWRITEBUFFERSTATUS | |||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:10 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x000000 |
| 9 | WAIT1STATUS | Is a copy of input pin WAIT1. (Reset value is WAIT1 input pin sampled at device reset.) | R | 0x- |
| 0x0: WAIT1 asserted (inactive state) | ||||
| 0x1: WAIT1 deasserted | ||||
| 8 | WAIT0STATUS | Is a copy of input pin WAIT0. (Reset value is WAIT0 input pin sampled at device reset.) | R | 0x- |
| 0x0: WAIT0 asserted (inactive state) | ||||
| 0x1: WAIT0 deasserted | ||||
| 7:1 | RESERVED | Write 0s for future compatibility. Reads returns 0 | RW | 0x00 |
| 0 | EMPTYWRITEBUFFERSTATUS | Stores the empty status of the write buffer | R | 0x1 |
| 0x0: Write buffer is not empty. | ||||
| 0x1: Write buffer is empty. |
| Address Offset | 0x0000 0060 + (0x0000 0030 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 0060 + (0x0000 0030 * i) | Instance | GPMC |
| Description | The configuration register 1 sets signal control parameters per chip-select. | ||
| 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 |
| WRAPBURST | READMULTIPLE | READTYPE | WRITEMULTIPLE | WRITETYPE | CLKACTIVATIONTIME | ATTACHEDDEVICEPAGELENGTH | WAITREADMONITORING | WAITWRITEMONITORING | RESERVED | WAITMONITORINGTIME | WAITPINSELECT | RESERVED | DEVICESIZE | DEVICETYPE | MUXADDDATA | RESERVED | TIMEPARAGRANULARITY | RESERVED | GPMCFCLKDIVIDER | ||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31 | WRAPBURST | Enables the wrapping burst capability. Must be set if the attached device is configured in wrapping burst | RW | 0x0 |
| 0x0: Synchronous wrapping burst not supported | ||||
| 0x1: Synchronous wrapping burst supported | ||||
| 30 | READMULTIPLE | Selects the read single or multiple access | RW | 0x0 |
| 0x0: Single access | ||||
| 0x1: Multiple access (burst if synchronous, page if asynchronous) | ||||
| 29 | READTYPE | Selects the read mode operation | RW | 0x0 |
| 0x0: Read asynchronous | ||||
| 0x1: Read synchronous | ||||
| 28 | WRITEMULTIPLE | Selects the write single or multiple access | RW | 0x0 |
| 0x0: Single access | ||||
| 0x1: Multiple access (burst if synchronous, considered as single if asynchronous) | ||||
| 27 | WRITETYPE | Selects the write mode operation | RW | 0x0 |
| 0x0: Write asynchronous | ||||
| 0x1: Write synchronous | ||||
| 26:25 | CLKACTIVATIONTIME | Output GPMC_CLK activation time | RW | 0x0 |
| 0x0: First rising edge of GPMC_CLK at start access time | ||||
| 0x1: First rising edge of GPMC_CLK one GPMC_FCLK cycle after start access time | ||||
| 0x2: First rising edge of GPMC_CLK two GPMC_FCLK cycles after start access time | ||||
| 0x3: Reserved | ||||
| 24:23 | ATTACHEDDEVICEPAGELENGTH | Specifies the attached device page (burst) length | RW | 0x0 |
| 0x0: 4 words | ||||
| 0x1: 8 words | ||||
| 0x2: 16 words | ||||
| 0x3: Reserved (1 word = interface size) | ||||
| 22 | WAITREADMONITORING | Selects the Wait monitoring configuration for Read accesses (Reset value is bootwaiten input pin sampled at device reset) | RW | 0x- |
| 0x0: Wait pin is not monitored for read accesses. | ||||
| 0x1: Wait pin is monitored for read accesses. | ||||
| 21 | WAITWRITEMONITORING | Selects the Wait monitoring configuration for Write accesses | RW | 0x0 |
| 0x0: Wait pin is not monitored for write accesses. | ||||
| 0x1: Wait pin is monitored for write accesses. | ||||
| 20 | RESERVED | Write 0s for future compatibility. Read returns 0. | RW | 0x0 |
| 19:18 | WAITMONITORINGTIME | Selects input pin Wait monitoring time | RW | 0x0 |
| 0x0: Wait pin is monitored with valid data. | ||||
| 0x1: Wait pin is monitored one GPMC_CLK cycle before valid data. | ||||
| 0x2: Wait pin is monitored two GPMC_CLK cycle before valid data. | ||||
| 0x3: Reserved | ||||
| 17:16 | WAITPINSELECT | Selects the input wait pin for this chip-select (The reset value is HW fixed to 0x0 for CS0-CS7) | RW | 0x0 |
| 0x0: Wait input pin is WAIT0. | ||||
| 0x1: Wait input pin is WAIT1. | ||||
| 0x2, 0x3: Reserved | ||||
| 15:14 | RESERVED | Write 0s for future compatibility. Reads returns 0 | RW | 0x0 |
| 13:12 | DEVICESIZE | Selects the device size attached (Reset value is bootdevicesize input pin sampled at device reset for CS0 and 0x1 for CS1 to CS7) | RW | 0x- |
| 0x0: 8 bit | ||||
| 0x1: 16 bit | ||||
| 0x2: Reserved | ||||
| 0x3: Reserved | ||||
| 11:10 | DEVICETYPE | Selects the attached device type | RW | 0x0 |
| 0x0: NOR flash-like, asynchronous and synchronous devices | ||||
| 0x1: Reserved | ||||
| 0x2: NAND flash-like devices, stream mode | ||||
| 0x3: Reserved | ||||
| 9:8 | MUXADDDATA | Enables the address and data multiplexed protocol (Reset value is cs0muxdevice input pin sampled at device reset for CS0 and 0 for CS1-CS7) | RW | 0x- |
| 0x0: Nonmultiplexed attached device | ||||
| 0x1: AAD-multiplexed protocol device | ||||
| 0x2: Address and data multiplexed attached device | ||||
| 0x3: Reserved | ||||
| 7:5 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 4 | TIMEPARAGRANULARITY | Signals timing latencies scalar factor (RD/WRCYCLETIME, RD/WRACCESSTIME, PAGEBURSTACCESSTIME, CSONTIME, CSRD/WROFFTIME, ADVONTIME, ADVRD/WROFFTIME, OEONTIME, OEOFFTIME, WEONTIME, WEOFFTIME, CYCLE2CYCLEDELAY, BUSTURNAROUND, TIMEOUTSTARTVALUE, WRDATAONADMUXBUS) | RW | 0x0 |
| 0x0: x1 latencies | ||||
| 0x1: x2 latencies | ||||
| 3:2 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 1:0 | GPMCFCLKDIVIDER | Divides the GPMC_FCLK clock | RW | 0x0 |
| 0x0: GPMC_CLK frequency = GPMC_FCLK frequency | ||||
| 0x1: GPMC_CLK frequency = GPMC_FCLK frequency / 2 | ||||
| 0x2: GPMC_CLK frequency = GPMC_FCLK frequency / 3 | ||||
| 0x3: GPMC_CLK frequency = GPMC_FCLK frequency /4 |
| Address Offset | 0x0000 0064 + (0x0000 0030 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 0064 + (0x0000 0030 * i) | Instance | GPMC |
| Description | CS signal timing parameter configuration | ||
| 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 | CSWROFFTIME | RESERVED | CSRDOFFTIME | CSEXTRADELAY | RESERVED | CSONTIME | |||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:21 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x000 |
| 20:16 | CSWROFFTIME | CS i deassertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles | RW | 0x10 |
| 15:13 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 12:8 | CSRDOFFTIME | CS i de-assertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles | RW | 0x10 |
| 7 | CSEXTRADELAY | CS i Add extra half-GPMC_FCLK cycle | RW | 0x0 |
| 0x0: CS i Timing control signal is not delayed | ||||
| 0x1: CS i Timing control signal is delayed of half GPMC_FCLK clock cycle | ||||
| 6:4 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 3:0 | CSONTIME | CS i assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles | RW | 0x1 |
| Address Offset | 0x0000 0068 + (0x0000 0030 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 0068 + (0x0000 0030 * i) | Instance | GPMC |
| Description | nADV signal timing parameter configuration | ||
| 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 | ADVAADMUXWROFFTIME | RESERVED | ADVAADMUXRDOFFTIME | RESERVED | ADVWROFFTIME | RESERVED | ADVRDOFFTIME | ADVEXTRADELAY | ADVAADMUXONTIME | ADVONTIME | |||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0 |
| 30:28 | ADVAADMUXWROFFTIME | nADV deassertion for first address phase when using the AAD-multiplexed protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles | RW | 0x2 |
| 27 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0 |
| 26:24 | ADVAADMUXRDOFFTIME | nADV assertion for first address phase when using the AAD-multiplexed protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles | RW | 0x2 |
| 23:21 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 20:16 | ADVWROFFTIME | nADV deassertion time from start cycle time for write accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles | RW | 0x06 |
| 15:13 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 12:8 | ADVRDOFFTIME | nADV deassertion time from start cycle time for read accesses 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles | RW | 0x05 |
| 7 | ADVEXTRADELAY | nADV add extra half-GPMC_FCLK cycle | RW | 0 |
| 0x0: nADV timing control signal is not delayed | ||||
| 0x1: nADV timing control signal is delayed of half GPMC_FCLK clock cycle | ||||
| 6:4 | ADVAADMUXONTIME | nADV assertion for first address phase when using the AAD-multiplexed protocol 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles | RW | 0x1 |
| 3:0 | ADVONTIME | nADV assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles | RW | 0x4 |
| Address Offset | 0x0000 006C + (0x0000 0030 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 006C + (0x0000 0030 * i) | Instance | GPMC |
| Description | nWE and nOE signals timing parameter configuration | ||
| 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 | WEOFFTIME | WEEXTRADELAY | RESERVED | WEONTIME | OEAADMUX OFFTIME | OEOFFTIME | OEEXTRADELAY | OEAADMUX ONTIME | OEONTIME | ||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:29 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 28:24 | WEOFFTIME | nWE deassertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles | RW | 0x10 |
| 23 | WEEXTRADELAY | nWE add extra half-GPMC_FCLK cycle | RW | 0 |
| 0x0: nWE timing control signal is not delayed | ||||
| 0x1: nWE timing control signal is delayed of half-GPMC_FCLK clock cycle | ||||
| 22:20 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 19:16 | WEONTIME | nWE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles | RW | 0x5 |
| 15:13 | OEAADMUX OFFTIME | nOE deassertion time for the first address phase in an AAD-multiplexed access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles | RW | 0x3 |
| 12:8 | OEOFFTIME | nOE deassertion time from start cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles | RW | 0x10 |
| 7 | OEEXTRADELAY | nOE add extra half-GPMC_FCLK cycle | RW | 0 |
| 0x0: nOE timing control signal is not delayed | ||||
| 0x1: nOE timing control signal is delayed of half-GPMC_FCLK clock cycle | ||||
| 6:4 | OEAADMUX ONTIME | nOE assertion time for the first address phase in an AAD-mux access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles | RW | 0x1 |
| 3:0 | OEONTIME | nOE assertion time from start cycle time 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles | RW | 0x6 |
| Address Offset | 0x0000 0070 + (0x0000 0030 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 0070 + (0x0000 0030 * i) | Instance | GPMC |
| Description | RdAccessTime and CycleTime timing parameters configuration | ||
| 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 | PAGEBURSTACCESSTIME | RESERVED | RDACCESSTIME | RESERVED | WRCYCLETIME | RESERVED | RDCYCLETIME | ||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:28 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 27:24 | PAGEBURSTACCESSTIME | Delay between successive words in a multiple access 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles | RW | 0x1 |
| 23:21 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 20:16 | RDACCESSTIME | Delay between start cycle time and first data valid 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles | RW | 0x0F |
| 15:13 | RESERVED | Write 0s for future compatibility. Reads returns 0 | RW | 0x0 |
| 12:8 | WRCYCLETIME | Total write cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles | RW | 0x11 |
| 7:5 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 4:0 | RDCYCLETIME | Total read cycle time 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles | RW | 0x11 |
| Address Offset | 0x0000 0074 + (0x0000 0030 * i) | Index | i = 0 to7 |
| Physical Address | 0x5000 0074 + (0x0000 0030 * i) | Instance | GPMC |
| Description | WrAccessTime, WrDataOnADmuxBus, Cycle2Cycle and BusTurnAround parameters configuration | ||
| 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 | RESERVED | WRACCESSTIME | RESERVED | WRDATAONADMUXBUS | RESERVED | CYCLE2CYCLEDELAY | CYCLE2CYCLESAMECSEN | CYCLE2CYCLEDIFFCSEN | RESERVED | BUSTURNAROUND | |||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31 | RESERVED | TI Internal use - Do not modify. | RW | 1 |
| 30:29 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 28:24 | WRACCESSTIME | Delay from start access time to the GPMC_FCLK rising edge corresponding the GPMC_CLK rising edge used by the attached memory for the first data capture 0x00: 0 GPMC_FCLK cycle 0x01: 1 GPMC_FCLK cycle ... 0x1F: 31 GPMC_FCLK cycles | RW | 0x0F |
| 23:20 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 19:16 | WRDATAONADMUXBUS | Specifies on which GPMC_FCLK rising edge the first data of the write is driven in the add/data mux bus | RW | 0x7 |
| 15:12 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 11:8 | CYCLE2CYCLEDELAY | Chip-select high pulse delay between successive accesses 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles | RW | 0x0 |
| 7 | CYCLE2CYCLESAMECSEN | Add CYCLE2CYCLEDELAY between successive accesses to the same chip-select (any access type) | RW | 0 |
| 0x0: No delay between the two accesses | ||||
| 0x1: Add CYCLE2CYCLEDELAY | ||||
| 6 | CYCLE2CYCLEDIFFCSEN | Add CYCLE2CYCLEDELAY between successive accesses to a different chip-select (any access type) | RW | 0x0 |
| 0x0: No delay between the two accesses | ||||
| 0x1: Add CYCLE2CYCLEDELAY | ||||
| 5:4 | RESERVED | Write 0s for future compatibility. Reads return 0. | RW | 0x0 |
| 3:0 | BUSTURNAROUND | Bus turnaround latency between successive accesses to the same chip-select (read to write) or to a different chip-select (read to read and read to write) 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0xF: 15 GPMC_FCLK cycles | RW | 0x0 |
| Address Offset | 0x0000 0078 + (0x0000 0030 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 0078 + (0x0000 0030 * i) | Instance | GPMC |
| Description | CS address mapping configuration | ||
| 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 | MASKADDRESS | RESERVED | CSVALID | BASEADDRESS | |||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:12 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x00000 |
| 11:8 | MASKADDRESS | CS mask address. 0x0000: Chip-select size of 256 MiB 0x1000: Chip-select size of 128 MiB 0x1100: Chip-select size of 64 MiB 0x1110: Chip-select size of 32 MiB 0x1111: Chip-select size of 16 MiB Other values must be avoided as they create holes in the chip-select address space. | RW | 0xF |
| 7 | RESERVED | Write 0s for future compatibility. Read returns 0. | RW | 0x0 |
| 6 | CSVALID | CS enable | RW | See (1) |
| 0x0: CS disabled | ||||
| 0x1: CS enabled | ||||
| 5:0 | BASEADDRESS | CSi base address where i = 0 to 7 (16-MiB minimum granularity) bits [5:0] corresponds to A29, A28, A27, A26, A25, and A24. See Figure 15-59 | RW | 0x00 |
| Address Offset | 0x0000 007C + (0x0000 0030 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 007C + (0x0000 0030 * i) | Instance | GPMC |
| Description | This register is not a true register, only an address location. | ||
| Type | W | ||
| 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 |
| GPMC_NAND_COMMAND | |||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:0 | GPMC_NAND_COMMAND | This register is not a true register, only an address location. Writing data at the GPMC_NAND_COMMAND_i location places the data as the NAND command value on the bus, using a regular asynchronous write access. | W | 0x- |
| Address Offset | 0x0000 0080 + (0x0000 0030 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 0080 + (0x0000 0030 * i) | Instance | GPMC |
| Description | This register is not a true register, only an address location. | ||
| Type | W | ||
| 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 |
| GPMC_NAND_ADDRESS | |||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:0 | GPMC_NAND_ADDRESS | This register is not a true register, only an address location. Writing data at the GPMC_NAND_ADDRESS_i location places the data as the NAND partial address value on the bus, using a regular asynchronous write access. | W | 0x- |
| Address Offset | 0x0000 0084 + (0x0000 0030 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 0084 + (0x0000 0030 * i) | Instance | GPMC |
| Description | This register is not a true register,only an address location. | ||
| 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 |
| GPMC_NAND_DATA | |||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:0 | GPMC_NAND_DATA | This register is not a true register, only an address location. Reading data from the GPMC_NAND_DATA_i location or from any location in the associated chip-select memory region activates an asynchronous read access. | W | 0x- |
| Address Offset | 0x0000 01E0 | ||
| Physical Address | 0x5000 01E0 | Instance | GPMC |
| Description | Prefetch engine configuration 1 | ||
| 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 | CYCLEOPTIMIZATION | ENABLEOPTIMIZEDACCESS | ENGINECSSELECTOR | PFPWENROUNDROBIN | RESERVED | PFPWWEIGHTEDPRIO | RESERVED | FIFOTHRESHOLD | ENABLEENGINE | RESERVED | WAITPINSELECTOR | SYNCHROMODE | DMAMODE | RESERVED | ACCESSMODE | ||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31 | RESERVED | Write 0s for future compatibility. Read returns 0. | RW | 0x0 |
| 30:28 | CYCLEOPTIMIZATION | Define the number of GPMC_FCLK cycles to be subtracted from RDCYCLETIME, WRCYCLETIME, RDACCESSTIME, CSRDOFFTIME, CSWROFFTIME, ADVRDOFFTIME, ADVWROFFTIME, OEOFFTIME, WEOFFTIME 0x0: 0 GPMC_FCLK cycle 0x1: 1 GPMC_FCLK cycle ... 0x7: 7 GPMC_FCLK cycles | RW | 0x0 |
| 27 | ENABLEOPTIMIZEDACCESS | Enables access cycle optimization | RW | 0x0 |
| 0x0: Access cycle optimization is disabled. | ||||
| 0x1: Access cycle optimization is enabled. | ||||
| 26:24 | ENGINECSSELECTOR | Selects the chip-select where Prefetch Postwrite engine is active 0x0: CS0 0x1: CS1 0x2: CS2 0x3: CS3 0x4: CS4 0x5: CS5 0x6: CS6 0x7: CS7 | RW | 0x0 |
| 23 | PFPWENROUNDROBIN | Enables the PFPW RoundRobin arbitration | RW | 0x0 |
| 0x0: Prefetch Postwrite engine round robin arbitration is disabled. | ||||
| 0x1: Prefetch Postwrite engine round robin arbitration is enabled. | ||||
| 22:20 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 19:16 | PFPWWEIGHTEDPRIO | When an arbitration occurs between a DMA and a PFPW engine access, the DMA is always serviced. If the PFPWEnRoundRobin is enabled, 0x0: The next access is granted to the PFPW engine. 0x1: The next two accesses are granted to the PFPW engine. ..., 0xF: The next 16 accesses are granted to the PFPW engine. | RW | 0x0 |
| 15 | RESERVED | Write 0s for future compatibility. Read returns 0. | RW | 0x0 |
| 14:8 | FIFOTHRESHOLD | Selects the maximum number of bytes read from the FIFO or written to the FIFO by the host on a DMA or interrupt request 0x00: 0 byte 0x01: 1 byte ... 0x40: 64 bytes | RW | 0x40 |
| 7 | ENABLEENGINE | Enables the Prefetch Postwite engine | RW | 0x0 |
| 0x0: Prefetch Postwrite engine is disabled. | ||||
| 0x1: Prefetch Postwrite engine is enabled. | ||||
| 6 | RESERVED | Write 0s for future compatibility. Read returns 0. | RW | 0x0 |
| 5:4 | WAITPINSELECTOR | Select which wait pin edge detector should start the engine in synchronized mode | RW | 0x0 |
| 0x0: Selects Wait0 EdgeDetection | ||||
| 0x1: Selects Wait1 EdgeDetection | ||||
| 0x2, 0x3: Reserved | ||||
| 3 | SYNCHROMODE | Selects when the engine starts the access to chip-select | RW | 0x0 |
| 0x0: Engine starts the access to chip-select as soon as STARTENGINE is set | ||||
| 0x1: Engine starts the access to chip-select as soon as STARTENGINE is set AND wait to nonwait edge detection on the selected wait pin | ||||
| 2 | DMAMODE | Selects interrupt synchronization or DMA request synchronization | RW | 0x0 |
| 0x0: Interrupt synchronization is enabled. Only interrupt line is activated on FIFO threshold crossing. | ||||
| 0x1: DMA request synchronization is enabled. A DMA request protocol is used. | ||||
| 1 | RESERVED | Write 0s for future compatibility. Read returns 0. | RW | 0x0 |
| 0 | ACCESSMODE | Selects prefetch read or write-posting accesses | RW | 0x0 |
| 0x0: Prefetch read mode | ||||
| 0x1: Write-posting mode |
| Address Offset | 0x0000 01E4 | ||
| Physical Address | 0x5000 01E4 | Instance | GPMC |
| Description | Prefetch engine configuration 2 | ||
| 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 | TRANSFERCOUNT | ||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:14 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x00000 |
| 13:0 | TRANSFERCOUNT | Selects the number of bytes to be read or written by the engine to the selected chip-select 0x0000: 0 byte 0x0001: 1 byte ... 0x2000: 8 Kbytes | RW | 0x0000 |
| Address Offset | 0x0000 01EC | ||
| Physical Address | 0x5000 01EC | Instance | GPMC |
| Description | Prefetch engine 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 |
| RESERVED | STARTENGINE | ||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:1 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x00000000 |
| 0 | STARTENGINE | Resets the FIFO pointer and starts the engine | RW | 0x0 |
| Read 0x0: Engine is stopped. | ||||
| Write 0x0: Stops the engine | ||||
| Read 0x1: Engine is running. | ||||
| Write 0x1: Resets the FIFO pointer to 0x0 in prefetch mode and 0x40 in postwrite mode and starts the engine |
| Address Offset | 0x0000 01F0 | ||
| Physical Address | 0x5000 01F0 | Instance | GPMC |
| Description | Prefetch engine status | ||
| 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 | FIFOPOINTER | RESERVED | FIFOTHRESHOLDSTATUS | RESERVED | COUNTVALUE | ||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31 | RESERVED | Write 0s for future compatibility. Read returns 0. | RW | 0x0 |
| 30:24 | FIFOPOINTER | Number of available bytes to be read or number of free empty byte places to be written 0x00: 0 byte available to be read or 0 free empty place to be written ... 0x40: 64 bytes available to be read or 64 empty places to be written | R | 0x00 |
| 23:17 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x00 |
| 16 | FIFOTHRESHOLDSTATUS | Set when FIFOPointer exceeds FIFOThreshold value | R | 0x0 |
| 0x0: FIFOPointer smaller or equal to FIFOThreshold. Writing to this bit has no effect. | ||||
| 0x1: FIFOPointer greater than FIFOThreshold. Writing to this bit has no effect. | ||||
| 15:14 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 13:0 | COUNTVALUE | Number of remaining bytes to be read or to be written by the engine according to the TransferCount value 0x0000: 0 byte remaining to be read or to be written 0x0001: 1 byte remaining to be read or to be written ... 0x2000: 8 KiB remaining to be read or to be written | R | 0x0000 |
| Address Offset | 0x0000 01F4 | ||
| Physical Address | 0x5000 01F4 | Instance | GPMC |
| Description | ECC configuration | ||
| 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 | ECCALGORITHM | RESERVED | ECCBCHTSEL | ECCWRAPMODE | ECC16B | ECCTOPSECTOR | ECCCS | ECCENABLE | |||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:17 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0000 |
| 16 | ECCALGORITHM | ECC algorithm used | RW | 0x0 |
| 0x0: Hamming code | ||||
| 0x1: BCH code | ||||
| 15:14 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 13:12 | ECCBCHTSEL | Error correction capability used for BCH | RW | 0x1 |
| 0x0: Up to 4 bits error correction (t = 4) | ||||
| 0x1: Up to 8 bits error correction (t = 8) | ||||
| 0x2: Up to 16 bits error correction (t = 16) | ||||
| 0x3: Reserved | ||||
| 11:8 | ECCWRAPMODE | Spare area organization definition for the BCH algorithm. See the BCH syndrome/parity calculator module functional specification for more details | RW | 0x0 |
| 7 | ECC16B | Selects an ECC calculated on 16 columns | RW | 0x0 |
| 0x0: ECC calculated on 8 columns | ||||
| 0x1: ECC calculated on 16 columns | ||||
| 6:4 | ECCTOPSECTOR | Number of sectors to process with the BCH algorithm 0x0: 1 sector (512-kB page) 0x1: 2 sectors ... 0x3: 4 sectors (2-kB page) ... 0x7: 8 sectors (4-kB page) | RW | 0x3 |
| 3:1 | ECCCS | Selects the CS where ECC is computed | RW | 0x0 |
| 0x0: CS0 | ||||
| 0x1: CS1 | ||||
| 0x2: CS2 | ||||
| 0x3: CS3 | ||||
| Other: Reserved | ||||
| 0 | ECCENABLE | Enables the ECC feature | RW | 0x0 |
| 0x0: ECC disabled | ||||
| 0x1: ECC enabled |
| Address Offset | 0x0000 01F8 | ||
| Physical Address | 0x5000 01F8 | Instance | GPMC |
| Description | ECC 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 |
| RESERVED | ECCCLEAR | RESERVED | ECCPOINTER | ||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:9 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x000000 |
| 8 | ECCCLEAR | Clear all ECC result registers Reads return 0. Write 0x1 to this field clears all ECC result registers. Write 0x0 is ignored. | RW | 0x0 |
| 7:4 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 3:0 | ECCPOINTER | Selects ECC result register (Reads to this field give the dynamic position of the ECC pointer - Writes to this field select the ECC result register where the first ECC computation will be stored.); Other enums: writing other values disables the ECC engine (ECCENABLE bit of GPMC_ECC_CONFIG set to 0) | RW | 0x0 |
| 0x0: Writing 0x0 disables the ECC engine (ECCENABLE bit of GPMC_ECC_CONFIG set to 0) | ||||
| 0x1: ECC result register 1 selected | ||||
| 0x2: ECC result register 2 selected | ||||
| 0x3: ECC result register 3 selected | ||||
| 0x4: ECC result register 4 selected | ||||
| 0x5: ECC result register 5 selected | ||||
| 0x6: ECC result register 6 selected | ||||
| 0x7: ECC result register 7 selected | ||||
| 0x8: ECC result register 8 selected | ||||
| 0x9: ECC result register 9 selected |
| Address Offset | 0x0000 01FC | ||
| Physical Address | 0x5000 01FC | Instance | GPMC |
| Description | ECC size | ||
| 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 | ECCSIZE1 | RESERVED | ECCSIZE0 | RESERVED | ECC9RESULTSIZE | ECC8RESULTSIZE | ECC7RESULTSIZE | ECC6RESULTSIZE | ECC5RESULTSIZE | ECC4RESULTSIZE | ECC3RESULTSIZE | ECC2RESULTSIZE | ECC1RESULTSIZE | ||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:30 | RESERVED | Write 0s for future compatibility. Read returns 3. | RW | 0x3 |
| 29:22 | ECCSIZE1 | Defines Hamming code ECC size 1
in bytes 0x00: 2 bytes 0x01: 4 bytes 0x02: 6 bytes 0x03: 8 bytes ... 0xFF: 512 bytes For BCH code ECC, the size 1 is programmed directly with the number of nibbles. For details, see Wrapping Modes. | RW | 0xFF |
| 21:20 | RESERVED | Write 0s for future compatibility. Read returns 3. | RW | 0x3 |
| 19:12 | ECCSIZE0 | Defines Hamming code ECC size 0
in bytes 0x00: 2 bytes 0x01: 4 bytes 0x02: 6 bytes 0x03: 8 bytes ... 0xFF: 512 bytes For BCH code ECC, the size 0 is programmed directly with the number of nibbles. For details, see Wrapping Modes. | RW | 0xFF |
| 11:9 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 8 | ECC9RESULTSIZE | Selects ECC size for ECC 9 result register | RW | 0x0 |
| 0x0: ECCSIZE0 selected | ||||
| 0x1: ECCSIZE1 selected | ||||
| 7 | ECC8RESULTSIZE | Selects ECC size for ECC 8 result register | RW | 0x0 |
| 0x0: ECCSIZE0 selected | ||||
| 0x1: ECCSIZE1 selected | ||||
| 6 | ECC7RESULTSIZE | Selects ECC size for ECC 7 result register | RW | 0x0 |
| 0x0: ECCSIZE0 selected | ||||
| 0x1: ECCSIZE1 selected | ||||
| 5 | ECC6RESULTSIZE | Selects ECC size for ECC 6 result register | RW | 0x0 |
| 0x0: ECCSIZE0 selected | ||||
| 0x1: ECCSIZE1 selected | ||||
| 4 | ECC5RESULTSIZE | Selects ECC size for ECC 5 result register | RW | 0x0 |
| 0x0: ECCSIZE0 selected | ||||
| 0x1: ECCSIZE1 selected | ||||
| 3 | ECC4RESULTSIZE | Selects ECC size for ECC 4 result register | RW | 0x0 |
| 0x0: ECCSIZE0 selected | ||||
| 0x1: ECCSIZE1 selected | ||||
| 2 | ECC3RESULTSIZE | Selects ECC size for ECC 3 result register | RW | 0x0 |
| 0x0: ECCSIZE0 selected | ||||
| 0x1: ECCSIZE1 selected | ||||
| 1 | ECC2RESULTSIZE | Selects ECC size for ECC 2 result register | RW | 0x0 |
| 0x0: ECCSIZE0 selected | ||||
| 0x1: ECCSIZE1 selected | ||||
| 0 | ECC1RESULTSIZE | Selects ECC size for ECC 1 result register | RW | 0x0 |
| 0x0: ECCSIZE0 selected | ||||
| 0x1: ECCSIZE1 selected |
| Address Offset | 0x0000 0200 + (0x0000 0004 * (j - 1)) | Index | j = 1 to 9 |
| Physical Address | 0x5000 0200 + (0x0000 0004 * j) | Instance | GPMC |
| Description | ECC result register | ||
| 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 | P2048O | P1024O | P512O | P256O | P128O | P64O | P32O | P16O | P8O | P4O | P2O | P1O | RESERVED | P2048E | P1024E | P512E | P256E | P128E | P64E | P32E | P16E | P8E | P4E | P2E | P1E | ||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:28 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 27 | P2048O | Odd row parity bit 2048, only used for ECC computed on 512 bytes | R | 0x0 |
| 26 | P1024O | Odd row parity bit 1024 | R | 0x0 |
| 25 | P512O | Odd row parity bit 512 | R | 0x0 |
| 24 | P256O | Odd row parity bit 256 | R | 0x0 |
| 23 | P128O | Odd row parity bit 128 | R | 0x0 |
| 22 | P64O | Odd row parity bit 64 | R | 0x0 |
| 21 | P32O | Odd row parity bit 32 | R | 0x0 |
| 20 | P16O | Odd row parity bit 16 | R | 0x0 |
| 19 | P8O | Odd row parity bit 8 | R | 0x0 |
| 18 | P4O | Odd Column Parity bit 4 | R | 0x0 |
| 17 | P2O | Odd Column Parity bit 2 | R | 0x0 |
| 16 | P1O | Odd Column Parity bit 1 | R | 0x0 |
| 15:12 | RESERVED | Write 0s for future compatibility. Read returns 0s. | RW | 0x0 |
| 11 | P2048E | Even row parity bit 2048, only used for ECC computed on 512 bytes | R | 0x0 |
| 10 | P1024E | Even row parity bit 1024 | R | 0x0 |
| 9 | P512E | Even row parity bit 512 | R | 0x0 |
| 8 | P256E | Even row parity bit 256 | R | 0x0 |
| 7 | P128E | Even row parity bit 128 | R | 0x0 |
| 6 | P64E | Even row parity bit 64 | R | 0x0 |
| 5 | P32E | Even row parity bit 32 | R | 0x0 |
| 4 | P16E | Even row parity bit 16 | R | 0x0 |
| 3 | P8E | Even row parity bit 8 | R | 0x0 |
| 2 | P4E | Even column parity bit 4 | R | 0x0 |
| 1 | P2E | Even column parity bit 2 | R | 0x0 |
| 0 | P1E | Even column parity bit 1 | R | 0x0 |
| Address Offset | 0x0000 0240 + (0x0000 0010 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 0240 + (0x0000 0010 * i) | Instance | GPMC |
| Description | BCH ECC result (bits 0 to 31) | ||
| 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 |
| BCH_RESULT_0 | |||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:0 | BCH_RESULT_0 | BCH ECC result (bits 0 to 31) | RW | 0x00000000 |
| Address Offset | 0x0000 0244 + (0x0000 0010 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 0244 + (0x0000 0010 * i) | Instance | GPMC |
| Description | BCH ECC result (bits 32 to 63) | ||
| 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 |
| BCH_RESULT_1 | |||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:0 | BCH_RESULT_1 | BCH ECC result (bits 32 to 63) | RW | 0x00000000 |
| Address Offset | 0x0000 0248 + (0x0000 0010 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 0248 + (0x0000 0010 * i) | Instance | GPMC |
| Description | BCH ECC result (bits 64 to 95) | ||
| 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 |
| BCH_RESULT_2 | |||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:0 | BCH_RESULT_2 | BCH ECC result (bits 64 to 95) | RW | 0x00000000 |
| Address Offset | 0x0000 024C + (0x0000 0010 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 024C + (0x0000 0010 * i) | Instance | GPMC |
| Description | BCH ECC result (bits 96 to 127) | ||
| 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 |
| BCH_RESULT_3 | |||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:0 | BCH_RESULT_3 | BCH ECC result (bits 96 to 127) | RW | 0x00000000 |
| Address Offset | 0x0000 0300 + (0x0000 0010 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 0300 + (0x0000 0010 * i) | Instance | GPMC |
| Description | BCH ECC result (bits 128 to 159) | ||
| 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 |
| BCH_RESULT_4 | |||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:0 | BCH_RESULT_4 | BCH ECC result (bits 128 to 159) | RW | 0x00000000 |
| Address Offset | 0x0000 0304 + (0x0000 0010 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 0304 + (0x0000 0010 * i) | Instance | GPMC |
| Description | BCH ECC result (bits 160 to 191) | ||
| 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 |
| BCH_RESULT_5 | |||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:0 | BCH_RESULT_5 | BCH ECC result (bits 160 to 191) | RW | 0x00000000 |
| Address Offset | 0x0000 0308 + (0x0000 0010 * i) | Index | i = 0 to 7 |
| Physical Address | 0x5000 0308 + (0x0000 0010 * i) | Instance | GPMC |
| Description | BCH ECC result (bits 192 to 207) | ||
| 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 | BCH_RESULT_6 | ||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:16 | RESERVED | Write 0s for future compatibility. Read returns 0s. | R | 0x0000 |
| 15:0 | BCH_RESULT_6 | BCH ECC result (bits 192 to 207) | RW | 0x0000 |
| Address Offset | 0x0000 02D0 | ||
| Physical Address | 0x5000 02D0 | Instance | GPMC |
| Description | This register is used to directly pass data to the BCH ECC calculator without accessing the actual NAND flash interface. | ||
| 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 | BCH_DATA | ||||||||||||||||||||||||||||||
| Bits | Field Name | Description | Type | Reset |
|---|---|---|---|---|
| 31:16 | RESERVED | Write 0s for future compatibility. Read returns 0s. | R | 0x0000 |
| 15:0 | BCH_DATA | Data to be included in the BCH
calculation Only bits 0 to 7 are considered if the calculator is configured to use 8-bit data (GPMC_ECC_CONFIG[7] ECC16B = 0) | RW | 0x0000 |