Patchwork [U-Boot] m28evk/mx28evk: fix nand_update_full

login
register
mail settings
Submitter Eric Benard
Date Dec. 10, 2012, 4:41 p.m.
Message ID <1355157719-10409-1-git-send-email-eric@eukrea.com>
Download mbox | patch
Permalink /patch/204966/
State Superseded
Delegated to: Scott Wood
Headers show

Comments

Eric Benard - Dec. 10, 2012, 4:41 p.m.
- commit 418396e212b59bf907dbccad997ff50f7eb61b16 chenged the behaviour
of nand write.raw which now takes a pagecount as a parameter and no more
the size to be written so update the default environment of these boards
to fix the problem.
- tested on a mx28evk with a 4k page NAND and on a custom board with a
2k page NAND.

Signed-off-by: Eric Bénard <eric@eukrea.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
---
 include/configs/m28evk.h  |    2 +-
 include/configs/mx28evk.h |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
Marek Vasut - Dec. 10, 2012, 4:49 p.m.
Dear Eric Bénard,

> - commit 418396e212b59bf907dbccad997ff50f7eb61b16 chenged the behaviour
> of nand write.raw which now takes a pagecount as a parameter and no more
> the size to be written so update the default environment of these boards
> to fix the problem.
> - tested on a mx28evk with a 4k page NAND and on a custom board with a
> 2k page NAND.
> 
> Signed-off-by: Eric Bénard <eric@eukrea.com>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>

Thanks, Ccing Stefano and Scott.

Best regards,
Marek Vasut
Scott Wood - Dec. 10, 2012, 10:59 p.m.
On 12/10/2012 10:41:59 AM, Eric Bénard wrote:
> - commit 418396e212b59bf907dbccad997ff50f7eb61b16 chenged the  
> behaviour
> of nand write.raw which now takes a pagecount as a parameter and no  
> more
> the size to be written so update the default environment of these  
> boards
> to fix the problem.

It never really took the size to be written -- the size was implicitly  
one page before.  It looks like there may have been a bug in the old  
code, where common code expected a size to be there anyway, even though  
it was ignored other than for error checking.

-Scott
Eric Benard - Dec. 11, 2012, 8:50 a.m.
Hi Scott,

Le Mon, 10 Dec 2012 16:59:23 -0600,
Scott Wood <scottwood@freescale.com> a écrit :

> On 12/10/2012 10:41:59 AM, Eric Bénard wrote:
> > - commit 418396e212b59bf907dbccad997ff50f7eb61b16 chenged the  
> > behaviour
> > of nand write.raw which now takes a pagecount as a parameter and no  
> > more
> > the size to be written so update the default environment of these  
> > boards
> > to fix the problem.
> 
> It never really took the size to be written -- the size was implicitly  
> one page before.  It looks like there may have been a bug in the old  
> code, where common code expected a size to be there anyway, even though  
> it was ignored other than for error checking.
> 
true, before the size was forced to one page :
rwsize = nand->writesize + nand->oobsize;
now it's rwsize = pagecount * (nand->writesize + nand->oobsize);
so the size parameter in this script was ignored and now leads to a
wrong rwsize calculation.

Do you want me to rephrase the commit log or will you take it as is ?

Eric
Scott Wood - Dec. 11, 2012, 5:10 p.m.
On 12/11/2012 02:50:37 AM, Eric Bénard wrote:
> Hi Scott,
> 
> Le Mon, 10 Dec 2012 16:59:23 -0600,
> Scott Wood <scottwood@freescale.com> a écrit :
> 
> > On 12/10/2012 10:41:59 AM, Eric Bénard wrote:
> > > - commit 418396e212b59bf907dbccad997ff50f7eb61b16 chenged the
> > > behaviour
> > > of nand write.raw which now takes a pagecount as a parameter and  
> no
> > > more
> > > the size to be written so update the default environment of these
> > > boards
> > > to fix the problem.
> >
> > It never really took the size to be written -- the size was  
> implicitly
> > one page before.  It looks like there may have been a bug in the old
> > code, where common code expected a size to be there anyway, even  
> though
> > it was ignored other than for error checking.
> >
> true, before the size was forced to one page :
> rwsize = nand->writesize + nand->oobsize;
> now it's rwsize = pagecount * (nand->writesize + nand->oobsize);
> so the size parameter in this script was ignored and now leads to a
> wrong rwsize calculation.
> 
> Do you want me to rephrase the commit log or will you take it as is ?

Please reword it.

-Scott

Patch

diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h
index b49ec8c..3f37e84 100644
--- a/include/configs/m28evk.h
+++ b/include/configs/m28evk.h
@@ -297,7 +297,7 @@ 
 		"if tftp ${update_nand_full_filename} ; then "		\
 		"run update_nand_get_fcb_size ; "			\
 		"nand scrub -y 0x0 ${filesize} ; "			\
-		"nand write.raw ${loadaddr} 0x0 ${update_nand_fcb} ; "	\
+		"nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; "	\
 		"setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \
 		"setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \
 		"nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \
diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h
index 0511cd1..d474a92 100644
--- a/include/configs/mx28evk.h
+++ b/include/configs/mx28evk.h
@@ -264,7 +264,7 @@ 
 		"if tftp ${update_nand_full_filename} ; then " \
 		"run update_nand_get_fcb_size ; " \
 		"nand scrub -y 0x0 ${filesize} ; " \
-		"nand write.raw ${loadaddr} 0x0 ${update_nand_fcb} ; " \
+		"nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; " \
 		"setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \
 		"setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \
 		"nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \