* [U-Boot-Users] Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds
@ 2008-06-02 1:53 Grant Erickson
2008-06-02 6:22 ` Stefan Roese
0 siblings, 1 reply; 13+ messages in thread
From: Grant Erickson @ 2008-06-02 1:53 UTC (permalink / raw)
To: u-boot
Before I jump in with the BDI and start debugging, has anyone else using
'nboot' and FIT images noticed that 'nboot' periodically fails where 'nand
read.i' of the SAME region of NAND succeeds?
=> echo $bootaddr
800000
=> echo $boot0
nboot ${bootaddr} 0 0 && setenv bootargs root=/dev/mtdblock9 && run
addjffs2 addtty && bootm ${bootaddr}
=> run boot0
Loading from NAND 64MiB 3,3V 8-bit, offset 0x0
** Bad FIT image format
=> nand read.i ${bootaddr} 0 400000
NAND read: device 0 offset 0x0, size 0x400000
Reading data from 0x3ffe00 -- 100% complete.
4194304 bytes read: OK
=> setenv bootargs root=/dev/mtdblock9
=> run addjffs2 addtty
=> bootm ${bootaddr}
## Booting kernel from FIT Image at 00800000 ...
Using 'config at 1' configuration
Trying 'kernel at 1' kernel subimage
...
Using Haleakala machine description
Linux version 2.6.25-rc3-00951-g6514352-dirty (gerickson at ubuntu-fusion)
(gcc version 4.0.0 (DENX ELDK 4.1 4.0.0)) #2 Wed May 28 22:49:36 PDT 2008
Zone PFN ranges:
DMA 0 -> 65536
Normal 65536 -> 65536
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
...
This is using AMCC's Haleakala board with Samsung K9F1208U0B NAND, though I
suspect that doesn't make any difference since nand read.i works fine.
Regards,
Grant
^ permalink raw reply [flat|nested] 13+ messages in thread* [U-Boot-Users] Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds 2008-06-02 1:53 [U-Boot-Users] Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds Grant Erickson @ 2008-06-02 6:22 ` Stefan Roese 2008-06-02 18:21 ` Scott Wood 0 siblings, 1 reply; 13+ messages in thread From: Stefan Roese @ 2008-06-02 6:22 UTC (permalink / raw) To: u-boot Hi Grant, On Monday 02 June 2008, Grant Erickson wrote: > Before I jump in with the BDI and start debugging, has anyone else using > 'nboot' and FIT images noticed that 'nboot' periodically fails where 'nand > read.i' of the SAME region of NAND succeeds? Not sure here, since I never used nboot before. But "nand read.i" skips bad blocks and perhaps "nboot" not? I suggest that you check if this is the case and if you have bad blocks in this NAND area. Best regards, 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 ===================================================================== ^ permalink raw reply [flat|nested] 13+ messages in thread
* [U-Boot-Users] Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds 2008-06-02 6:22 ` Stefan Roese @ 2008-06-02 18:21 ` Scott Wood 2008-06-02 22:02 ` Grant Erickson 0 siblings, 1 reply; 13+ messages in thread From: Scott Wood @ 2008-06-02 18:21 UTC (permalink / raw) To: u-boot On Mon, Jun 02, 2008 at 08:22:21AM +0200, Stefan Roese wrote: > Hi Grant, > > On Monday 02 June 2008, Grant Erickson wrote: > > Before I jump in with the BDI and start debugging, has anyone else using > > 'nboot' and FIT images noticed that 'nboot' periodically fails where 'nand > > read.i' of the SAME region of NAND succeeds? > > Not sure here, since I never used nboot before. But "nand read.i" skips bad > blocks and perhaps "nboot" not? I suggest that you check if this is the case > and if you have bad blocks in this NAND area. It is indeed the case -- you need to use "nboot.i". -Scott ^ permalink raw reply [flat|nested] 13+ messages in thread
* [U-Boot-Users] Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds 2008-06-02 18:21 ` Scott Wood @ 2008-06-02 22:02 ` Grant Erickson 2008-06-02 22:07 ` [U-Boot-Users] Non-block-skipping NAND commands (was: Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds) Scott Wood 2008-06-05 20:47 ` [U-Boot-Users] Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds Grant Erickson 0 siblings, 2 replies; 13+ messages in thread From: Grant Erickson @ 2008-06-02 22:02 UTC (permalink / raw) To: u-boot On 6/2/08 11:21 AM, Scott Wood wrote: > On Mon, Jun 02, 2008 at 08:22:21AM +0200, Stefan Roese wrote: >> Hi Grant, >> >> On Monday 02 June 2008, Grant Erickson wrote: >>> Before I jump in with the BDI and start debugging, has anyone else using >>> 'nboot' and FIT images noticed that 'nboot' periodically fails where 'nand >>> read.i' of the SAME region of NAND succeeds? >> >> Not sure here, since I never used nboot before. But "nand read.i" skips bad >> blocks and perhaps "nboot" not? I suggest that you check if this is the case >> and if you have bad blocks in this NAND area. > > It is indeed the case -- you need to use "nboot.i". > > -Scott Scott and Stefan, Thanks for the suggestion. That solved it. As an academic exercise, is there any practical reason a system would want to use nboot, as I erroneously chose to do, without .i|.jffs2|.e? Regards, Grant -- Principal Nuovation System Designs, LLC 998 Alpine Terrace Suite 3 Sunnyvale, CA 94086-2469 US T +1-408-749-0495 F +1-205-449-0495 M +1-408-489-5710 gerickson at nuovations.com http://www.nuovations.com/ ^ permalink raw reply [flat|nested] 13+ messages in thread
* [U-Boot-Users] Non-block-skipping NAND commands (was: Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds) 2008-06-02 22:02 ` Grant Erickson @ 2008-06-02 22:07 ` Scott Wood 2008-06-03 0:48 ` Stuart Wood ` (3 more replies) 2008-06-05 20:47 ` [U-Boot-Users] Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds Grant Erickson 1 sibling, 4 replies; 13+ messages in thread From: Scott Wood @ 2008-06-02 22:07 UTC (permalink / raw) To: u-boot Grant Erickson wrote: > Thanks for the suggestion. That solved it. As an academic exercise, is there > any practical reason a system would want to use nboot, as I erroneously > chose to do, without .i|.jffs2|.e? I don't think so, though I don't know the history involved. Does anyone actually use the non-block-skipping versions of any of the nand commands (intentionally, that is)? If the answer is no, then we could make it the default. -Scott ^ permalink raw reply [flat|nested] 13+ messages in thread
* [U-Boot-Users] Non-block-skipping NAND commands (was: Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds) 2008-06-02 22:07 ` [U-Boot-Users] Non-block-skipping NAND commands (was: Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds) Scott Wood @ 2008-06-03 0:48 ` Stuart Wood 2008-06-03 6:09 ` Stefan Roese ` (2 subsequent siblings) 3 siblings, 0 replies; 13+ messages in thread From: Stuart Wood @ 2008-06-03 0:48 UTC (permalink / raw) To: u-boot I would vote for making bad black handling the default. I've been working on fixing up a design of ours that mistakenly used non block skipping version and I've been trying to find all the places were bad block's were not being skipped and fixes them. Our system only uses NAND flash and people are very concerned about it. Stuart On Mon, Jun 2, 2008 at 6:07 PM, Scott Wood <scottwood@freescale.com> wrote: > Grant Erickson wrote: >> Thanks for the suggestion. That solved it. As an academic exercise, is there >> any practical reason a system would want to use nboot, as I erroneously >> chose to do, without .i|.jffs2|.e? > > I don't think so, though I don't know the history involved. Does anyone > actually use the non-block-skipping versions of any of the nand commands > (intentionally, that is)? If the answer is no, then we could make it > the default. > > -Scott > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > U-Boot-Users mailing list > U-Boot-Users at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/u-boot-users > -- Stuart Wood Lab X Technologies, LLC 176 Anderson Ave. Suite 302 Rochester, NY 14607 Phone: (585) 271-7790 x207 Fax: (585) 473.4707 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [U-Boot-Users] Non-block-skipping NAND commands (was: Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds) 2008-06-02 22:07 ` [U-Boot-Users] Non-block-skipping NAND commands (was: Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds) Scott Wood 2008-06-03 0:48 ` Stuart Wood @ 2008-06-03 6:09 ` Stefan Roese 2008-06-04 7:19 ` Matthias Fuchs 2008-06-04 9:56 ` [U-Boot-Users] Non-block-skipping NAND commands Detlev Zundel 3 siblings, 0 replies; 13+ messages in thread From: Stefan Roese @ 2008-06-03 6:09 UTC (permalink / raw) To: u-boot On Tuesday 03 June 2008, Scott Wood wrote: > Grant Erickson wrote: > > Thanks for the suggestion. That solved it. As an academic exercise, is > > there any practical reason a system would want to use nboot, as I > > erroneously chose to do, without .i|.jffs2|.e? > > I don't think so, though I don't know the history involved. Does anyone > actually use the non-block-skipping versions of any of the nand commands > (intentionally, that is)? If the answer is no, then we could make it > the default. I'm fine with making bad-block-skipping the default. I never used the "other" version and I don't know what it's really useful for. Best regards, 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 ===================================================================== ^ permalink raw reply [flat|nested] 13+ messages in thread
* [U-Boot-Users] Non-block-skipping NAND commands (was: Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds) 2008-06-02 22:07 ` [U-Boot-Users] Non-block-skipping NAND commands (was: Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds) Scott Wood 2008-06-03 0:48 ` Stuart Wood 2008-06-03 6:09 ` Stefan Roese @ 2008-06-04 7:19 ` Matthias Fuchs 2008-06-04 9:56 ` [U-Boot-Users] Non-block-skipping NAND commands Detlev Zundel 3 siblings, 0 replies; 13+ messages in thread From: Matthias Fuchs @ 2008-06-04 7:19 UTC (permalink / raw) To: u-boot Hi Scott, we are using the NAND stuff for a couple of boards. All use the .i or .jffs2 extension. So I also vote for making skipping the default. But the extensions should be preserved :-) Matthias On Tuesday 03 June 2008 00:07, Scott Wood wrote: > Grant Erickson wrote: > > Thanks for the suggestion. That solved it. As an academic exercise, is there > > any practical reason a system would want to use nboot, as I erroneously > > chose to do, without .i|.jffs2|.e? > > I don't think so, though I don't know the history involved. Does anyone > actually use the non-block-skipping versions of any of the nand commands > (intentionally, that is)? If the answer is no, then we could make it > the default. > > -Scott ^ permalink raw reply [flat|nested] 13+ messages in thread
* [U-Boot-Users] Non-block-skipping NAND commands 2008-06-02 22:07 ` [U-Boot-Users] Non-block-skipping NAND commands (was: Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds) Scott Wood ` (2 preceding siblings ...) 2008-06-04 7:19 ` Matthias Fuchs @ 2008-06-04 9:56 ` Detlev Zundel 3 siblings, 0 replies; 13+ messages in thread From: Detlev Zundel @ 2008-06-04 9:56 UTC (permalink / raw) To: u-boot Hi Scott, > Grant Erickson wrote: >> Thanks for the suggestion. That solved it. As an academic exercise, is there >> any practical reason a system would want to use nboot, as I erroneously >> chose to do, without .i|.jffs2|.e? > > I don't think so, though I don't know the history involved. Does anyone > actually use the non-block-skipping versions of any of the nand commands > (intentionally, that is)? If the answer is no, then we could make it > the default. I also vote for commands to be bad-block aware per default as I also already got bitten by that. Cheers Detlev -- Q: What does FAQ stand for? A: We are Frequently Asked this Question, and we have no idea. -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de ^ permalink raw reply [flat|nested] 13+ messages in thread
* [U-Boot-Users] Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds 2008-06-02 22:02 ` Grant Erickson 2008-06-02 22:07 ` [U-Boot-Users] Non-block-skipping NAND commands (was: Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds) Scott Wood @ 2008-06-05 20:47 ` Grant Erickson 2008-06-05 22:30 ` Grant Erickson 1 sibling, 1 reply; 13+ messages in thread From: Grant Erickson @ 2008-06-05 20:47 UTC (permalink / raw) To: u-boot On 6/2/08 3:02 PM, Grant Erickson wrote: > On 6/2/08 11:21 AM, Scott Wood wrote: >> On Mon, Jun 02, 2008 at 08:22:21AM +0200, Stefan Roese wrote: >>> Hi Grant, >>> >>> On Monday 02 June 2008, Grant Erickson wrote: >>>> Before I jump in with the BDI and start debugging, has anyone else using >>>> 'nboot' and FIT images noticed that 'nboot' periodically fails where 'nand >>>> read.i' of the SAME region of NAND succeeds? >>> >>> Not sure here, since I never used nboot before. But "nand read.i" skips bad >>> blocks and perhaps "nboot" not? I suggest that you check if this is the case >>> and if you have bad blocks in this NAND area. >> >> It is indeed the case -- you need to use "nboot.i". >> >> -Scott > > Scott and Stefan, > > Thanks for the suggestion. That solved it. As an academic exercise, is there > any practical reason a system would want to use nboot, as I erroneously chose > to do, without .i|.jffs2|.e? It would appear I was slightly too quick to regard this as fixed. What I found this morning is the following with the AMCC "Haleakala" board: 1) A 48+ hour reboot test bouncing between the boot0 and boot1 partitions passed, where boot0 and boot1 are defined as: => printenv bootaddr bootcmd boot0 boot1 bootaddr=800000 bootcmd=run boot0 || run boot1 || reset boot0=nboot.i ${bootaddr} 0 0 && setenv bootargs root=/dev/mtdblock9 && run addjffs2 addtty && bootm ${bootaddr} boot1=nboot.i ${bootaddr} 0 1C00000 && setenv bootargs root=/dev/mtdblock11 && run addjffs2 addtty && bootm ${bootaddr} 2) I stopped that test and added power-cycling to the mix and it, again, immediately failed with: Loading from NAND 64MiB 3,3V 8-bit, offset 0x0 ** Bad FIT image format Loading from NAND 64MiB 3,3V 8-bit, offset 0x1c00000 ** Bad FIT image format So, resets are not enough to trigger this issue, it takes a power cycle. I have found that this state is recoverable by issuing a 'nand read.i' and then re-running 'boot0': => nand read.i ${bootaddr} 0 400000 && run boot0 From that point forward, both boot0 and boot1 work flawlessly. I have also found that NFS booting to get Linux up and running, restarting and then running boot0 or boot1 also works from that point forward until the next power cycle. So, there seems to be some specific state the PowerPC NDFC (NAND controller) or Samsung K9F1208U0B NAND gets in where either 'nand read.i' or the Linux MTD driver kick one or both in such a way as to get out of whatever state prevents nboot.i from working. Strangely though, both nand read.i and nboot.i both exercise the same nand_read_opts path in nand_util.c. Any thoughts? Regards, Grant ^ permalink raw reply [flat|nested] 13+ messages in thread
* [U-Boot-Users] Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds 2008-06-05 20:47 ` [U-Boot-Users] Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds Grant Erickson @ 2008-06-05 22:30 ` Grant Erickson 2008-06-05 22:59 ` Grant Erickson 0 siblings, 1 reply; 13+ messages in thread From: Grant Erickson @ 2008-06-05 22:30 UTC (permalink / raw) To: u-boot On 6/5/08 1:47 PM, Grant Erickson wrote: > On 6/2/08 3:02 PM, Grant Erickson wrote: >> On 6/2/08 11:21 AM, Scott Wood wrote: >>> On Mon, Jun 02, 2008 at 08:22:21AM +0200, Stefan Roese wrote: >>>> Hi Grant, >>>> >>>> On Monday 02 June 2008, Grant Erickson wrote: >>>>> Before I jump in with the BDI and start debugging, has anyone else using >>>>> 'nboot' and FIT images noticed that 'nboot' periodically fails where 'nand >>>>> read.i' of the SAME region of NAND succeeds? >>>> >>>> Not sure here, since I never used nboot before. But "nand read.i" skips bad >>>> blocks and perhaps "nboot" not? I suggest that you check if this is the >>>> case >>>> and if you have bad blocks in this NAND area. >>> >>> It is indeed the case -- you need to use "nboot.i". >>> >>> -Scott >> >> Scott and Stefan, >> >> Thanks for the suggestion. That solved it. As an academic exercise, is there >> any practical reason a system would want to use nboot, as I erroneously chose >> to do, without .i|.jffs2|.e? > > It would appear I was slightly too quick to regard this as fixed. What I found > this morning is the following with the AMCC "Haleakala" board: > > 1) A 48+ hour reboot test bouncing between the boot0 and boot1 partitions > passed, where boot0 and boot1 are defined as: > > => printenv bootaddr bootcmd boot0 boot1 > bootaddr=800000 > bootcmd=run boot0 || run boot1 || reset > boot0=nboot.i ${bootaddr} 0 0 && setenv bootargs root=/dev/mtdblock9 && > run addjffs2 addtty && bootm ${bootaddr} > boot1=nboot.i ${bootaddr} 0 1C00000 && setenv bootargs > root=/dev/mtdblock11 && run addjffs2 addtty && bootm ${bootaddr} > > 2) I stopped that test and added power-cycling to the mix and it, again, > immediately failed with: > > Loading from NAND 64MiB 3,3V 8-bit, offset 0x0 > ** Bad FIT image format > > Loading from NAND 64MiB 3,3V 8-bit, offset 0x1c00000 > ** Bad FIT image format > > So, resets are not enough to trigger this issue, it takes a power cycle. > > I have found that this state is recoverable by issuing a 'nand read.i' and > then re-running 'boot0': > > => nand read.i ${bootaddr} 0 400000 && run boot0 > > From that point forward, both boot0 and boot1 work flawlessly. > > I have also found that NFS booting to get Linux up and running, restarting and > then running boot0 or boot1 also works from that point forward until the next > power cycle. > > So, there seems to be some specific state the PowerPC NDFC (NAND controller) > or Samsung K9F1208U0B NAND gets in where either 'nand read.i' or the Linux MTD > driver kick one or both in such a way as to get out of whatever state prevents > nboot.i from working. > > Strangely though, both nand read.i and nboot.i both exercise the same > nand_read_opts path in nand_util.c. > > Any thoughts? Marian: I'm following up with you on this since 'git blame cmd_nand.c' seems to indicate you added the CONFIG_FIT support to this file. Based on stepping through with the debugger, my initial guess about hardware issues may have been incorrect. Is there an implicit assumption in the following snippet from nand_load_image() in cmd_nand.c: ... cnt = nand->oobblock; if (jffs2) { nand_read_options_t opts; memset(&opts, 0, sizeof(opts)); opts.buffer = (u_char*) addr; opts.length = cnt; opts.offset = offset; opts.quiet = 1; r = nand_read_opts(nand, &opts); } else { r = nand_read(nand, offset, &cnt, (u_char *) addr); } if (r) { puts("** Read error\n"); show_boot_progress (-56); return 1; } ... switch (genimg_get_format ((void *)addr)) { ... #if defined(CONFIG_FIT) case IMAGE_FORMAT_FIT: fit_hdr = (const void *)addr; if (!fit_check_format (fit_hdr)) { show_boot_progress (-150); puts ("** Bad FIT image format\n"); return 1; } show_boot_progress (151); puts ("Fit image detected...\n"); cnt = fit_get_size (fit_hdr); break; #endif ... that casting 'addr' to 'fit_hdr' represents more than 512 bytes of valid data to be accessed by fit_check_format()? If so, should not 'cnt = nand->oobblock' be explicitly set to match that assumption? I am guessing that my observation that NFS booting and nand read.i addressed the issue strictly had to do with the fact that the 8 MiB address to which those operate were not getting used or otherwise updated between resets after the boot of the kernel allowing subsequent runs of 'nboot' to "leverage" the stale data. Regards, Grant ^ permalink raw reply [flat|nested] 13+ messages in thread
* [U-Boot-Users] Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds 2008-06-05 22:30 ` Grant Erickson @ 2008-06-05 22:59 ` Grant Erickson 2008-06-06 7:38 ` Marian Balakowicz 0 siblings, 1 reply; 13+ messages in thread From: Grant Erickson @ 2008-06-05 22:59 UTC (permalink / raw) To: u-boot On 6/5/08 3:30 PM, Grant Erickson wrote: > I'm following up with you on this since 'git blame cmd_nand.c' seems to > indicate you added the CONFIG_FIT support to this file. > > Based on stepping through with the debugger, my initial guess about hardware > issues may have been incorrect. Is there an implicit assumption in the > following snippet from nand_load_image() in cmd_nand.c: > > [ code omitted ] > > that casting 'addr' to 'fit_hdr' represents more than 512 bytes of valid data > to be accessed by fit_check_format()? If so, should not 'cnt = nand->oobblock' > be explicitly set to match that assumption? > > I am guessing that my observation that NFS booting and nand read.i addressed > the issue strictly had to do with the fact that the 8 MiB address to which > those operate were not getting used or otherwise updated between resets after > the boot of the kernel allowing subsequent runs of 'nboot' to "leverage" the > stale data. The boot.itb image I have in NAND is 0x13CB98 bytes in size. Running a series of 'nand read.i ${bootaddr} 0 <...>': => nand read.i ${bootaddr} 0 1000 && iminfo ${bootaddr} ## Checking Image at 00800000 ... FIT image found Bad FIT image format! => nand read.i ${bootaddr} 0 2000 && iminfo ${bootaddr} ... => nand read.i ${bootaddr} 0 4000 && iminfo ${bootaddr} ... => nand read.i ${bootaddr} 0 8000 && iminfo ${bootaddr} ... => nand read.i ${bootaddr} 0 10000 && iminfo ${bootaddr} ... => nand read.i ${bootaddr} 0 20000 && iminfo ${bootaddr} ... => nand read.i ${bootaddr} 0 40000 && iminfo ${bootaddr} ... => nand read.i ${bootaddr} 0 80000 && iminfo ${bootaddr} ... => nand read.i ${bootaddr} 0 100000 && iminfo ${bootaddr} ... => nand read.i ${bootaddr} 0 200000 && iminfo ${bootaddr} ... ## Checking Image at 00800000 ... FIT image found FIT description: Linux Kernel with Device Tree Image 0 (kernel at 1) Description: Kernel Type: Kernel Image Compression: gzip compressed Data Start: 0x008000c8 ... So, it would appear that the answer, at least for this trivial boot.itb of a kernel and DTB, for how large must the initial value of 'cnt' be is "as large as the image being nboot'ed is". That said, it looks like nboot and FIT images may not work together at present with today's code. Any thoughts? Regards, Grant ^ permalink raw reply [flat|nested] 13+ messages in thread
* [U-Boot-Users] Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds 2008-06-05 22:59 ` Grant Erickson @ 2008-06-06 7:38 ` Marian Balakowicz 0 siblings, 0 replies; 13+ messages in thread From: Marian Balakowicz @ 2008-06-06 7:38 UTC (permalink / raw) To: u-boot Hi Grant, Grant Erickson wrote: > On 6/5/08 3:30 PM, Grant Erickson wrote: >> I'm following up with you on this since 'git blame cmd_nand.c' seems to >> indicate you added the CONFIG_FIT support to this file. >> >> Based on stepping through with the debugger, my initial guess about hardware >> issues may have been incorrect. Is there an implicit assumption in the >> following snippet from nand_load_image() in cmd_nand.c: >> >> [ code omitted ] >> >> that casting 'addr' to 'fit_hdr' represents more than 512 bytes of valid data >> to be accessed by fit_check_format()? If so, should not 'cnt = nand->oobblock' >> be explicitly set to match that assumption? >> >> I am guessing that my observation that NFS booting and nand read.i addressed >> the issue strictly had to do with the fact that the 8 MiB address to which >> those operate were not getting used or otherwise updated between resets after >> the boot of the kernel allowing subsequent runs of 'nboot' to "leverage" the >> stale data. > > The boot.itb image I have in NAND is 0x13CB98 bytes in size. Running a > series of 'nand read.i ${bootaddr} 0 <...>': > ... > > So, it would appear that the answer, at least for this trivial boot.itb of a > kernel and DTB, for how large must the initial value of 'cnt' be is "as > large as the image being nboot'ed is". That said, it looks like nboot and > FIT images may not work together at present with today's code. > > Any thoughts? Doing a FIT format check on a first sector data is obviously wrong. This was a good spot for such check with the initial implementation of the routine, but it should have been corrected after that changed, stupid me. As you'll note fit_print_contents() call is deferred, and that is for the same reason, it needs the whole image data to operate on. Same, for format check, it cannot be done earlier than that. I'll post a patch later today that fixes it, please give it a try on your system. Cheers, m. ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2008-06-06 7:38 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-06-02 1:53 [U-Boot-Users] Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds Grant Erickson 2008-06-02 6:22 ` Stefan Roese 2008-06-02 18:21 ` Scott Wood 2008-06-02 22:02 ` Grant Erickson 2008-06-02 22:07 ` [U-Boot-Users] Non-block-skipping NAND commands (was: Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds) Scott Wood 2008-06-03 0:48 ` Stuart Wood 2008-06-03 6:09 ` Stefan Roese 2008-06-04 7:19 ` Matthias Fuchs 2008-06-04 9:56 ` [U-Boot-Users] Non-block-skipping NAND commands Detlev Zundel 2008-06-05 20:47 ` [U-Boot-Users] Loading from NAND using 'nboot' Periodically Fails Where 'nand read' Succeeds Grant Erickson 2008-06-05 22:30 ` Grant Erickson 2008-06-05 22:59 ` Grant Erickson 2008-06-06 7:38 ` Marian Balakowicz
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox