SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
This section gives a generic configuration for parameters related to the NAND memory connected to the GPMC.
Subprocess Name | Register/Bit Field | Value |
---|---|---|
Set the NAND protocol. | GPMC_CONFIG1_i[11:10] DEVICETYPE | 0x2 |
Set a device size. | GPMC_CONFIG1_i[13:12] DEVICESIZE | x |
Set the address and data multiplexing protocol to non-multiplexed attached device. | GPMC_CONFIG1_i[9] MUXADDDATA | 0x0 |
Select a timing signals latencies factor. | GPMC_CONFIG1_i[4] TIMEPARAGRANULARITY | x |
Set a synchronous or asynchronous mode and a single or multiple access for read and write operations. | See Section 15.4.5.5, Set Memory Access. | x |
Subprocess Name | Register/Bit Field | Value |
---|---|---|
Select the chip-select base address. | GPMC_CONFIG7_i[5:0] BASEADDRESS | x |
Select the chip-select minimum granularity (16MiB). | GPMC_CONFIG7_i[11:8] MASKADDRESS | x |
Subprocess Name | Register/Bit Field | Value |
---|---|---|
Configure adequate timing parameters in asynchronous modes | See Section 15.4.5.6, GPMC Timing Parameters. |
Subprocess Name | Register/Bit Field | Value |
---|---|---|
Select the ECC result register where the first ECC computation is stored (applies only to Hamming). | GPMC_ECC_CONTROL[3:0] ECCPOINTER | x (2) |
Clear all ECC result registers. | GPMC_ECC_CONTROL[8] ECCCLEAR | Write 1 to clear. |
Define ECCSIZE0 and ECCSIZE1. | GPMC_ECC_SIZE_CONFIG[19:12] ECCSIZE0 and [29:22] ECCSIZE1 | x (1) |
Select the size of each of the 9 result registers (size specified by ECCSIZE0 or ECCSIZE1). | GPMC_ECC_SIZE_CONFIG[j-1] ECCjRESULTSIZE where j = 1 to 9 | x |
Select the chip-select where ECC is computed. | GPMC_ECC_CONFIG[3:1] ECCCS | x |
Select the Hamming code or BCH code ECC algorithm in use. | GPMC_ECC_CONFIG[16] ECCALGORITHM | x |
Select word size for ECC calculation. | GPMC_ECC_CONFIG[7] ECC16B | x |
If the BCH code is used, Set an error correction capability and Select a number of sectors to process. | GPMC_ECC_CONFIG[13:12] ECCBCHTSEL and GPMC_ECC_CONFIG[6:4] ECCTOPSECTOR | x |
Enable the ECC computation. | GPMC_ECC_CONFIG[0] ECCENABLE | 0x1 |
Subprocess Name | Register/Bit Field | Value |
---|---|---|
Disable the engine before configuration. | GPMC_PREFETCH_CONTROL[0] STARTENGINE | 0x0 |
Select the chip-select associated with a NAND device where the prefetch engine is active. | GPMC_PREFETCH_CONFIG1[26:24] ENGINECSSELECTOR | x |
Select access direction through prefetch engine, read or write. | GPMC_PREFETCH_CONFIG1[0] ACCESSMODE | x |
Select the threshold used to issue a DMA request. | GPMC_PREFETCH_CONFIG1[14:8] FIFOTHRESHOLD | x |
Select DMA synchronized mode or software manual mode. | GPMC_PREFETCH_CONFIG1[2] DMAMODE | x |
Select if the engine immediately starts accessing the memory upon STARTENGINE assertion or if hardware synchronization based on a WAIT signal is used. | GPMC_PREFETCH_CONFIG1[3] SYNCHROMODE | x |
Select which wait pin edge detector should start the engine in synchronized mode. | GPMC_PREFETCH_CONFIG1[5:4] WAITPINSELECTOR | x |
Enter a number of clock cycles removed to timing parameters (for all back-to-back accesses to the NAND flash except the first one). | GPMC_PREFETCH_CONFIG1[30:28] CYCLEOPTIMIZATION | x |
Enable the prefetch postwrite engine. | GPMC_PREFETCH_CONFIG1[7] ENABLEENGINE | 0x1 |
Select the number of bytes to be read or written by the engine to the selected chip-select. | GPMC_PREFETCH_CONFIG2[13:0] TRANSFERCOUNT | x |
Start the prefetch engine. | GPMC_PREFETCH_CONTROL[0] STARTENGINE | 0x1 |
Subprocess Name | Register/Bit Field | Value |
---|---|---|
Selects when the engine starts the access to chip-select. | GPMC_PREFETCH_CONFIG1[3] SYNCHROMODE | x |
Select which wait pin edge detector should start the engine in synchronized mode. | GPMC_PREFETCH_CONFIG1[5:4] WAITPINSELECTOR | x |
Subprocess Name | Register/Bit Field | Value |
---|---|---|
When all parameters are configured, enable the chip-select. | GPMC_CONFIG7_i[6] CSVALID | x |