* [U-Boot] [PATCH 1/3] tools: mxsboot: Staticize functions
@ 2013-08-27 21:32 Marek Vasut
2013-08-27 21:32 ` [U-Boot] [PATCH 2/3] tools: mxsboot: Mark the FCB pages as valid Marek Vasut
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Marek Vasut @ 2013-08-27 21:32 UTC (permalink / raw)
To: u-boot
Make remaining non-static functions static and the same for vars.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
---
tools/mxsboot.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tools/mxsboot.c b/tools/mxsboot.c
index 3d9cc10..1060cbf 100644
--- a/tools/mxsboot.c
+++ b/tools/mxsboot.c
@@ -28,14 +28,14 @@
*
* TWEAK this if you have different kind of NAND chip.
*/
-uint32_t nand_writesize = 2048;
-uint32_t nand_oobsize = 64;
-uint32_t nand_erasesize = 128 * 1024;
+static uint32_t nand_writesize = 2048;
+static uint32_t nand_oobsize = 64;
+static uint32_t nand_erasesize = 128 * 1024;
/*
* Sector on which the SigmaTel boot partition (0x53) starts.
*/
-uint32_t sd_sector = 2048;
+static uint32_t sd_sector = 2048;
/*
* Each of the U-Boot bootstreams is at maximum 1MB big.
@@ -434,7 +434,7 @@ static int mx28_nand_write_firmware(struct mx28_nand_fcb *fcb, int infd,
return 0;
}
-void usage(void)
+static void usage(void)
{
printf(
"Usage: mxsboot [ops] <type> <infile> <outfile>\n"
@@ -575,7 +575,7 @@ err0:
return ret;
}
-int parse_ops(int argc, char **argv)
+static int parse_ops(int argc, char **argv)
{
int i;
int tmp;
--
1.7.10.4
^ permalink raw reply related [flat|nested] 12+ messages in thread* [U-Boot] [PATCH 2/3] tools: mxsboot: Mark the FCB pages as valid
2013-08-27 21:32 [U-Boot] [PATCH 1/3] tools: mxsboot: Staticize functions Marek Vasut
@ 2013-08-27 21:32 ` Marek Vasut
2013-09-10 17:13 ` Stefano Babic
2013-08-27 21:32 ` [U-Boot] [PATCH 3/3] ARM: mxs: Fix NAND FCB flashing Marek Vasut
2013-08-31 13:32 ` [U-Boot] [PATCH 1/3] tools: mxsboot: Staticize functions Stefano Babic
2 siblings, 1 reply; 12+ messages in thread
From: Marek Vasut @ 2013-08-27 21:32 UTC (permalink / raw)
To: u-boot
Without this marker, Linux will complain that the NAND pages with
FCB are invalid.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
---
tools/mxsboot.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/tools/mxsboot.c b/tools/mxsboot.c
index 1060cbf..90b2173 100644
--- a/tools/mxsboot.c
+++ b/tools/mxsboot.c
@@ -379,7 +379,7 @@ static uint8_t *mx28_nand_fcb_block(struct mx28_nand_fcb *fcb)
return block;
}
-static int mx28_nand_write_fcb(struct mx28_nand_fcb *fcb, char *buf)
+static int mx28_nand_write_fcb(struct mx28_nand_fcb *fcb, uint8_t *buf)
{
uint32_t offset;
uint8_t *fcbblock;
@@ -393,13 +393,15 @@ static int mx28_nand_write_fcb(struct mx28_nand_fcb *fcb, char *buf)
for (i = 0; i < STRIDE_PAGES * STRIDE_COUNT; i += STRIDE_PAGES) {
offset = i * nand_writesize;
memcpy(buf + offset, fcbblock, nand_writesize + nand_oobsize);
+ /* Mark the NAND page is OK. */
+ buf[offset + nand_writesize] = 0xff;
}
free(fcbblock);
return ret;
}
-static int mx28_nand_write_dbbt(struct mx28_nand_dbbt *dbbt, char *buf)
+static int mx28_nand_write_dbbt(struct mx28_nand_dbbt *dbbt, uint8_t *buf)
{
uint32_t offset;
int i = STRIDE_PAGES * STRIDE_COUNT;
@@ -413,7 +415,7 @@ static int mx28_nand_write_dbbt(struct mx28_nand_dbbt *dbbt, char *buf)
}
static int mx28_nand_write_firmware(struct mx28_nand_fcb *fcb, int infd,
- char *buf)
+ uint8_t *buf)
{
int ret;
off_t size;
@@ -462,7 +464,7 @@ static int mx28_create_nand_image(int infd, int outfd)
struct mx28_nand_fcb *fcb;
struct mx28_nand_dbbt *dbbt;
int ret = -1;
- char *buf;
+ uint8_t *buf;
int size;
ssize_t wr_size;
--
1.7.10.4
^ permalink raw reply related [flat|nested] 12+ messages in thread* [U-Boot] [PATCH 2/3] tools: mxsboot: Mark the FCB pages as valid
2013-08-27 21:32 ` [U-Boot] [PATCH 2/3] tools: mxsboot: Mark the FCB pages as valid Marek Vasut
@ 2013-09-10 17:13 ` Stefano Babic
2013-09-10 21:33 ` Marek Vasut
0 siblings, 1 reply; 12+ messages in thread
From: Stefano Babic @ 2013-09-10 17:13 UTC (permalink / raw)
To: u-boot
On 27/08/2013 23:32, Marek Vasut wrote:
> Without this marker, Linux will complain that the NAND pages with
> FCB are invalid.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
Applied to u-boot-imx, thanks !
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 2/3] tools: mxsboot: Mark the FCB pages as valid
2013-09-10 17:13 ` Stefano Babic
@ 2013-09-10 21:33 ` Marek Vasut
2013-09-15 16:20 ` Fabio Estevam
0 siblings, 1 reply; 12+ messages in thread
From: Marek Vasut @ 2013-09-10 21:33 UTC (permalink / raw)
To: u-boot
Dear Stefano Babic,
> On 27/08/2013 23:32, Marek Vasut wrote:
> > Without this marker, Linux will complain that the NAND pages with
> > FCB are invalid.
> >
> > Signed-off-by: Marek Vasut <marex@denx.de>
> > Cc: Fabio Estevam <fabio.estevam@freescale.com>
> > Cc: Stefano Babic <sbabic@denx.de>
> > ---
>
> Applied to u-boot-imx, thanks !
Fabio, can you confirm this does not break MX28EVK please ?
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 2/3] tools: mxsboot: Mark the FCB pages as valid
2013-09-10 21:33 ` Marek Vasut
@ 2013-09-15 16:20 ` Fabio Estevam
2013-09-15 16:44 ` Marek Vasut
0 siblings, 1 reply; 12+ messages in thread
From: Fabio Estevam @ 2013-09-15 16:20 UTC (permalink / raw)
To: u-boot
Hi Marek,
On Tue, Sep 10, 2013 at 6:33 PM, Marek Vasut <marex@denx.de> wrote:
> Dear Stefano Babic,
>
>> On 27/08/2013 23:32, Marek Vasut wrote:
>> > Without this marker, Linux will complain that the NAND pages with
>> > FCB are invalid.
>> >
>> > Signed-off-by: Marek Vasut <marex@denx.de>
>> > Cc: Fabio Estevam <fabio.estevam@freescale.com>
>> > Cc: Stefano Babic <sbabic@denx.de>
>> > ---
>>
>> Applied to u-boot-imx, thanks !
>
> Fabio, can you confirm this does not break MX28EVK please ?
I am currently without the NAND flash populated on my mx28evk.
Maybe Hector could help testing it?
Regards,
Fabio Estevam
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 2/3] tools: mxsboot: Mark the FCB pages as valid
2013-09-15 16:20 ` Fabio Estevam
@ 2013-09-15 16:44 ` Marek Vasut
0 siblings, 0 replies; 12+ messages in thread
From: Marek Vasut @ 2013-09-15 16:44 UTC (permalink / raw)
To: u-boot
Dear Fabio Estevam,
> Hi Marek,
>
> On Tue, Sep 10, 2013 at 6:33 PM, Marek Vasut <marex@denx.de> wrote:
> > Dear Stefano Babic,
> >
> >> On 27/08/2013 23:32, Marek Vasut wrote:
> >> > Without this marker, Linux will complain that the NAND pages with
> >> > FCB are invalid.
> >> >
> >> > Signed-off-by: Marek Vasut <marex@denx.de>
> >> > Cc: Fabio Estevam <fabio.estevam@freescale.com>
> >> > Cc: Stefano Babic <sbabic@denx.de>
> >> > ---
> >>
> >> Applied to u-boot-imx, thanks !
> >
> > Fabio, can you confirm this does not break MX28EVK please ?
>
> I am currently without the NAND flash populated on my mx28evk.
>
> Maybe Hector could help testing it?
Either way WFM, but I am still not fully confident in this patchset (yet).
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 3/3] ARM: mxs: Fix NAND FCB flashing
2013-08-27 21:32 [U-Boot] [PATCH 1/3] tools: mxsboot: Staticize functions Marek Vasut
2013-08-27 21:32 ` [U-Boot] [PATCH 2/3] tools: mxsboot: Mark the FCB pages as valid Marek Vasut
@ 2013-08-27 21:32 ` Marek Vasut
2013-08-27 21:49 ` [U-Boot] [PATCH 3/3 V2] " Marek Vasut
2013-08-31 13:32 ` [U-Boot] [PATCH 1/3] tools: mxsboot: Staticize functions Stefano Babic
2 siblings, 1 reply; 12+ messages in thread
From: Marek Vasut @ 2013-08-27 21:32 UTC (permalink / raw)
To: u-boot
Fix the method of flashing FCB blocks into NAND. The new env
writes all four FCB blocks and also does not scrub such a big
part of the NAND. This fixed complains about busted NAND blocks
in Linux.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
---
include/configs/m28evk.h | 22 ++++++++++++++++++++--
include/configs/mx28evk.h | 22 ++++++++++++++++++++--
2 files changed, 40 insertions(+), 4 deletions(-)
diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h
index eba8759..8a0587c 100644
--- a/include/configs/m28evk.h
+++ b/include/configs/m28evk.h
@@ -170,11 +170,29 @@
"nand info ; " \
"setexpr fcb_sz ${update_nand_stride} * ${update_nand_count};" \
"setexpr update_nand_fcb ${fcb_sz} * ${nand_writesize}\0" \
+ "update_nand_write_fcb=" \
+ "setenv i ${update_nand_count} ; " \
+ "setenv update_nand_offset 0x0 ; " \
+ "setexpr update_nand_step " \
+ "${update_nand_stride} * ${nand_writesize} ; " \
+ "while test ${i} -gt 0 ; do " \
+ "echo ${update_nand_offset} ; " \
+ "nand scrub -y ${update_nand_offset} " \
+ "${nand_erasesize} ; " \
+ "nand write.raw ${loadaddr} " \
+ "${update_nand_offset} 0x1 ; " \
+ "setexpr i ${i} - 1 ; " \
+ "setexpr update_nand_offset " \
+ "${update_nand_offset} + " \
+ "${update_nand_step} ; " \
+ "done ; " \
+ "setenv i ; " \
+ "setenv update_nand_offset ; " \
+ "setenv update_nand_step\0" \
"update_nand_full=" /* Update FCB, DBBT and FW */ \
"if tftp ${update_nand_full_filename} ; then " \
"run update_nand_get_fcb_size ; " \
- "nand scrub -y 0x0 ${filesize} ; " \
- "nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; " \
+ "run update_nand_write_fcb ; " \
"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 07f88ca..b0ae031 100644
--- a/include/configs/mx28evk.h
+++ b/include/configs/mx28evk.h
@@ -172,11 +172,29 @@
"nand info ; " \
"setexpr fcb_sz ${update_nand_stride} * ${update_nand_count};" \
"setexpr update_nand_fcb ${fcb_sz} * ${nand_writesize}\0" \
+ "update_nand_write_fcb=" \
+ "setenv i ${update_nand_count} ; " \
+ "setenv update_nand_offset 0x0 ; " \
+ "setexpr update_nand_step " \
+ "${update_nand_stride} * ${nand_writesize} ; " \
+ "while test ${i} -gt 0 ; do " \
+ "echo ${update_nand_offset} ; " \
+ "nand scrub -y ${update_nand_offset} " \
+ "${nand_erasesize} ; " \
+ "nand write.raw ${loadaddr} " \
+ "${update_nand_offset} 0x1 ; " \
+ "setexpr i ${i} - 1 ; " \
+ "setexpr update_nand_offset " \
+ "${update_nand_offset} + " \
+ "${update_nand_step} ; " \
+ "done ; " \
+ "setenv i ; " \
+ "setenv update_nand_offset ; " \
+ "setenv update_nand_step\0" \
"update_nand_full=" /* Update FCB, DBBT and FW */ \
"if tftp ${update_nand_full_filename} ; then " \
"run update_nand_get_fcb_size ; " \
- "nand scrub -y 0x0 ${filesize} ; " \
- "nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; " \
+ "run update_nand_write_fcb ; " \
"setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \
"setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \
"nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \
--
1.7.10.4
^ permalink raw reply related [flat|nested] 12+ messages in thread* [U-Boot] [PATCH 3/3 V2] ARM: mxs: Fix NAND FCB flashing
2013-08-27 21:32 ` [U-Boot] [PATCH 3/3] ARM: mxs: Fix NAND FCB flashing Marek Vasut
@ 2013-08-27 21:49 ` Marek Vasut
2013-08-28 8:40 ` Marek Vasut
2014-05-21 14:08 ` jkrause
0 siblings, 2 replies; 12+ messages in thread
From: Marek Vasut @ 2013-08-27 21:49 UTC (permalink / raw)
To: u-boot
Fix the method of flashing FCB blocks into NAND. The new env
writes all four FCB blocks and also does not scrub such a big
part of the NAND. This fixed complains about busted NAND blocks
in Linux.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
---
include/configs/m28evk.h | 23 +++++++++++++++++++++--
include/configs/mx28evk.h | 23 +++++++++++++++++++++--
2 files changed, 42 insertions(+), 4 deletions(-)
V2: Write the whole stride (64 pages) in the FCB case, not only one page.
diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h
index eba8759..6e1ecbe 100644
--- a/include/configs/m28evk.h
+++ b/include/configs/m28evk.h
@@ -170,11 +170,30 @@
"nand info ; " \
"setexpr fcb_sz ${update_nand_stride} * ${update_nand_count};" \
"setexpr update_nand_fcb ${fcb_sz} * ${nand_writesize}\0" \
+ "update_nand_write_fcb=" \
+ "setenv i ${update_nand_count} ; " \
+ "setenv update_nand_offset 0x0 ; " \
+ "setexpr update_nand_step " \
+ "${update_nand_stride} * ${nand_writesize} ; " \
+ "while test ${i} -gt 0 ; do " \
+ "echo ${update_nand_offset} ; " \
+ "nand scrub -y ${update_nand_offset} " \
+ "${nand_erasesize} ; " \
+ "nand write.raw ${loadaddr} " \
+ "${update_nand_offset} " \
+ "${update_nand_stride} ; " \
+ "setexpr i ${i} - 1 ; " \
+ "setexpr update_nand_offset " \
+ "${update_nand_offset} + " \
+ "${update_nand_step} ; " \
+ "done ; " \
+ "setenv i ; " \
+ "setenv update_nand_offset ; " \
+ "setenv update_nand_step\0" \
"update_nand_full=" /* Update FCB, DBBT and FW */ \
"if tftp ${update_nand_full_filename} ; then " \
"run update_nand_get_fcb_size ; " \
- "nand scrub -y 0x0 ${filesize} ; " \
- "nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; " \
+ "run update_nand_write_fcb ; " \
"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 07f88ca..e2324d6 100644
--- a/include/configs/mx28evk.h
+++ b/include/configs/mx28evk.h
@@ -172,11 +172,30 @@
"nand info ; " \
"setexpr fcb_sz ${update_nand_stride} * ${update_nand_count};" \
"setexpr update_nand_fcb ${fcb_sz} * ${nand_writesize}\0" \
+ "update_nand_write_fcb=" \
+ "setenv i ${update_nand_count} ; " \
+ "setenv update_nand_offset 0x0 ; " \
+ "setexpr update_nand_step " \
+ "${update_nand_stride} * ${nand_writesize} ; " \
+ "while test ${i} -gt 0 ; do " \
+ "echo ${update_nand_offset} ; " \
+ "nand scrub -y ${update_nand_offset} " \
+ "${nand_erasesize} ; " \
+ "nand write.raw ${loadaddr} " \
+ "${update_nand_offset} " \
+ "${update_nand_stride} ; " \
+ "setexpr i ${i} - 1 ; " \
+ "setexpr update_nand_offset " \
+ "${update_nand_offset} + " \
+ "${update_nand_step} ; " \
+ "done ; " \
+ "setenv i ; " \
+ "setenv update_nand_offset ; " \
+ "setenv update_nand_step\0" \
"update_nand_full=" /* Update FCB, DBBT and FW */ \
"if tftp ${update_nand_full_filename} ; then " \
"run update_nand_get_fcb_size ; " \
- "nand scrub -y 0x0 ${filesize} ; " \
- "nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; " \
+ "run update_nand_write_fcb ; " \
"setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \
"setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \
"nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \
--
1.7.10.4
^ permalink raw reply related [flat|nested] 12+ messages in thread* [U-Boot] [PATCH 3/3 V2] ARM: mxs: Fix NAND FCB flashing
2013-08-27 21:49 ` [U-Boot] [PATCH 3/3 V2] " Marek Vasut
@ 2013-08-28 8:40 ` Marek Vasut
2014-05-21 14:08 ` jkrause
1 sibling, 0 replies; 12+ messages in thread
From: Marek Vasut @ 2013-08-28 8:40 UTC (permalink / raw)
To: u-boot
Dear Marek Vasut,
> Fix the method of flashing FCB blocks into NAND. The new env
> writes all four FCB blocks and also does not scrub such a big
> part of the NAND. This fixed complains about busted NAND blocks
> in Linux.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
> include/configs/m28evk.h | 23 +++++++++++++++++++++--
> include/configs/mx28evk.h | 23 +++++++++++++++++++++--
> 2 files changed, 42 insertions(+), 4 deletions(-)
>
> V2: Write the whole stride (64 pages) in the FCB case, not only one page.
>
> diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h
> index eba8759..6e1ecbe 100644
> --- a/include/configs/m28evk.h
> +++ b/include/configs/m28evk.h
> @@ -170,11 +170,30 @@
> "nand info ; " \
> "setexpr fcb_sz ${update_nand_stride} * ${update_nand_count};" \
> "setexpr update_nand_fcb ${fcb_sz} * ${nand_writesize}\0" \
> + "update_nand_write_fcb=" \
> + "setenv i ${update_nand_count} ; " \
> + "setenv update_nand_offset 0x0 ; " \
> + "setexpr update_nand_step " \
> + "${update_nand_stride} * ${nand_writesize} ; " \
> + "while test ${i} -gt 0 ; do " \
> + "echo ${update_nand_offset} ; " \
> + "nand scrub -y ${update_nand_offset} " \
> + "${nand_erasesize} ; " \
> + "nand write.raw ${loadaddr} " \
> + "${update_nand_offset} " \
> + "${update_nand_stride} ; " \
Uh, I think this might need to be update_nand_step instead of update_nand_stride
here.
[...]
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 12+ messages in thread* [U-Boot] [PATCH 3/3 V2] ARM: mxs: Fix NAND FCB flashing
2013-08-27 21:49 ` [U-Boot] [PATCH 3/3 V2] " Marek Vasut
2013-08-28 8:40 ` Marek Vasut
@ 2014-05-21 14:08 ` jkrause
2014-05-24 10:57 ` Marek Vasut
1 sibling, 1 reply; 12+ messages in thread
From: jkrause @ 2014-05-21 14:08 UTC (permalink / raw)
To: u-boot
I was wondering about the following warnings while bootings linux 3.15.0-rc5:
[ 0.998885] nand: device found, Manufacturer ID: 0x98, Chip ID: 0xd1
[ 1.005485] nand: Toshiba NAND 128MiB 3,3V 8-bit
[ 1.010165] nand: 128MiB, SLC, page size: 2048, OOB size: 64
[ 1.016176] Scanning device for bad blocks
[ 1.022444] Bad eraseblock 1 at 0x000000020000
[ 1.027444] Bad eraseblock 2 at 0x000000040000
[ 1.032612] Bad eraseblock 3 at 0x000000060000
I noticed that these are the FCB pages for the NAND boot. Google found me
this old thread. Nevertheless, I applied the patch on our custom i.MX28
board and the warnings disappeared.
But I still have some questions and remarks:
Marek Vasut-3 wrote
> Fix the method of flashing FCB blocks into NAND. The new env
> writes all four FCB blocks and also does not scrub such a big
> part of the NAND. This fixed complains about busted NAND blocks
> in Linux.
>
> + "update_nand_write_fcb=" \
> + "setenv i ${update_nand_count} ; " \
> + "setenv update_nand_offset 0x0 ; " \
> + "setexpr update_nand_step " \
> + "${update_nand_stride} * ${nand_writesize} ; " \
> + "while test ${i} -gt 0 ; do " \
> + "echo ${update_nand_offset} ; " \
> + "nand scrub -y ${update_nand_offset} " \
> + "${nand_erasesize} ; " \
> + "nand write.raw ${loadaddr} " \
> + "${update_nand_offset} " \
> + "${update_nand_stride} ; " \
Why not just write a page (which contains the FCB) instead of the whole
stride?
There is also a problem about scrubbing of size 128K (which is the erase
size) and writing 128K (which is the size of a search area with 64 pages).
This works for the default settings (fuses not blown) of search stride =
1*64 and search count = 4. But if the fuses is blown and stride = 2*64 and
count = 2 it will scrub 128K and write 256K (size of 128 pages). So the
second half of the search area is not erased before writing.
Marek Vasut-3 wrote
> "update_nand_full=" /* Update FCB, DBBT and FW */ \
> "if tftp ${update_nand_full_filename} ; then " \
> "run update_nand_get_fcb_size ; " \
> - "nand scrub -y 0x0 ${filesize} ; " \
> - "nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; " \
> + "run update_nand_write_fcb ; " \
> "setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \
> "setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \
> "nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \
Running update_nand_write_fcb erases and writes the FCB search area. The
remaining bytes of the u-boot.nand file are writting before erasing the
corresponding NAND flash bytes. I added something like this before:
"setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \
"setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \
+ "nand erase ${update_nand_fcb} ${update_sz}; " \
"nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \
Is there any reason why this patch is not applied to the u-boot-imx repo?
--
View this message in context: http://u-boot.10912.n7.nabble.com/PATCH-1-3-tools-mxsboot-Staticize-functions-tp162080p180393.html
Sent from the U-Boot mailing list archive at Nabble.com.
^ permalink raw reply [flat|nested] 12+ messages in thread* [U-Boot] [PATCH 3/3 V2] ARM: mxs: Fix NAND FCB flashing
2014-05-21 14:08 ` jkrause
@ 2014-05-24 10:57 ` Marek Vasut
0 siblings, 0 replies; 12+ messages in thread
From: Marek Vasut @ 2014-05-24 10:57 UTC (permalink / raw)
To: u-boot
On Wednesday, May 21, 2014 at 04:08:09 PM, jkrause wrote:
> I was wondering about the following warnings while bootings linux
> 3.15.0-rc5:
>
> [ 0.998885] nand: device found, Manufacturer ID: 0x98, Chip ID: 0xd1
> [ 1.005485] nand: Toshiba NAND 128MiB 3,3V 8-bit
> [ 1.010165] nand: 128MiB, SLC, page size: 2048, OOB size: 64
> [ 1.016176] Scanning device for bad blocks
> [ 1.022444] Bad eraseblock 1 at 0x000000020000
> [ 1.027444] Bad eraseblock 2 at 0x000000040000
> [ 1.032612] Bad eraseblock 3 at 0x000000060000
>
> I noticed that these are the FCB pages for the NAND boot. Google found me
> this old thread. Nevertheless, I applied the patch on our custom i.MX28
> board and the warnings disappeared.
Yeah, but sometimes this patch made my board unbootable and I didn't have time
to investigate further. That is why it was never applied, to prevent that.
> But I still have some questions and remarks:
>
>
> Marek Vasut-3 wrote
>
> > Fix the method of flashing FCB blocks into NAND. The new env
> > writes all four FCB blocks and also does not scrub such a big
> > part of the NAND. This fixed complains about busted NAND blocks
> > in Linux.
> >
> > + "update_nand_write_fcb=" \
> > + "setenv i ${update_nand_count} ; " \
> > + "setenv update_nand_offset 0x0 ; " \
> > + "setexpr update_nand_step " \
> > + "${update_nand_stride} * ${nand_writesize} ; " \
> > + "while test ${i} -gt 0 ; do " \
> > + "echo ${update_nand_offset} ; " \
> > + "nand scrub -y ${update_nand_offset} " \
> > + "${nand_erasesize} ; " \
> > + "nand write.raw ${loadaddr} " \
> > + "${update_nand_offset} " \
> > + "${update_nand_stride} ; " \
>
> Why not just write a page (which contains the FCB) instead of the whole
> stride?
Feel free to roll V3 of the patch.
> There is also a problem about scrubbing of size 128K (which is the erase
> size) and writing 128K (which is the size of a search area with 64 pages).
> This works for the default settings (fuses not blown) of search stride =
> 1*64 and search count = 4. But if the fuses is blown and stride = 2*64 and
> count = 2 it will scrub 128K and write 256K (size of 128 pages). So the
> second half of the search area is not erased before writing.
Yes, we only support the default factory configuration. There are ways to tweak
the code to use different geometries, but that was to my knowledge never even
tested.
> Marek Vasut-3 wrote
>
> > "update_nand_full=" /* Update FCB, DBBT and FW */ \
> >
> > "if tftp ${update_nand_full_filename} ; then " \
> > "run update_nand_get_fcb_size ; " \
> >
> > - "nand scrub -y 0x0 ${filesize} ; " \
> > - "nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; " \
> > + "run update_nand_write_fcb ; " \
> >
> > "setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \
> > "setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \
> > "nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \
>
> Running update_nand_write_fcb erases and writes the FCB search area. The
> remaining bytes of the u-boot.nand file are writting before erasing the
> corresponding NAND flash bytes. I added something like this before:
>
> "setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \
> "setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \
> + "nand erase ${update_nand_fcb} ${update_sz}; " \
> "nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \
>
> Is there any reason why this patch is not applied to the u-boot-imx repo?
Yes, see above. Feel free to submit V3 with detailed changelog and I can try if
it still breaks my platforms.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [U-Boot] [PATCH 1/3] tools: mxsboot: Staticize functions
2013-08-27 21:32 [U-Boot] [PATCH 1/3] tools: mxsboot: Staticize functions Marek Vasut
2013-08-27 21:32 ` [U-Boot] [PATCH 2/3] tools: mxsboot: Mark the FCB pages as valid Marek Vasut
2013-08-27 21:32 ` [U-Boot] [PATCH 3/3] ARM: mxs: Fix NAND FCB flashing Marek Vasut
@ 2013-08-31 13:32 ` Stefano Babic
2 siblings, 0 replies; 12+ messages in thread
From: Stefano Babic @ 2013-08-31 13:32 UTC (permalink / raw)
To: u-boot
On 27/08/2013 23:32, Marek Vasut wrote:
> Make remaining non-static functions static and the same for vars.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
Applied to u-boot-imx, thanks.
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2014-05-24 10:57 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-27 21:32 [U-Boot] [PATCH 1/3] tools: mxsboot: Staticize functions Marek Vasut
2013-08-27 21:32 ` [U-Boot] [PATCH 2/3] tools: mxsboot: Mark the FCB pages as valid Marek Vasut
2013-09-10 17:13 ` Stefano Babic
2013-09-10 21:33 ` Marek Vasut
2013-09-15 16:20 ` Fabio Estevam
2013-09-15 16:44 ` Marek Vasut
2013-08-27 21:32 ` [U-Boot] [PATCH 3/3] ARM: mxs: Fix NAND FCB flashing Marek Vasut
2013-08-27 21:49 ` [U-Boot] [PATCH 3/3 V2] " Marek Vasut
2013-08-28 8:40 ` Marek Vasut
2014-05-21 14:08 ` jkrause
2014-05-24 10:57 ` Marek Vasut
2013-08-31 13:32 ` [U-Boot] [PATCH 1/3] tools: mxsboot: Staticize functions Stefano Babic
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox