nand_spl: nand_boot.c: Init nand_chip.options to 0
PATCH 1/1 nand_spl: nand_boot.c: Init nand_chip.options to 0
Patch 65a9db7b [nand_spl: Fix large page nand_command()] broke nand booting on canyonlands. "options" has to be initialized to
0. If not, boards might have the NAND_BUSWIDTH_16 bit set, resulting in wrong offset calculation.
--- nand_spl/nand_boot.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
nand_spl/nand_boot.c +1 -0
@@ -232,6 +232,7 @@ void nand_boot(void) nand_info.priv = &nand_chip; nand_chip.IO_ADDR_R = nand_chip.IO_ADDR_W = (void __iomem *)CONFIG_SYS_NAND_BASE ; nand_chip.dev_ready =NULL ;/* preset to NULL */ + nand_chip.options =0 ;board_nand_init (&nand_chip);if (nand_chip.select_chip)
Signature · 1 line
1.7.5
PATCH 1/1 nand_spl: nand_boot.c: Init nand_chip.options to 0
Quoted 17 lines · On Wed, 4 May 2011 11:44:44 +0200 Stefan Roese <[email protected]> wrote:
Patch
65a9db7b[nand_spl: Fix large pagenand_command()] broke nand booting on canyonlands. "options" has to be initialized to
0. If not, boards might have theNAND_BUSWIDTH_16bit set, resulting in wrong offset calculation.Signed-off-by Stefan Roese <[email protected]>Cc Scott Wood <[email protected]>Cc Alex Waterman <[email protected]>--- nand_spl/nand_boot.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)nand_spl/nand_boot.c +0
-0
nand_spl/nand_boot.c void nand_boot(void) · line 238
Quoted 7 lines
nand_spl/nand_boot.c +1
-0@@ -232,6 +232,7 @@ void nand_boot(void) nand_info.priv = &nand_chip; nand_chip.IO_ADDR_R = nand_chip.IO_ADDR_W = (void __iomem *)CONFIG_SYS_NAND_BASE ; nand_chip.dev_ready =NULL ;/* preset to NULL */ + nand_chip.options =0 ;board_nand_init (&nand_chip);if (nand_chip.select_chip)
Maybe nand_chip should be made static so it goes in the BSS? This would avoid any other such problems, without adding any extra code to zero things out.
-Scott
PATCH 1/1 nand_spl: nand_boot.c: Init nand_chip.options to 0
Quoted 8 lines · On Wednesday 04 May 2011 19:30:29 Scott Wood wrote:
nand_spl/nand_boot.c void nand_boot(void) · line 238
Quoted 4 lines
nand_spl/nand_boot.c +1
-0+ nand_chip.options =0 ;board_nand_init (&nand_chip);if (nand_chip.select_chip)Maybe
nand_chipshould be made static so it goes in the BSS? This would avoid any other such problems, without adding any extra code to zero things out.
Yes, good idea. I tried it but it resulted in a bigger image instead of a smaller one. I need to investigate further to see why this is the case...
Cheers,
Stefan
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de
PATCH 1/1 nand_spl: nand_boot.c: Init nand_chip.options to 0
In reply to Stefan RoeseQuoted 11 lines · Stefan Roese
Patch
65a9db7b[nand_spl: Fix large pagenand_command()] broke nand booting on canyonlands. "options" has to be initialized to
0. If not, boards might have theNAND_BUSWIDTH_16bit set, resulting in wrong offset calculation.Signed-off-by Stefan Roese <[email protected]>Cc Scott Wood <[email protected]>Cc Alex Waterman <[email protected]>--- nand_spl/nand_boot.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
Applied to u-boot-nand-flash
-Scott