diff options
author | Alan Tull <r80115@freescale.com> | 2008-04-02 15:11:17 -0500 |
---|---|---|
committer | Daniel Schaeffer <daniel.schaeffer@timesys.com> | 2008-08-25 15:20:57 -0400 |
commit | edff13cb4f5656b5201ecacc19fb42c91a12f962 (patch) | |
tree | e5e68d18e8e36c46e18e14a0eaff549c2e17dfa0 | |
parent | fd2ea4e9d46b70ceb8c713a618e136c7a739bd89 (diff) |
ENGR00071073 remove patch file in previous commit
The previous commit ENGR00058762 added a patch file at the base
of the kernel tree. This commit removes it.
Signed-off-by: Alan Tull <r80115@freescale.com>
-rw-r--r-- | 0001-ENGR58762-implimentaion-nand-driver-on-mx35-platform.patch | 506 |
1 files changed, 0 insertions, 506 deletions
diff --git a/0001-ENGR58762-implimentaion-nand-driver-on-mx35-platform.patch b/0001-ENGR58762-implimentaion-nand-driver-on-mx35-platform.patch deleted file mode 100644 index 6dc35e3d7879..000000000000 --- a/0001-ENGR58762-implimentaion-nand-driver-on-mx35-platform.patch +++ /dev/null @@ -1,506 +0,0 @@ -From 48330b00843f522dbb33531b096019aa9156b5f5 Mon Sep 17 00:00:00 2001 -From: Jason Liu <r64343@freescale.com> -Date: Wed, 26 Mar 2008 22:42:42 -0500 -Subject: [PATCH] ENGR58762 implimentaion nand driver on mx35 platform - -Implimentaion nand driver on mx35 platform - -Signed-off-by: Jason Liu <r64343@freescale.com> ---- - arch/arm/configs/imx35_3stack_defconfig | 96 +++++++++++++++++- - arch/arm/mach-mx35/Kconfig | 16 +++ - arch/arm/mach-mx35/mx35_3stack.c | 11 +- - drivers/mtd/nand/mxc_nd2.c | 7 +- - drivers/mtd/nand/mxc_nd2.h | 163 ++++++++++++++++++++++++------- - include/asm-arm/arch-mxc/mx35.h | 8 +- - 6 files changed, 251 insertions(+), 50 deletions(-) - -diff --git a/arch/arm/configs/imx35_3stack_defconfig b/arch/arm/configs/imx35_3stack_defconfig -index b700ff8..5abb4a2 100644 ---- a/arch/arm/configs/imx35_3stack_defconfig -+++ b/arch/arm/configs/imx35_3stack_defconfig -@@ -1,6 +1,7 @@ - # - # Automatically generated make config: don't edit - # Linux kernel version: 2.6.24 -+# Wed Mar 26 22:52:11 2008 - # - CONFIG_ARM=y - CONFIG_SYS_SUPPORTS_APM_EMULATION=y -@@ -161,6 +162,7 @@ CONFIG_ARCH_MX35=y - CONFIG_I2C_MXC_SELECT1=y - # CONFIG_I2C_MXC_SELECT2 is not set - CONFIG_MXC_SDMA_API=y -+CONFIG_ARCH_MXC_HAS_NFC_V2=y - # CONFIG_I2C_MXC_SELECT3 is not set - - # -@@ -169,6 +171,7 @@ CONFIG_MXC_SDMA_API=y - CONFIG_MACH_MX35_3DS=y - # CONFIG_MACH_MX35EVB is not set - # CONFIG_MX35_DOZE_DURING_IDLE is not set -+CONFIG_ARCH_MXC_HAS_NFC_V2_1=y - - # - # Device options -@@ -384,7 +387,92 @@ CONFIG_FW_LOADER=m - # CONFIG_SYS_HYPERVISOR is not set - CONFIG_CONNECTOR=y - CONFIG_PROC_EVENTS=y --# CONFIG_MTD is not set -+CONFIG_MTD=y -+# CONFIG_MTD_DEBUG is not set -+# CONFIG_MTD_CONCAT is not set -+CONFIG_MTD_PARTITIONS=y -+# CONFIG_MTD_REDBOOT_PARTS is not set -+CONFIG_MTD_CMDLINE_PARTS=y -+# CONFIG_MTD_AFS_PARTS is not set -+ -+# -+# User Modules And Translation Layers -+# -+CONFIG_MTD_CHAR=y -+CONFIG_MTD_BLKDEVS=y -+CONFIG_MTD_BLOCK=y -+# CONFIG_FTL is not set -+# CONFIG_NFTL is not set -+# CONFIG_INFTL is not set -+# CONFIG_RFD_FTL is not set -+# CONFIG_SSFDC is not set -+# CONFIG_MTD_OOPS is not set -+ -+# -+# RAM/ROM/Flash chip drivers -+# -+CONFIG_MTD_CFI=y -+# CONFIG_MTD_JEDECPROBE is not set -+CONFIG_MTD_GEN_PROBE=y -+# CONFIG_MTD_CFI_ADV_OPTIONS is not set -+CONFIG_MTD_MAP_BANK_WIDTH_1=y -+CONFIG_MTD_MAP_BANK_WIDTH_2=y -+CONFIG_MTD_MAP_BANK_WIDTH_4=y -+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -+CONFIG_MTD_CFI_I1=y -+CONFIG_MTD_CFI_I2=y -+# CONFIG_MTD_CFI_I4 is not set -+# CONFIG_MTD_CFI_I8 is not set -+# CONFIG_MTD_CFI_INTELEXT is not set -+# CONFIG_MTD_CFI_AMDSTD is not set -+# CONFIG_MTD_CFI_STAA is not set -+# CONFIG_MTD_RAM is not set -+# CONFIG_MTD_ROM is not set -+# CONFIG_MTD_ABSENT is not set -+ -+# -+# Mapping drivers for chip access -+# -+# CONFIG_MTD_COMPLEX_MAPPINGS is not set -+# CONFIG_MTD_PHYSMAP is not set -+# CONFIG_MTD_ARM_INTEGRATOR is not set -+# CONFIG_MTD_PLATRAM is not set -+CONFIG_MTD_MXC=y -+ -+# -+# Self-contained MTD device drivers -+# -+# CONFIG_MTD_SLRAM is not set -+# CONFIG_MTD_PHRAM is not set -+# CONFIG_MTD_MTDRAM is not set -+# CONFIG_MTD_BLOCK2MTD is not set -+ -+# -+# Disk-On-Chip Device Drivers -+# -+# CONFIG_MTD_DOC2000 is not set -+# CONFIG_MTD_DOC2001 is not set -+# CONFIG_MTD_DOC2001PLUS is not set -+CONFIG_MTD_NAND=y -+# CONFIG_MTD_NAND_VERIFY_WRITE is not set -+# CONFIG_MTD_NAND_ECC_SMC is not set -+# CONFIG_MTD_NAND_MUSEUM_IDS is not set -+CONFIG_MTD_NAND_IDS=y -+# CONFIG_MTD_NAND_DISKONCHIP is not set -+# CONFIG_MTD_NAND_NANDSIM is not set -+CONFIG_MTD_NAND_MXC_V2=y -+# CONFIG_MTD_NAND_MXC_SWECC is not set -+# CONFIG_MTD_NAND_MXC_FORCE_CE is not set -+# CONFIG_MXC_NAND_LOW_LEVEL_ERASE is not set -+# CONFIG_MTD_NAND_PLATFORM is not set -+# CONFIG_MTD_ONENAND is not set -+ -+# -+# UBI - Unsorted block images -+# -+# CONFIG_MTD_UBI is not set - - # - # Voltage and Current regulators -@@ -400,7 +488,6 @@ CONFIG_BLK_DEV=y - CONFIG_BLK_DEV_LOOP=y - # CONFIG_BLK_DEV_CRYPTOLOOP is not set - # CONFIG_BLK_DEV_NBD is not set --# CONFIG_BLK_DEV_UB is not set - # CONFIG_BLK_DEV_RAM is not set - # CONFIG_CDROM_PKTCDVD is not set - # CONFIG_ATA_OVER_ETH is not set -@@ -572,6 +659,7 @@ CONFIG_INPUT=y - # - # CONFIG_VT is not set - # CONFIG_SERIAL_NONSTANDARD is not set -+# CONFIG_FM_SI4702 is not set - # CONFIG_MXC_MU is not set - # CONFIG_MXC_SUPER_GEM is not set - -@@ -727,11 +815,11 @@ CONFIG_USB_ARCH_HAS_HCD=y - # CONFIG_OTG is not set - - # --# -+# - # - - # --# -+# - # - # CONFIG_MMC is not set - # CONFIG_NEW_LEDS is not set -diff --git a/arch/arm/mach-mx35/Kconfig b/arch/arm/mach-mx35/Kconfig -index c8e574e..9373ae5 100644 ---- a/arch/arm/mach-mx35/Kconfig -+++ b/arch/arm/mach-mx35/Kconfig -@@ -29,6 +29,22 @@ config MXC_SDMA_API - This selects the Freescale MXC SDMA API. - If unsure, say N. - -+config ARCH_MXC_HAS_NFC_V2 -+ bool "MXC NFC Hardware Version 2" -+ depends on ARCH_MX35 -+ default y -+ help -+ This selects the Freescale MXC Nand Flash Controller Hardware Version 3 -+ If unsure, say N. -+ -+config ARCH_MXC_HAS_NFC_V2_1 -+ bool "MXC NFC Hardware Version 2.1" -+ depends on ARCH_MXC_HAS_NFC_V2 -+ default y -+ help -+ This selects the Freescale MXC Nand Flash Controller Hardware Version 2.1 -+ If unsure, say N. -+ - menu "Device options" - - config I2C_MXC_SELECT1 -diff --git a/arch/arm/mach-mx35/mx35_3stack.c b/arch/arm/mach-mx35/mx35_3stack.c -index 7c9c61f..d6eed2d 100644 ---- a/arch/arm/mach-mx35/mx35_3stack.c -+++ b/arch/arm/mach-mx35/mx35_3stack.c -@@ -134,17 +134,18 @@ static void mxc_init_nor_mtd(void) - - /* MTD NAND flash */ - --#if defined(CONFIG_MTD_NAND_MXC) || defined(CONFIG_MTD_NAND_MXC_MODULE) -+#if defined(CONFIG_MTD_NAND_MXC) || defined(CONFIG_MTD_NAND_MXC_MODULE) \ -+ || defined(CONFIG_MTD_NAND_MXC_V2) || defined(CONFIG_MTD_NAND_MXC_V2_MODULE) - - static struct mtd_partition mxc_nand_partitions[] = { - { -- .name = "IPL-SPL", -+ .name = "nand.bootloader", - .offset = 0, -- .size = 256 * 1024}, -+ .size = 1024 * 1024}, - { - .name = "nand.kernel", - .offset = MTDPART_OFS_APPEND, -- .size = 4 * 1024 * 1024}, -+ .size = 5 * 1024 * 1024}, - { - .name = "nand.rootfs", - .offset = MTDPART_OFS_APPEND, -@@ -166,7 +167,7 @@ static struct flash_platform_data mxc_nand_data = { - }; - - static struct platform_device mxc_nand_mtd_device = { -- .name = "mxc_nand_flash", -+ .name = "mxc_nandv2_flash", - .id = 0, - .dev = { - .release = mxc_nop_release, -diff --git a/drivers/mtd/nand/mxc_nd2.c b/drivers/mtd/nand/mxc_nd2.c -index 51b4ec5..c58b7fa 100644 ---- a/drivers/mtd/nand/mxc_nd2.c -+++ b/drivers/mtd/nand/mxc_nd2.c -@@ -910,7 +910,8 @@ static int mxc_nand_read_page(struct mtd_info *mtd, struct nand_chip *chip, - } - - nfc_memcpy((void *)buf, (void *)MAIN_AREA0, mtd->writesize); -- -+ copy_spare(mtd, (void *)chip->oob_poi, (void *)SPARE_AREA0, -+ mtd->oobsize, true); - return 0; - } - -@@ -919,6 +920,8 @@ static void mxc_nand_write_page(struct mtd_info *mtd, struct nand_chip *chip, - const uint8_t * buf) - { - memcpy((void *)MAIN_AREA0, buf, mtd->writesize); -+ copy_spare(mtd, (char *)chip->oob_poi, (char *)SPARE_AREA0, -+ mtd->oobsize, false); - } - - /* Define some generic bad / good block scan pattern which are used -@@ -1022,7 +1025,7 @@ static int __init mxcnd_probe(struct platform_device *pdev) - nfc_ip_base = IO_ADDRESS(NFC_BASE_ADDR); - - /* Resetting NFC */ -- raw_write(NFC_RST, REG_NFC_RST); -+ raw_write((raw_read(REG_NFC_RST) | NFC_RST), REG_NFC_RST); - - /* Allocate memory for MTD device structure and private data */ - mxc_nand_data = kzalloc(sizeof(struct mxc_mtd_s), GFP_KERNEL); -diff --git a/drivers/mtd/nand/mxc_nd2.h b/drivers/mtd/nand/mxc_nd2.h -index 5bf05dc..b5bb406 100644 ---- a/drivers/mtd/nand/mxc_nd2.h -+++ b/drivers/mtd/nand/mxc_nd2.h -@@ -137,7 +137,7 @@ - #define IS_4BIT_ECC 1 - #define SET_SPAS(v) - #define SET_ECC_MODE(v) --#define SET_NFMS(v) (NFMS |= (v)); -+#define SET_NFMS(v) (NFMS |= (v)) - - #define WRITE_NFC_IP_REG(val,reg) \ - raw_write((raw_read(REG_NFC_OPS_STAT) & ~NFC_OPS_STAT), REG_NFC_OPS_STAT) -@@ -197,10 +197,10 @@ - #ifdef CONFIG_ARCH_MXC_HAS_NFC_V3_1 - #define NFC_ECC_MODE_4 (1 << 6) - #define NFC_ECC_MODE_8 ~(1 << 6) --#define NFC_SPAS_16 16 --#define NFC_SPAS_64 64 --#define NFC_SPAS_128 128 --#define NFC_SPAS_218 218 -+#define NFC_SPAS_16 8 -+#define NFC_SPAS_64 32 -+#define NFC_SPAS_128 64 -+#define NFC_SPAS_218 109 - #define NFC_IPC_CREQ (1 << 0) - #define NFC_IPC_ACK (1 << 1) - #endif -@@ -257,44 +257,125 @@ - /* - * Addresses for NFC registers - */ --#define NFC_BUF_SIZE (nfc_ip_base + 0xE00) --#define NFC_BUF_ADDR (nfc_ip_base + 0xE04) --#define NFC_FLASH_ADDR (nfc_ip_base + 0xE06) --#define NFC_FLASH_CMD (nfc_ip_base + 0xE08) --#define NFC_CONFIG (nfc_ip_base + 0xE0A) --#define NFC_ECC_STATUS_RESULT (nfc_ip_base + 0xE0C) --#define NFC_RSLTMAIN_AREA (nfc_ip_base + 0xE0E) --#define NFC_RSLTSPARE_AREA (nfc_ip_base + 0xE10) --#define NFC_WRPROT (nfc_ip_base + 0xE12) --#define NFC_UNLOCKSTART_BLKADDR (nfc_ip_base + 0xE14) --#define NFC_UNLOCKEND_BLKADDR (nfc_ip_base + 0xE16) --#define NFC_NF_WRPRST (nfc_ip_base + 0xE18) --#define NFC_CONFIG1 (nfc_ip_base + 0xE1A) --#define NFC_CONFIG2 (nfc_ip_base + 0xE1C) -+#ifdef CONFIG_ARCH_MXC_HAS_NFC_V2_1 -+#define NFC_REG_BASE (nfc_ip_base + 0x1000) -+#else -+#define NFC_REG_BASE nfc_ip_base -+#endif -+#define NFC_BUF_SIZE (NFC_REG_BASE + 0xE00) -+#define NFC_BUF_ADDR (NFC_REG_BASE + 0xE04) -+#define NFC_FLASH_ADDR (NFC_REG_BASE + 0xE06) -+#define NFC_FLASH_CMD (NFC_REG_BASE + 0xE08) -+#define NFC_CONFIG (NFC_REG_BASE + 0xE0A) -+#ifdef CONFIG_ARCH_MXC_HAS_NFC_V2_1 -+#define NFC_ECC_STATUS_RESULT (NFC_REG_BASE + 0xE0C) -+#define NFC_ECC_STATUS_RESULT_1 (NFC_REG_BASE + 0xE0C) -+#define NFC_ECC_STATUS_RESULT_2 (NFC_REG_BASE + 0xE0E) -+#define NFC_SPAS (NFC_REG_BASE + 0xE10) -+#else -+#define NFC_ECC_STATUS_RESULT (NFC_REG_BASE + 0xE0C) -+#define NFC_RSLTMAIN_AREA (NFC_REG_BASE + 0xE0E) -+#define NFC_RSLTSPARE_AREA (NFC_REG_BASE + 0xE10) -+#endif -+#define NFC_WRPROT (NFC_REG_BASE + 0xE12) -+#ifdef CONFIG_ARCH_MXC_HAS_NFC_V2_1 -+#define NFC_UNLOCKSTART_BLKADDR (NFC_REG_BASE + 0xE20) -+#define NFC_UNLOCKEND_BLKADDR (NFC_REG_BASE + 0xE22) -+#define NFC_UNLOCKSTART_BLKADDR1 (NFC_REG_BASE + 0xE24) -+#define NFC_UNLOCKEND_BLKADDR1 (NFC_REG_BASE + 0xE26) -+#define NFC_UNLOCKSTART_BLKADDR2 (NFC_REG_BASE + 0xE28) -+#define NFC_UNLOCKEND_BLKADDR2 (NFC_REG_BASE + 0xE2A) -+#define NFC_UNLOCKSTART_BLKADDR3 (NFC_REG_BASE + 0xE2C) -+#define NFC_UNLOCKEND_BLKADDR3 (NFC_REG_BASE + 0xE2E) -+#else -+#define NFC_UNLOCKSTART_BLKADDR (NFC_REG_BASE + 0xE14) -+#define NFC_UNLOCKEND_BLKADDR (NFC_REG_BASE + 0xE16) -+#endif -+#define NFC_NF_WRPRST (NFC_REG_BASE + 0xE18) -+#define NFC_CONFIG1 (NFC_REG_BASE + 0xE1A) -+#define NFC_CONFIG2 (NFC_REG_BASE + 0xE1C) - - /*! - * Addresses for NFC RAM BUFFER Main area 0 - */ --#define MAIN_AREA0 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x000) --#define MAIN_AREA1 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x200) --#define MAIN_AREA2 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x400) --#define MAIN_AREA3 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x600) -+#define MAIN_AREA0 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x000) -+#define MAIN_AREA1 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x200) -+#define MAIN_AREA2 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x400) -+#define MAIN_AREA3 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x600) -+#ifdef CONFIG_ARCH_MXC_HAS_NFC_V2_1 -+#define MAIN_AREA4 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x800) -+#define MAIN_AREA5 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0xA00) -+#define MAIN_AREA6 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0xC00) -+#define MAIN_AREA7 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0xE00) -+#endif - - /*! - * Addresses for NFC SPARE BUFFER Spare area 0 - */ --#define SPARE_AREA0 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x800) --#define SPARE_AREA1 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x810) --#define SPARE_AREA2 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x820) --#define SPARE_AREA3 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x830) --#define SPARE_LEN 16 --#define SPARE_COUNT 4 --#define SPARE_SIZE (SPARE_LEN * SPARE_COUNT) -- --#define IS_4BIT_ECC 1 -+#ifdef CONFIG_ARCH_MXC_HAS_NFC_V2_1 -+#define SPARE_AREA0 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x1000) -+#define SPARE_AREA1 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x1040) -+#define SPARE_AREA2 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x1080) -+#define SPARE_AREA3 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x10C0) -+#define SPARE_AREA4 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x1100) -+#define SPARE_AREA5 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x1140) -+#define SPARE_AREA6 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x1180) -+#define SPARE_AREA7 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x11C0) -+#define SPARE_LEN 64 -+#define SPARE_COUNT 8 -+#else -+#define SPARE_AREA0 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x800) -+#define SPARE_AREA1 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x810) -+#define SPARE_AREA2 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x820) -+#define SPARE_AREA3 (volatile u16 *)IO_ADDRESS(NFC_BASE_ADDR + 0x830) -+#define SPARE_LEN 16 -+#define SPARE_COUNT 4 -+#endif -+#define SPARE_SIZE (SPARE_LEN * SPARE_COUNT) -+ -+#ifdef CONFIG_ARCH_MXC_HAS_NFC_V2_1 -+#define REG_NFC_ECC_MODE NFC_CONFIG1 -+#define SPAS_SHIFT (0) -+#define REG_NFC_SPAS NFC_SPAS -+#define SPAS_MASK (0xFF00) -+#define IS_4BIT_ECC \ -+ ((raw_read(REG_NFC_ECC_MODE) & NFC_ECC_MODE_4) >> 0) -+ -+ -+#define SET_SPAS(v) \ -+ raw_write(((raw_read(REG_NFC_SPAS) & SPAS_MASK) | ((v<<SPAS_SHIFT))), REG_NFC_SPAS) -+ -+#define SET_ECC_MODE(v ) \ -+do { \ -+ if ((v) == NFC_SPAS_218) { \ -+ raw_write((raw_read(REG_NFC_ECC_MODE) & NFC_ECC_MODE_8), REG_NFC_ECC_MODE); \ -+ }else{ \ -+ raw_write((raw_read(REG_NFC_ECC_MODE) | NFC_ECC_MODE_4), REG_NFC_ECC_MODE); \ -+ } \ -+} while (0) -+ -+#define GET_ECC_STATUS() __raw_readl(REG_NFC_ECC_STATUS_RESULT); -+#define SET_NFMS(v) \ -+do { \ -+ (NFMS |= (v)); \ -+ if (((v) & (1 << NFMS_NF_PG_SZ))) { \ -+ if (IS_2K_PAGE_NAND) { \ -+ SET_SPAS(NFC_SPAS_64); \ -+ } else if (IS_4K_PAGE_NAND) { \ -+ SET_SPAS(NFC_SPAS_128); \ -+ } else { \ -+ SET_SPAS(NFC_SPAS_16); \ -+ } \ -+ SET_ECC_MODE(NFC_SPAS_128); \ -+ } \ -+} while (0) -+#else -+#define IS_4BIT_ECC (1) - #define SET_SPAS(v) - #define SET_ECC_MODE(v) --#define SET_NFMS(v) (NFMS |= (v)); -+#define GET_ECC_STATUS() raw_read(REG_NFC_ECC_STATUS_RESULT); -+#define SET_NFMS(v) (NFMS |= (v)) -+#endif - - #define WRITE_NFC_IP_REG(val,reg) \ - raw_write((raw_read(REG_NFC_OPS_STAT) & ~NFC_OPS_STAT), REG_NFC_OPS_STAT) -@@ -330,6 +411,14 @@ - #define NFC_FLASH_ADDR_SHIFT 0 - #define NFC_UNLOCK_END_ADDR_SHIFT 0 - -+#ifdef CONFIG_ARCH_MXC_HAS_NFC_V2_1 -+#define NFC_ECC_MODE_4 (1<<0) -+#define NFC_ECC_MODE_8 ~(1<<0) -+#define NFC_SPAS_16 8 -+#define NFC_SPAS_64 32 -+#define NFC_SPAS_128 64 -+#define NFC_SPAS_218 109 -+#endif - /* NFC Register Mapping */ - #define REG_NFC_OPS_STAT NFC_CONFIG2 - #define REG_NFC_INTRRUPT NFC_CONFIG1 -@@ -365,7 +454,10 @@ - /* NULL Definitions */ - #define ACK_OPS - #define NFC_SET_RBA(val,buf_id) -- -+#ifdef CONFIG_ARCH_MXC_HAS_NFC_V2_1 -+#define READ_PAGE() send_read_page(0) -+#define PROG_PAGE() send_prog_page(0) -+#else - #define READ_PAGE() \ - do { \ - send_read_page(0); \ -@@ -381,9 +473,10 @@ do { \ - send_prog_page(2); \ - send_prog_page(3); \ - } while (0) -- -+#endif - #define CHECK_NFC_RB 1 - - #endif - -+ - #endif /* __MXC_ND2_H__ */ -diff --git a/include/asm-arm/arch-mxc/mx35.h b/include/asm-arm/arch-mxc/mx35.h -index 266b83c..8894c0b 100644 ---- a/include/asm-arm/arch-mxc/mx35.h -+++ b/include/asm-arm/arch-mxc/mx35.h -@@ -421,9 +421,9 @@ - /*! - * NFMS bit in RCSR register for pagesize of nandflash - */ --#define NFMS (*((volatile u32 *)IO_ADDRESS(CCM_BASE_ADDR+0xc))) --#define NFMS_BIT 30 --#define NFMS_NF_DWIDTH 31 --#define NFMS_NF_PG_SZ 30 -+#define NFMS (*((volatile u32 *)IO_ADDRESS(CCM_BASE_ADDR+0x18))) -+#define NFMS_BIT 8 -+#define NFMS_NF_DWIDTH 14 -+#define NFMS_NF_PG_SZ 8 - - #endif /* __ASM_ARCH_MXC_MX35_H__ */ --- -1.5.3.1 - |