SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
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 17-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 |