[U-Boot-Users] [RFC] Implementing Boot Image Fallback on U-Boot
Bartlomiej Sieka
tur at semihalf.com
Thu Apr 24 11:01:09 CEST 2008
Makito SHIOKAWA wrote:
> Boot Image Fallback is a mechanism that enables a system to fallback to a
> "known good" boot image in the event of catastrophic boot failure (i.e.
> failure to boot, panic on boot, failure to initialize HW/SW). (CGL
> Availability Requirements Definition V4.0: AVL.9.0). On system especially used
> in telecommunication, 99.999% high availability is required. So, this function
> is highly needed (like my customer requires).
>
> This time, I'm thinking of implementing Boot Image Fallback on U-Boot as
> follows (like a way GRUB does). So, I would appreciate any comments to this.
>
>
> It uses new U-Boot command "bootmf" and fw_setenv.
>
> * bootmf
>
> It is a wrapper of "bootm", and it boots kernel with fallback enabled on
> multiple kernel images.
Hello,
You might want to have a look an the new image format introduced
recently. It allows you to have multiple kernels (and ramdisks, and
other types of images) in one image file, and access these components in
elegant way. Have a look in doc/uImage.FIT/. In particular,
doc/uImage.FIT/command_syntax_extensions.txt describes new syntax that
you might find useful.
>
>
> Also, it uses new U-Boot environment variables as follows.
>
> * imgaddr<N>
>
> It holds physical address of flash partition that kernel image is written. <N>
> is integer and becomes an entry of corresponding kernel image.
>
> (ex.) imgaddr0=0xf8000000, imgaddr1=0xf8200000
This is where you may want to consider the new syntax mentioned above.
>
> * bootargs<N>
>
> It holds kernel parameter of entry <N>.
And here too.
>
> (ex.) bootargs0=root=/dev/mtdblock1 , bootargs1=root=/dev/mtdblock3
>
> * default
>
> It holds default entry that "bootmf" tries to boot on default.
Please check the "default booting configuration" feature of the new
image format, seems like it might be what you're looking for.
Regards,
Barlomiej
More information about the U-Boot
mailing list