Root/target/linux/coldfire/patches/034-Enable-the-NFC-driver-for-soft_ecc.patch

1From 25ebef8c87221774de01d1f1de4fb615fcfc6b54 Mon Sep 17 00:00:00 2001
2From: Jason Jin <Jason.jin@freescale.com>
3Date: Thu, 4 Aug 2011 09:59:47 +0800
4Subject: [PATCH 34/52] Enable the NFC driver for soft_ecc.
5
6If enabled YAFFS2 support, soft ecc should be used for the
7nand flash driver.
8
9Signed-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

Archive Download this file



interactive