21 Aug, 2017

1 commit

  • With the change to the environment code to remove the common init stage
    of pointing to the default environment and setting it as valid, combined
    with the change to switch gd->env_valid from 0/1/2 to an enum we now
    must set env_valid to one of the enum values rather than an int. And in
    this case, not only was setting it to an int wrong, it was now the wrong
    value. Finally, in the case of ENV_IS_NOWHERE we must still say that
    our envionrment is invalid after init for things to continue to
    function.

    Fixes: 7938822a6b75 ("env: Drop common init() functions")
    Tested-by: Marek Vasut
    Reported-by: Marek Vasut
    Reported-by: Andy Shevchenko
    Signed-off-by: Tom Rini
    ---
    Changes in v3:
    - Actually include changes for env/nowhere.c

    Tom Rini
     

16 Aug, 2017

4 commits


15 Aug, 2017

2 commits

  • Set up a location driver for each supported environment location. At
    present this just points to the global functions and is not used. A
    later patch will switch this over to use private functions in each driver.

    There are several special cases here in various drivers to handle
    peculiarities of certain boards:

    1. Some boards define CONFIG_ENV_IS_IN_FAT and CONFIG_SPL_ENV_SUPPORT but
    do not actually load the environment in SPL. The env load code was
    optimised out before but with the driver, it is not. Therefore a special
    case is added to env/fat.c. The correct fix (depending on board testing
    might be to disable CONFIG_SPL_ENV_SUPPORT.

    2. A similar situations happens with CONFIG_ENV_IS_IN_FLASH. Some boards
    do not actually load the environment in SPL, so to reduce code size we
    need to drop that code. A similar fix may be possible with these boards,
    or it may be possible to adjust the environment CONFIG settings.

    Added to the above is that the CONFIG_SPL_ENV_SUPPORT option does not
    apply when the environment is in flash.

    Obviously the above has been discovered through painful and time-consuming
    trial and error. Hopefully board maintainers can take a look and figure
    out what is actually needed.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • About a quarter of the files in common/ relate to the environment. It
    seems better to put these into their own subdirectory and remove the
    prefix.

    Signed-off-by: Simon Glass
    Reviewed-by: Tom Rini

    Simon Glass