Set the fsl elbc ECCM according the settings in bootloader.

Submitted by Jason Jin on Dec. 8, 2008, 3:41 a.m.

Details

Message ID 1228707663-26995-1-git-send-email-Jason.jin@freescale.com
State Accepted, archived
Commit 03ed107805aff09ae13e50a86ea929f12ff74eb7
Headers show

Commit Message

Jason Jin Dec. 8, 2008, 3:41 a.m.
The ECCM maybe set in bootloader, Get ECCM settings from the bootloader,
can avoid the image written by bootloader cannot read out by kernel.

But the limitation of doing it this way is that, it could break large page
NAND if it is written with NAND disabled in u-boot and read with NAND
enabled, or vice versa.

Signed-off-by: Jason Jin <Jason.jin@freescale.com>
---
 drivers/mtd/nand/fsl_elbc_nand.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

Comments

Scott Wood Dec. 8, 2008, 4:39 p.m.
On Mon, Dec 08, 2008 at 11:41:03AM +0800, Jason Jin wrote:
> The ECCM maybe set in bootloader, Get ECCM settings from the bootloader,
> can avoid the image written by bootloader cannot read out by kernel.
> 
> But the limitation of doing it this way is that, it could break large page
> NAND if it is written with NAND disabled in u-boot and read with NAND
> enabled, or vice versa.
> 
> Signed-off-by: Jason Jin <Jason.jin@freescale.com>

Acked-by: Scott Wood <scottwood@freescale.com>

Please send to David Woodhouse and the linux-mtd list.

-Scott

Patch hide | download patch | download mbox

diff --git a/drivers/mtd/nand/fsl_elbc_nand.c b/drivers/mtd/nand/fsl_elbc_nand.c
index 4aa5bd6..65929db 100644
--- a/drivers/mtd/nand/fsl_elbc_nand.c
+++ b/drivers/mtd/nand/fsl_elbc_nand.c
@@ -777,7 +777,9 @@  static int fsl_elbc_chip_init(struct fsl_elbc_mtd *priv)
 	/* Fill in fsl_elbc_mtd structure */
 	priv->mtd.priv = chip;
 	priv->mtd.owner = THIS_MODULE;
-	priv->fmr = 0; /* rest filled in later */
+
+	/* Set the ECCM according to the settings in bootloader.*/
+	priv->fmr = in_be32(&lbc->fmr) & FMR_ECCM;
 
 	/* fill in nand_chip structure */
 	/* set up function call table */