• Mario Schuknecht's avatar
    env_sf: Fix recovery default · 5e8397dd
    Mario Schuknecht authored
    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: default avatarMario Schuknecht <mario.schuknecht@dresearch-fe.de>
    5e8397dd
env_sf.c 7.13 KB