]> git.kernelconcepts.de Git - karo-tx-uboot.git/commit
env_sf: Fix recovery default
authorMario Schuknecht <mario.schuknecht@dresearch-fe.de>
Tue, 24 Mar 2015 07:59:00 +0000 (08:59 +0100)
committerLothar Waßmann <LW@KARO-electronics.de>
Tue, 1 Sep 2015 12:38:16 +0000 (14:38 +0200)
commitc44285d18e1a5e748b4fa719fd9b81c8f0969936
tree3554933ae72baf24bfc3e0a67a8e3193adeed864
parent42c910cf8a1bc9fad46fb28249dab46220f48b97
env_sf: Fix recovery default

The u-boot environment is redundantly stored in a NOR flash on our boards.
Redundant means that there are two places to store the environment. But only
one of the two is active. I discovered that on one board the u-boot (env_sf)
uses the environment from the second place and the Kernel (fw_printenv) uses
the environment from the first place.
To decide which is the active environment there is a byte inside the
environment. 1 means active and 0 means obsolete. But on that board both
environments had have a 1. This can happen if a power loss or reset occurs
during writing the environment. In this situation the u-boot (env_sf)
implementation uses the second environment as default. But the Kernel
(fw_printenv) implementation uses the first environment as default.

This commit corrects the default in the u-boot env_sf implementation when a
problem was detected. Now the recovery default is the same like in all other
environment implementations. E.g. fw_printenv and env_flash. This ensures that
u-boot and Kernel use the same environment.

Signed-off-by: Mario Schuknecht <mario.schuknecht@dresearch-fe.de>
common/env_sf.c