mxc nand: Merge mtd and spl register definitions
This patches fixes the TODO to use same register definitions in mtd mxc_nand and nand_spl fsl nfc drivers. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Cc: Scott Wood <scottwood@freescale.com> Cc: Stefano Babic <sbabic@denx.de> Signed-off-by: Scott Wood <scottwood@freescale.com>
This commit is contained in:
committed by
Scott Wood
parent
9c790a748f
commit
80c8ab7b25
@@ -24,28 +24,25 @@
|
||||
#define __FSL_NFC_H
|
||||
|
||||
/*
|
||||
* TODO: Use same register defs for nand_spl mxc nand driver
|
||||
* and mtd mxc nand driver.
|
||||
* Register map and bit definitions for the Freescale NAND Flash Controller
|
||||
* present in various i.MX devices.
|
||||
*
|
||||
* Register map and bit definitions for the Freescale NAND Flash
|
||||
* Controller present in various i.MX devices.
|
||||
* MX31 and MX27 have version 1, which has:
|
||||
* 4 512-byte main buffers and
|
||||
* 4 16-byte spare buffers
|
||||
* to support up to 2K byte pagesize nand.
|
||||
* Reading or writing a 2K page requires 4 FDI/FDO cycles.
|
||||
*
|
||||
* MX31 and MX27 have version 1 which has
|
||||
* 4 512 byte main buffers and
|
||||
* 4 16 byte spare buffers
|
||||
* to support up to 2K byte pagesize nand.
|
||||
* Reading or writing a 2K page requires 4 FDI/FDO cycles.
|
||||
*
|
||||
* MX25 has version 1.1 which has
|
||||
* 8 512 byte main buffers and
|
||||
* 8 64 byte spare buffers
|
||||
* to support up to 4K byte pagesize nand.
|
||||
* Reading or writing a 2K or 4K page requires only 1 FDI/FDO cycle.
|
||||
* Also some of registers are moved and/or changed meaning as seen below.
|
||||
* MX25 and MX35 have version 1.1, which has:
|
||||
* 8 512-byte main buffers and
|
||||
* 8 64-byte spare buffers
|
||||
* to support up to 4K byte pagesize nand.
|
||||
* Reading or writing a 2K or 4K page requires only 1 FDI/FDO cycle.
|
||||
* Also some of registers are moved and/or changed meaning as seen below.
|
||||
*/
|
||||
#if defined(CONFIG_MX31) || defined(CONFIG_MX27)
|
||||
#if defined(CONFIG_MX27) || defined(CONFIG_MX31)
|
||||
#define MXC_NFC_V1
|
||||
#elif defined(CONFIG_MX25)
|
||||
#elif defined(CONFIG_MX25) || defined(CONFIG_MX35)
|
||||
#define MXC_NFC_V1_1
|
||||
#else
|
||||
#warning "MXC NFC version not defined"
|
||||
@@ -55,18 +52,20 @@
|
||||
#define NAND_MXC_NR_BUFS 4
|
||||
#define NAND_MXC_SPARE_BUF_SIZE 16
|
||||
#define NAND_MXC_REG_OFFSET 0xe00
|
||||
#define NAND_MXC_2K_MULTI_CYCLE 1
|
||||
#define NAND_MXC_2K_MULTI_CYCLE
|
||||
#define is_mxc_nfc_11() 0
|
||||
#elif defined(MXC_NFC_V1_1)
|
||||
#define NAND_MXC_NR_BUFS 8
|
||||
#define NAND_MXC_SPARE_BUF_SIZE 64
|
||||
#define NAND_MXC_REG_OFFSET 0x1e00
|
||||
#define is_mxc_nfc_11() 1
|
||||
#else
|
||||
#error "define CONFIG_NAND_MXC_VXXX to use the mxc spl_nand driver"
|
||||
#error "define CONFIG_NAND_MXC_VXXX to use the mxc nand driver"
|
||||
#endif
|
||||
|
||||
struct fsl_nfc_regs {
|
||||
u32 main_area[NAND_MXC_NR_BUFS][512/4];
|
||||
u32 spare_area[NAND_MXC_NR_BUFS][NAND_MXC_SPARE_BUF_SIZE/4];
|
||||
u8 main_area[NAND_MXC_NR_BUFS][0x200];
|
||||
u8 spare_area[NAND_MXC_NR_BUFS][NAND_MXC_SPARE_BUF_SIZE];
|
||||
/*
|
||||
* reserved size is offset of nfc registers
|
||||
* minus total main and spare sizes
|
||||
@@ -74,44 +73,44 @@ struct fsl_nfc_regs {
|
||||
u8 reserved1[NAND_MXC_REG_OFFSET
|
||||
- NAND_MXC_NR_BUFS * (512 + NAND_MXC_SPARE_BUF_SIZE)];
|
||||
#if defined(MXC_NFC_V1)
|
||||
u16 bufsiz;
|
||||
u16 buf_size;
|
||||
u16 reserved2;
|
||||
u16 buffer_address;
|
||||
u16 flash_add;
|
||||
u16 buf_addr;
|
||||
u16 flash_addr;
|
||||
u16 flash_cmd;
|
||||
u16 configuration;
|
||||
u16 config;
|
||||
u16 ecc_status_result;
|
||||
u16 ecc_rslt_main_area;
|
||||
u16 ecc_rslt_spare_area;
|
||||
u16 nf_wr_prot;
|
||||
u16 unlock_start_blk_add;
|
||||
u16 unlock_end_blk_add;
|
||||
u16 nand_flash_wr_pr_st;
|
||||
u16 nand_flash_config1;
|
||||
u16 nand_flash_config2;
|
||||
u16 rsltmain_area;
|
||||
u16 rsltspare_area;
|
||||
u16 wrprot;
|
||||
u16 unlockstart_blkaddr;
|
||||
u16 unlockend_blkaddr;
|
||||
u16 nf_wrprst;
|
||||
u16 config1;
|
||||
u16 config2;
|
||||
#elif defined(MXC_NFC_V1_1)
|
||||
u16 reserved2[2];
|
||||
u16 buffer_address;
|
||||
u16 flash_add;
|
||||
u16 buf_addr;
|
||||
u16 flash_addr;
|
||||
u16 flash_cmd;
|
||||
u16 configuration;
|
||||
u16 config;
|
||||
u16 ecc_status_result;
|
||||
u16 ecc_status_result2;
|
||||
u16 spare_area_size;
|
||||
u16 nf_wr_prot;
|
||||
u16 wrprot;
|
||||
u16 reserved3[2];
|
||||
u16 nand_flash_wr_pr_st;
|
||||
u16 nand_flash_config1;
|
||||
u16 nand_flash_config2;
|
||||
u16 nf_wrprst;
|
||||
u16 config1;
|
||||
u16 config2;
|
||||
u16 reserved4;
|
||||
u16 unlock_start_blk_add0;
|
||||
u16 unlock_end_blk_add0;
|
||||
u16 unlock_start_blk_add1;
|
||||
u16 unlock_end_blk_add1;
|
||||
u16 unlock_start_blk_add2;
|
||||
u16 unlock_end_blk_add2;
|
||||
u16 unlock_start_blk_add3;
|
||||
u16 unlock_end_blk_add3;
|
||||
u16 unlockstart_blkaddr;
|
||||
u16 unlockend_blkaddr;
|
||||
u16 unlockstart_blkaddr1;
|
||||
u16 unlockend_blkaddr1;
|
||||
u16 unlockstart_blkaddr2;
|
||||
u16 unlockend_blkaddr2;
|
||||
u16 unlockstart_blkaddr3;
|
||||
u16 unlockend_blkaddr3;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user