| 1 | From 25ebef8c87221774de01d1f1de4fb615fcfc6b54 Mon Sep 17 00:00:00 2001 |
| 2 | From: Jason Jin <Jason.jin@freescale.com> |
| 3 | Date: Thu, 4 Aug 2011 09:59:47 +0800 |
| 4 | Subject: [PATCH 34/52] Enable the NFC driver for soft_ecc. |
| 5 | |
| 6 | If enabled YAFFS2 support, soft ecc should be used for the |
| 7 | nand flash driver. |
| 8 | |
| 9 | Signed-off-by: Jason Jin <Jason.jin@freescale.com> |
| 10 | --- |
| 11 | drivers/mtd/nand/Kconfig | 6 ++++++ |
| 12 | drivers/mtd/nand/fsl_nfc.c | 12 +++++++++--- |
| 13 | 2 files changed, 15 insertions(+), 3 deletions(-) |
| 14 | |
| 15 | --- a/drivers/mtd/nand/Kconfig |
| 16 | +++ b/drivers/mtd/nand/Kconfig |
| 17 | @@ -481,6 +481,12 @@ config MTD_NAND_FSL_NFC |
| 18 | Enables support for NAND Flash chips wired onto Freescale PowerPC |
| 19 | processor localbus with User-Programmable Machine support. |
| 20 | |
| 21 | +config MTD_NAND_FSL_NFC_SWECC |
| 22 | + bool "Software ECC" |
| 23 | + depends on MTD_NAND_FSL_NFC |
| 24 | + help |
| 25 | + Use software ECC. |
| 26 | + |
| 27 | config MTD_NAND_MXC |
| 28 | tristate "MXC NAND support" |
| 29 | depends on ARCH_MX2 || ARCH_MX25 || ARCH_MX3 || ARCH_MX51 |
| 30 | --- a/drivers/mtd/nand/fsl_nfc.c |
| 31 | +++ b/drivers/mtd/nand/fsl_nfc.c |
| 32 | @@ -403,9 +403,15 @@ fsl_nfc_command(struct mtd_info *mtd, un |
| 33 | if (page != -1) |
| 34 | prv->page = page; |
| 35 | |
| 36 | - nfc_set_field(mtd, NFC_FLASH_CONFIG, |
| 37 | - CONFIG_ECC_MODE_MASK, |
| 38 | - CONFIG_ECC_MODE_SHIFT, ECC_45_BYTE); |
| 39 | + if(hardware_ecc) |
| 40 | + nfc_set_field(mtd, NFC_FLASH_CONFIG, |
| 41 | + CONFIG_ECC_MODE_MASK, |
| 42 | + CONFIG_ECC_MODE_SHIFT, ECC_45_BYTE); |
| 43 | + else |
| 44 | + /* set ECC BY_PASS */ |
| 45 | + nfc_set_field(mtd, NFC_FLASH_CONFIG, |
| 46 | + CONFIG_ECC_MODE_MASK, |
| 47 | + CONFIG_ECC_MODE_SHIFT, ECC_BYPASS); |
| 48 | |
| 49 | if (!(page%0x40)) { |
| 50 | nfc_set_field(mtd, NFC_FLASH_CONFIG, |
| 51 | |