diff mbox

[U-Boot] bug, nand, am33xx: nand->ecc.strength not set in board_nand_init()

Message ID 1370335952-14086-1-git-send-email-hs@denx.de
State Accepted
Delegated to: Scott Wood
Headers show

Commit Message

Heiko Schocher June 4, 2013, 8:52 a.m. UTC
commit dfe64e2c89731a3f9950d7acd8681b68df2bae03
Author: Sergey Lapin <slapin@ossfans.org>
Date:   Mon Jan 14 03:46:50 2013 +0000

    mtd: resync with Linux-3.7.1

Introduced runtime bug:

U-Boot 2013.04-00499-g46567df-dirty (Jun 04 2013 - 08:17:08)

I2C:   ready
DRAM:  512 MiB
WARNING: Caches not enabled
NAND:  BUG: failure at nand_base.c:3214/nand_scan_tail()!
BUG!
resetting ...

on boards using drivers/mtd/nand/omap_gpmc.c as in board_nand_init()
nand->ecc.strength is not set. Fix this!

Signed-off-by: Heiko Schocher <hs@denx.de>
Cc: Sergey Lapin <slapin@ossfans.org>
Cc: Scott Wood <scottwood@freescale.com>
Cc: Tom Rini <trini@ti.com>
---
 drivers/mtd/nand/omap_gpmc.c | 2 ++
 1 Datei geändert, 2 Zeilen hinzugefügt(+)

Comments

Scott Wood June 4, 2013, 4:48 p.m. UTC | #1
On 06/04/2013 03:52:32 AM, Heiko Schocher wrote:
> commit dfe64e2c89731a3f9950d7acd8681b68df2bae03
> Author: Sergey Lapin <slapin@ossfans.org>
> Date:   Mon Jan 14 03:46:50 2013 +0000
> 
>     mtd: resync with Linux-3.7.1
> 
> Introduced runtime bug:
> 
> U-Boot 2013.04-00499-g46567df-dirty (Jun 04 2013 - 08:17:08)
> 
> I2C:   ready
> DRAM:  512 MiB
> WARNING: Caches not enabled
> NAND:  BUG: failure at nand_base.c:3214/nand_scan_tail()!
> BUG!
> resetting ...
> 
> on boards using drivers/mtd/nand/omap_gpmc.c as in board_nand_init()
> nand->ecc.strength is not set. Fix this!

Thanks, applied to u-boot-nand-flash.  We did try to update all the  
existing drivers to do this.  Omap_gpmc did get updated, but it was  
incomplete, as unlike most drivers, it has two different places where  
this stuff gets initialized (the actual init, and the ecc switch  
command).

-Scott
diff mbox

Patch

diff --git a/drivers/mtd/nand/omap_gpmc.c b/drivers/mtd/nand/omap_gpmc.c
index d5f3248..5d08822 100644
--- a/drivers/mtd/nand/omap_gpmc.c
+++ b/drivers/mtd/nand/omap_gpmc.c
@@ -936,6 +936,7 @@  int board_nand_init(struct nand_chip *nand)
 	nand->ecc.layout = &hw_bch8_nand_oob;
 	nand->ecc.size = CONFIG_SYS_NAND_ECCSIZE;
 	nand->ecc.bytes = CONFIG_SYS_NAND_ECCBYTES;
+	nand->ecc.strength = 8;
 	nand->ecc.hwctl = omap_enable_ecc_bch;
 	nand->ecc.correct = omap_correct_data_bch;
 	nand->ecc.calculate = omap_calculate_ecc_bch;
@@ -954,6 +955,7 @@  int board_nand_init(struct nand_chip *nand)
 	nand->ecc.hwctl = omap_enable_hwecc;
 	nand->ecc.correct = omap_correct_data;
 	nand->ecc.calculate = omap_calculate_ecc;
+	nand->ecc.strength = 1;
 	omap_hwecc_init(nand);
 #endif
 #endif