[U-Boot] U-Boot Env Vars in Flash and EEPROM at the same time (hybrid env)?

Brian Hutchinson b.hutchman at gmail.com
Thu Mar 18 17:49:17 CET 2010


>
> Hm... And redundant environment is not safe enough for you?

I don't know much about redundant env but now that you mention it ...
I do remember seeing something about that in the code.  I'll look into
it.  Thanks!

>
>> The goal is to not brick a device during a upgrade.  Whatever bank you
>> are running out of, you upgrade by flashing the bank not being used.
>> Once a bank has been upgraded, if I want to select that bank to boot
>> ... I would need to modify a environment variable but if it is stored
>> in flash then while that sector (a 256k sector in my case) is being
>> updated ... if power is lost I just hosed myself.  If the environment
>> variable I update was stored in EEPROM, then it would be closer to an
>> atomic action that couldn't be interrupted with say a power failure.
>
> EEPROM is not a bit more reliable than NOR, on contrary (read for
> example doc/I2C_Edge_Conditions - unless you write-protect your EEPROm
> in hardware it is actually way less reliable).

I've seen that document and have raised the issues (and discussions I
found about it in the archives) to those that "really" want to use the
EEPROM.

I guess when I first thought about this I had sector erase time of
flash vs hitting a single byte of the EEPROM but I wasn't thinking of
the I2C transaction.  That realization hit me right after I hit send
and realized what I posted was heading in the weeds.

>
> And redundant environment should cover your use case just fine.

Cool!  I will surely read all I can on it.

>
>> So what I'm asking about is a Hybrid environment were some variables
>> are in flash and some are in EEPROM.  The env is read from both
>> locations and saveenv writes some vars in flash and some in EEPROM.
>> With the current u-boot code I have (1.1.6) the environment choices
>> are mutually exclusive (flash, eeprom, nvram etc.)
>
> This makes little sense to me.

Thanks for being gentle.  I had temporary insanity.

Regards,

Brian


More information about the U-Boot mailing list