ECC Control Register | 
| #define  | ECC_CR_OFF   0x00000000 | 
|   | Control register offset.  
  | 
| #define  | ECC_CR   (ECC_BASE + ECC_CR_OFF) | 
|   | Control register address.  
  | 
| #define  | ECC_RST   0x00000001 | 
|   | Reset ECC parity registers.  
  | 
| #define  | ECC_SRST   0x00000002 | 
|   | Software reset.  
  | 
ECC Mode Register | 
| #define  | ECC_MR_OFF   0x00000004 | 
|   | Mode register offset.  
  | 
| #define  | ECC_MR   (ECC_BASE + ECC_MR_OFF) | 
|   | Mode register address.  
  | 
| #define  | ECC_PAGESIZE   0x00000003 | 
|   | NAND flash page size mask.  
  | 
| #define  | ECC_PAGESIZE_528   0x00000000 | 
|   | NAND flash page size is 528 words.  
  | 
| #define  | ECC_PAGESIZE_1056   0x00000001 | 
|   | NAND flash page size is 1056 words.  
  | 
| #define  | ECC_PAGESIZE_2112   0x00000002 | 
|   | NAND flash page size is 2112 words.  
  | 
| #define  | ECC_PAGESIZE_4224   0x00000003 | 
|   | NAND flash page size is 4224 words.  
  | 
| #define  | ECC_TYPECORREC   0x00000030 | 
|   | Type of correction mask.  
  | 
| #define  | ECC_TYPECORREC_0   0x00000000 | 
|   | 1 bit correction.  
  | 
| #define  | ECC_TYPECORREC_1   0x00000010 | 
|   | 1 bit correction for 256 data bytes.  
  | 
| #define  | ECC_TYPECORREC_2   0x00000020 | 
|   | 1 bit correction for 512 data bytes.  
  | 
ECC Status Registers | 
| #define  | ECC_SR1_OFF   0x00000008 | 
|   | Status register 1 offset.  
  | 
| #define  | ECC_SR1   (ECC_BASE + ECC_SR1_OFF) | 
|   | Status register 1 address.  
  | 
| #define  | ECC_SR2_OFF   0x00000014 | 
|   | Status register 2 offset.  
  | 
| #define  | ECC_SR2   (ECC_BASE + ECC_SR2_OFF) | 
|   | Status register 2 address.  
  | 
| #define  | ECC_RECERR(i)   (1 << (i * 4)) | 
|   | Recoverable error.  
  | 
| #define  | ECC_ECCERR(i)   (2 << (i * 4)) | 
|   | Single bit error.  
  | 
| #define  | ECC_MULERR(i)   (4 << (i * 4)) | 
|   | Multiple errors.  
  | 
ECC Parity Registers | 
| #define  | ECC_PR0_OFF   0x0000000C | 
|   | Parity register 0 offset.  
  | 
| #define  | ECC_PR0   (ECC_BASE + ECC_PR0_OFF) | 
|   | Parity register 0 address.  
  | 
| #define  | ECC_PR1_OFF   0x00000010 | 
|   | Parity register 1 offset.  
  | 
| #define  | ECC_PR1   (ECC_BASE + ECC_PR1_OFF) | 
|   | Parity register 1 address.  
  | 
| #define  | ECC_PR(i)   (ECC_BASE + 0x18 + (((i) - 2) * 4)) | 
|   | Parity registers 2 to 15 address.  
  | 
| #define  | ECC_BITADDR0   0x0000000F | 
|   | Corrupted bit offset mask.  
  | 
| #define  | ECC_BITADDR0_LSB   0 | 
|   | Corrupted bit offset LSB.  
  | 
| #define  | ECC_BITADDR   0x00000007 | 
|   | Corrupted bit offset mask, 8-bit word.  
  | 
| #define  | ECC_BITADDR_LSB   0 | 
|   | Corrupted bit offset LSB, 8-bit word.  
  | 
| #define  | ECC_WORDADDR0   0x0000FFF0 | 
|   | Corrupted bit word offset mask, type 1.  
  | 
| #define  | ECC_WORDADDR0_LSB   4 | 
|   | Corrupted bit word offset LSB, type 1.  
  | 
| #define  | ECC_WORDADDR   0x0000FFF8 | 
|   | Corrupted bit word offset mask.  
  | 
| #define  | ECC_WORDADDR_LSB   3 | 
|   | Corrupted bit word offset LSB.  
  | 
| #define  | ECC_NPARITY1   0x0000FFFF | 
|   | Parity 1 mask.  
  | 
| #define  | ECC_NPARITY1_LSB   0 | 
|   | Parity 1 LSB.  
  | 
| #define  | ECC_NPARITY   0x00FFF000 | 
|   | Parity mask.  
  | 
| #define  | ECC_NPARITY_LSB   12 | 
|   | Parity LSB.  
  | 
ECC Version Register | 
| #define  | ECC_VR_OFF   0x000000FC | 
| #define  | ECC_VR   (ECC_BASE + ECC_VR_OFF) |