[U-Boot] [RFC] Bootcount improvements

Stefano Babic sbabic at denx.de
Sat Mar 23 10:49:18 CET 2013


On 22/03/2013 13:56, Alexandre Dilly wrote:
> Hi,
> 

Hi Alexandre,

> I'm working on an open source automatic updater for embedded systems. The goal of this project is to split a flash memory or disk in multiple partition (2 or more) and install a new root filesystem  on an empty or outdated partition. 
> 
> After reboot, we count the boot attempts on this new version of the system and if it fails to boot, we switch back to the last working partition. This guarantees that we will eventually boot on a correct partition and that there is no chance to have an unsupervised equipment hang at the u-boot prompt.
> 
> The u-boot environment would contain the name of the partition to test and the partition to fallback to. I would rewrite the u-boot environment after installing the new partition and use  CONFIG_ENV_OFFSET_REDUND to make it powerfail-safe.
> 
> To handle the boot attempts count, I've seen the 'bootcount' driver. However, it doesn't support all cpu and memories.
> 
> I intend to improve the 'bootcount' driver by adding two features:
> - add  eeprom and flash memories as places to load/save the bootcount value.

There are good reason to use volatile memory (in most case, the internal
RAM of the processor) to store the bootcount value. We should be sure
that the system is clean after a power-cycle. There are a lot of
different causes for a failing boot: a different network setup, other
devices attached to the board, and so on. If the reason depends on the
environment the board works, we should be sure that changing the
hardware the system is able to try again from a clean situation.

If you move the bootcount into a non-volatile memory, you add a history
to the process and breaks this assumption.

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
=====================================================================


More information about the U-Boot mailing list