Skip to contentSkip to conversation

nand_spl: nand_boot.c: Init nand_chip.options to 0

PATCH New Stefan Roese 2 participants 4 messages May 4, 2011 – May 13, 2011

lore
Share & tools
lore
#0 lore raw

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.

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 +1 -0
index cefeb91..62303aa 100644
@@ -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
#1 lore raw

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 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.

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
index cefeb91..62303aa 100644

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

#2 lore raw

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_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.

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

#3 lore raw

PATCH 1/1 nand_spl: nand_boot.c: Init nand_chip.options to 0

In reply to Stefan Roese
Quoted 11 lines · Stefan Roese

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.

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