[U-Boot-Users] Environment in EEPROM on MPC5200 based board

Wolfgang Denk
2004-12-07T09:56:22Z

Hallo, Herr Schau!

In message <41B56C25.8070906@MAZeT.de> you wrote:
>
> I'm using Lite5200 Board and tried to configure U-Boot to have
> environment in EEPROM. I use Hard I2C driver an everything works fine

Why don't you keep the environment in flash as it is no?

In my opinion using the environment in EEPROM is just asking for
trouble. It has serious disadvantages:

* Loooooong boot times, which are also not deterministic (just
setting the board to a new console baud rate can double the boot
time, etc.)

* Less reliable -- in flash, you can have redundand flash sectors; so
far I never heard of a single case of data loss in such a
configuration. In EEPROM, you may experience the infamous "I2C Edge
Conditions" problem (see doc/I2C_Edge_Conditions) - I have seen
cases where a failing power supply caused slow voltage rise times;
when powering on such a board, the CPU would start to run, then the
watchdog would resert it because the voltages were still too low.
This happened 2...5 times for each power on. In the end the CPU
would run fine, but in 2 out of 3 boot cycles the environment in
EEPROM was lost because of the Edge Conditions problem.

I _strongly_ recommend NOT to put the envrionment in EEPROM (nor any
other critical data).

> When setting CFG_ENV_IS_IN_EEPROM U-Boot don't start (hang-up before any
> messages are printed on screen).

Maybe you have some debugging enabled? This will try to use printf()
to the console when the "badrate" variable is being read to
initialize the console --> deadlock.

> If anyone know something about this problem, any help is greatly
> appreciated.

Just don't do it.

Best regards,

Wolfgang Denk

--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If a group of N persons implements a COBOL compiler, there will be
N-1 passes. Someone in the group has to be the manager. - T. Cheatham