[U-Boot] start a second kernel/filesystem if first one is corrupted
Arno Steffen
arno.steffen at googlemail.com
Thu Jan 14 12:38:49 CET 2010
2010/1/14 Wolfgang Denk <wd at denx.de>
> Dear Arno Steffen,
>
> In message <804f0d21001140104o3543921cx2b4422fbc8a9e6b at mail.gmail.com> you
> wrote:
> >
> > Ok, it normaly executes commands after each other. But in case the rootfs
> is
> > invalid in boots kernel and ends up with kernel panic which causes a
> reboot.
> > In this way the second command will not be executed
> > bootcmd=run boot_fs1; run boot_fs2
>
> Right, this method can only detect when the boot command fails, for
> example because of corrupted images. It cannot handle situations where
> the kernel crashes, or where the application does not start up
> successfully. To handle such situations you have to use the bootcount
> feature, usually combined with a hardware watchdog which will reset
> your board in cases where it just hangs.
>
> > Bootcount is a great idea, but don't know right now how to do this. Also
> it
>
> Hire an expert, then.
>
> > will stress the flash, as it has to change the environment every time it
> > boots.
>
> No, this is wrong. Nothing neds to get written to flash when booting.
> The boot counter is NOT stored in the environment, but in some
> hardware register or other storage that is known not to change it's
> value during a reset.
>
> > Although I add hush to my config file
> > #define CONFIG_HUSH_PARSER 1 /* use "hush" command parser */
> >
> > and it compiles hush.c to hush.o I get
> >
> > Unknown command 'if'
>
> Can you please provide the full log, including all your input and all
> output? Please include the same (full input and output) for running
> this command:
>
> => echo foo || echo bar
>
> Best regards,
>
> Wolfgang Denk
>
> --
> DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> After Goliath's defeat, giants ceased to command respect.
> - Freeman Dyson
>
Thanks for answer.
My uboot is a 2008.10 (Mistral/TI EVM board)
OMAP3 # echo foo || echo bar
foo || echo bar
OMAP3 # setenv check 'if imi $addr; then echo Image OK; else echo Image
corrupted!!; fi'
OMAP3 # run check
Unknown command 'if' - try 'help'
Unknown command 'then' - try 'help'
Unknown command 'else' - try 'help'
Unknown command 'fi' - try 'help'
OMAP3 #
The line:
#define CONFIG_HUSH_PARSER 1 /* use "hush" command parser */
I put into /include/configs/omap3_evm.h
Best regards
Arno
More information about the U-Boot
mailing list