diff mbox

Fixing the garbage collector problem after NAND-flash image record in u-boot

Message ID 4206182445660643B9AEB8D4E55BBD0A106A0AA938@HERMES2 (mailing list archive)
State Superseded
Headers show

Commit Message

Sergej Stepanov Nov. 23, 2010, 3:10 p.m. UTC
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.
The only activity on NAND-flash was the garbage collector process, that looks for CLEANMARKER-nodes

Signed-off-by: Sergej Stepanov <Sergej.Stepanov@ids.de>
Cc: Rolf Riehle <Rolf.Riehle@ids.de>
--

Comments

Scott Wood Nov. 23, 2010, 4:50 p.m. UTC | #1
On Tue, 23 Nov 2010 16:10:54 +0100
<Sergej.Stepanov@ids.de> wrote:

> 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.
> The only activity on NAND-flash was the garbage collector process, that looks for CLEANMARKER-nodes
> 
> Signed-off-by: Sergej Stepanov <Sergej.Stepanov@ids.de>
> Cc: Rolf Riehle <Rolf.Riehle@ids.de>
> --

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

> 
> diff --git a/drivers/mtd/nand/fsl_elbc_nand.c b/drivers/mtd/nand/fsl_elbc_nand.c
> index c141b07..775c2f5 100644
> --- a/drivers/mtd/nand/fsl_elbc_nand.c
> +++ b/drivers/mtd/nand/fsl_elbc_nand.c
> @@ -388,6 +388,7 @@ 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->use_mdr = 1;

This was broken by commit 3ab8f2a2e7011c5e83363b42950757e46ef06824

That commit also removed the setting of ctrl->oob to 0, which should
also be restored.

-Scott
Sergej Stepanov Nov. 23, 2010, 5:29 p.m. UTC | #2
Sorry Scott, i resend the email also to linuxppc-dev

Am Dienstag, den 23.11.2010, 11:18 -0600 schrieb Scott Wood:

> 
> It only makes a difference on small-page NAND.
Our board has a large page NAND

> 
> > I'll resend the patch.
> 
> Please include linux-mtd@lists.infradead.org and David Woodhouse
> <dwmw2@infradead.org> -- that's who would be applying it.
ok

Sergej.
diff mbox

Patch

diff --git a/drivers/mtd/nand/fsl_elbc_nand.c b/drivers/mtd/nand/fsl_elbc_nand.c
index c141b07..775c2f5 100644
--- a/drivers/mtd/nand/fsl_elbc_nand.c
+++ b/drivers/mtd/nand/fsl_elbc_nand.c
@@ -388,6 +388,7 @@  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->use_mdr = 1;
 
 		fcr = (NAND_CMD_STATUS   << FCR_CMD1_SHIFT) |