[U-Boot] Updating a system
David Lynch Jr.
dhlii at dlasys.net
Tue Dec 28 19:45:22 CET 2010
Sorry;
Your sugestions are appreciated. I had not yet looked at some of the
u-boot capabilities you described.
But I am trying to find out if there is something approaching a
standard scheme for handling this - rather than going off and doing
something myself that is non-standard.
I have a fairly good grasp of what needs to and can be done if there is
no common solution already.
On Tue, 2010-12-28 at 10:05 +0100, Albert ARIBAUD wrote:
> Hi David,
>
> Le 28/12/2010 08:54, David Lynch Jr. a écrit :
> > I need to setup a system so that it can boot a user web updateable
> > kernel/rootfs or a failsafe version. The process has to be manageable by
> > completely non-technical users and work from a single flash media - no
> > plugging in an SD card or USB stick to recover.
> > Before I re-invent the wheel is there an existing scheme to manage
> > multiple boot choices with an automatic fallback to a failsafe ?
>
> Depends what you mean by "fail-safe".
>
> There is no way for a bootloader to detect "failures" in the OS and set
> of applications that it helps launching, at least no general,
> already-defined and 100%... fail-safe... way. You'll have to devise your
> own scheme for the bootloader to find out it should start the backup
> system instead of the main one. What U-boot can do for you here is
> provide tools to build this method.
>
> One tool is support for OS and root Flash images which can be checked
> for integrity (e.g. images made with make uImage). When told to run such
> images, u-boot will check their integrity and run them only if
> unaltered; otherwise it'll go on executing whatever instruction follows.
> This allows you to at least not run a main system if corrupt; it even
> allows you to not run a corrput backup system, however what you would do
> next is you own lookout.
>
> Another tool is the ability to store and retrieve a flag value which
> will persist across reboots and resets, both in u-boot and in linux, for
> instance you'd use some bytes of eeprom or a scratch register on a
> backed-up I2C RTC (mind the total power losses though!)
>
> As a (very bad and incomplete) example, initially the flag value would
> be set to "PASS" and the main system would use a watchdog scheme which,
> in case of "failures", would set the flag value to "FAIL" and reset.
> Then in u-boot, commands executed from boootcmd would check the flag
> value and boot either the main (if PASS) or backup (if FAIL) system.
>
> But as I said, these are only generic tools which can help making a
> system fail-safe.
>
> Amicalement,
More information about the U-Boot
mailing list