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

- 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(-)
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} ; " \

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

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

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

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

- since commit 418396e212b59bf907dbccad997ff50f7eb61b16 nand write.raw can take the number of page to be written as an argument. nand_update_full is passing the size (in bytes) to nand write.raw. This value was previously ignored but now breaks the write. - this patch updates the default environment of these boards to provide a pagecount instead of a size to nand write.raw. - 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(-)
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} ; " \

On 12/11/2012 03:36:21 PM, Eric Bénard wrote:
- since commit 418396e212b59bf907dbccad997ff50f7eb61b16 nand write.raw
can take the number of page to be written as an argument. nand_update_full is passing the size (in bytes) to nand write.raw. This value was previously ignored but now breaks the write.
- this patch updates the default environment of these boards to
provide a pagecount instead of a size to nand write.raw.
- 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, can you ack this?
There is still a change in behavior in that before 418396e212b59bf907dbccad997ff50f7eb61b16 it only wrote one page (since that's all the write.raw command ever did) but with this patch it will write ${fcb_sz} pages. I assume the new behavior is correct?
-Scott

Dear Scott Wood,
On 12/11/2012 03:36:21 PM, Eric Bénard wrote:
- since commit 418396e212b59bf907dbccad997ff50f7eb61b16 nand write.raw
can take the number of page to be written as an argument. nand_update_full is passing the size (in bytes) to nand write.raw. This value was previously ignored but now breaks the write.
- this patch updates the default environment of these boards to
provide a pagecount instead of a size to nand write.raw.
- 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, can you ack this?
There is still a change in behavior in that before 418396e212b59bf907dbccad997ff50f7eb61b16 it only wrote one page (since that's all the write.raw command ever did) but with this patch it will write ${fcb_sz} pages. I assume the new behavior is correct?
Yes, it's correct
Acked-by: Marek Vasut marex@denx.de
Best regards, Marek Vasut
participants (3)
-
Eric Bénard
-
Marek Vasut
-
Scott Wood