mtd: fsl_elbc_nand: fix jffs2 problem after NAND-flash image record in u-boot
Linux-MTD Mailing List
linux-mtd at lists.infradead.org
Fri Dec 3 11:59:05 EST 2010
Gitweb: http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=eeda667a29698b9a4d16dce8979afc6f512f3c42
Commit: eeda667a29698b9a4d16dce8979afc6f512f3c42
Parent: a7e93dcd9aacb3ef4acfcc4310577f3ae0741821
Author: Sergej.Stepanov at ids.de <Sergej.Stepanov at ids.de>
AuthorDate: Tue Nov 23 18:38:36 2010 +0100
Committer: David Woodhouse <David.Woodhouse at intel.com>
CommitDate: Fri Dec 3 16:34:24 2010 +0000
mtd: fsl_elbc_nand: fix jffs2 problem after NAND-flash image record in u-boot
This patch should fix the following problem:
1. the jffs2-image update in the u-boot was ok
2. first restart and first mount of the NAND-flash-partition was also ok
3. before the restart of controller there are no any activity on NAND-flash except of the jffs2_gcd_mtdX-process ...
4. BUT after the second restart the NAND-flash-partition could not be really used after the second mount,
dmesg filled with messages:
...
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x03ce0000: 0xc0ff instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x03d00000: 0xc0ff instead
....
Just for for info:
the behaviour observed on mpc8313-based board with the large-page NAND.
The only activity on NAND-flash was the garbage collector process, that looks for CLEANMARKER-nodes
As Scott said it was broken by commit 3ab8f2a2e7011c5e83363b42950757e46ef06824
Signed-off-by: Sergej Stepanov <Sergej.Stepanov at ids.de>
--
Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
---
drivers/mtd/nand/fsl_elbc_nand.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/mtd/nand/fsl_elbc_nand.c b/drivers/mtd/nand/fsl_elbc_nand.c
index c141b07..7a13d42 100644
--- a/drivers/mtd/nand/fsl_elbc_nand.c
+++ b/drivers/mtd/nand/fsl_elbc_nand.c
@@ -388,6 +388,8 @@ static void fsl_elbc_cmdfunc(struct mtd_info *mtd, unsigned int command,
"page_addr: 0x%x, column: 0x%x.\n",
page_addr, column);
+ elbc_fcm_ctrl->column = column;
+ elbc_fcm_ctrl->oob = 0;
elbc_fcm_ctrl->use_mdr = 1;
fcr = (NAND_CMD_STATUS << FCR_CMD1_SHIFT) |
More information about the linux-mtd-cvs
mailing list