17 Jul, 2019

1 commit

  • Add env_get_offset interface to override static CONFIG_ENV_OFFSET,
    and update env location driver to use env_get_offset. So for different
    storage medium, we are able to store the env at different offset.

    We don't support this feature when CONFIG_ENV_IS_EMBEDDED is set.

    Signed-off-by: Ye Li
    (cherry picked from commit 5b12d7cabb14bab9a95af7460b36c6c85db1b328)

    Ye Li
     

24 May, 2019

1 commit

  • Fix below build warning and errors:
    env/sata.c: In function ‘env_sata_save’:
    env/sata.c:59:9: warning: implicit declaration of function ‘sata_get_dev’ [-Wimplicit-function-declaration]
    sata = sata_get_dev(env_sata);
    ^~~~~~~~~~~~
    env/sata.c:59:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
    sata = sata_get_dev(env_sata);
    ^
    env/sata.c: In function ‘env_sata_load’:
    env/sata.c:101:10: warning: ‘return’ with a value, in function returning void
    return -EIO;
    ^
    env/sata.c:94:13: note: declared here
    static void env_sata_load(void)
    ^~~~~~~~~~~~~
    env/sata.c:105:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
    sata = sata_get_dev(env_sata);
    ^
    env/sata.c:108:10: warning: ‘return’ with a value, in function returning void
    return -EIO;
    ^
    env/sata.c:94:13: note: declared here
    static void env_sata_load(void)
    ^~~~~~~~~~~~~
    env/sata.c:113:10: warning: ‘return’ with a value, in function returning void
    return -EIO;
    ^
    env/sata.c:94:13: note: declared here
    static void env_sata_load(void)
    ^~~~~~~~~~~~~
    env/sata.c:116:9: warning: ‘return’ with a value, in function returning void
    return env_import(buf, 1);
    ^~~~~~~~~~~~~~~~~~
    env/sata.c:94:13: note: declared here
    static void env_sata_load(void)
    ^~~~~~~~~~~~~
    env/sata.c: At top level:
    env/sata.c:120:14: error: ‘ENVL_ESATA’ undeclared here (not in a function)
    .location = ENVL_ESATA,
    ^~~~~~~~~~
    env/sata.c:122:11: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
    .load = env_sata_load,

    Signed-off-by: Ye Li

    Ye Li
     

18 Jan, 2019

1 commit

  • Patch fixes build error when enabling CONFIG_ENV_IS_IN_SPI_FLAS
    and CONFIG_ENV_IS_IN_MMC at the same time mentioned issue in
    below link:

    Refer: https://lists.denx.de/pipermail/u-boot/2018-February/319565.html

    build error when enabling CONFIG_ENV_IS_IN_SPI_FLASH and
    CONFIG_ENV_IS_IN_MMC at the same time.

    Signed-off-by: Rajesh Bhagat
    Reviewed-by: York Sun

    Rajesh Bhagat
     

05 Dec, 2018

1 commit


20 Jul, 2018

2 commits

  • The function set_default_env() sets the hashtable flags for import_r().
    Formally set_default_env() doesn't accept flags from its callers. In
    practice the caller can (un)set the H_INTERACTIVE flag, but it has to be
    done using the first character of the function's string argument. Other
    flags like H_FORCE can't be set by the caller.

    Change the function to accept flags argument. The benefits are:
    1. The caller will have to explicitly set the H_INTERACTIVE flag,
    instead of un-setting it using a special char in a string.
    2. Add the ability to propagate flags from the caller to himport(),
    especially the H_FORCE flag from do_env_default() in nvedit.c that
    currently gets ignored for "env default -a -f" commands.
    3. Flags and messages will not be coupled together. A caller will be
    able to set flags without passing a string and vice versa.

    Please note:
    The propagation of H_FORCE from do_env_default() does not introduce any
    functional changes, because currently himport_r() is set to destroy the
    old environment regardless if H_FORCE flag is set or not. More changes
    are needed to utilize the propagation of H_FORCE.

    Signed-off-by: Yaniv Levinsky
    Acked-by: Igor Grinberg

    Yaniv Levinsky
     
  • The env_flag in do_env_default() doesn't get propagated and therefore
    gets ignored by himport_r(). This breaks to ability to "forcibly" reset
    variables to their default values using the environment command.

    Scenario example of the problem:
    # setenv kernel uImage
    # setenv .flags kernel:so
    # env default -f kernel
    ## Error: Can't overwrite "kernel"
    himport_r: can't insert "kernel=zImage" into hash table

    Change the call path so it will pass the flag correctly.

    Signed-off-by: Yaniv Levinsky
    Acked-by: Igor Grinberg

    Yaniv Levinsky
     

13 Jun, 2018

1 commit


07 May, 2018

1 commit

  • When U-Boot started using SPDX tags we were among the early adopters and
    there weren't a lot of other examples to borrow from. So we picked the
    area of the file that usually had a full license text and replaced it
    with an appropriate SPDX-License-Identifier: entry. Since then, the
    Linux Kernel has adopted SPDX tags and they place it as the very first
    line in a file (except where shebangs are used, then it's second line)
    and with slightly different comment styles than us.

    In part due to community overlap, in part due to better tag visibility
    and in part for other minor reasons, switch over to that style.

    This commit changes all instances where we have a single declared
    license in the tag as both the before and after are identical in tag
    contents. There's also a few places where I found we did not have a tag
    and have introduced one.

    Signed-off-by: Tom Rini

    Tom Rini
     

17 Apr, 2018

1 commit


09 Apr, 2018

1 commit

  • In order that we can use eth_env_* even when CONFIG_NET isn't set, move
    these functions to environment code from net code.

    This fixes failures such as:

    board/ti/am335x/built-in.o: In function `board_late_init':
    board/ti/am335x/board.c:752: undefined reference to `eth_env_set_enetaddr'
    u-boot/board/ti/am335x/board.c:766: undefined reference to `eth_env_set_enetaddr'

    which caters for use cases such as:

    commit f411b5cca48f ("board: am335x: Always set eth/eth1addr environment
    variable")

    when Ethernet is required in Linux, but not U-Boot.

    Signed-off-by: Alex Kiernan

    Alex Kiernan
     

17 Feb, 2018

2 commits

  • With multiple environments, the 'get_char' callback for env
    drivers does not really make sense any more because it is
    only supported by two drivers (eeprom and nvram).

    To restore single character loading for these drivers,
    override 'env_get_char_spec'.

    Signed-off-by: Simon Goldschmidt
    Acked-by: Maxime Ripard

    Goldschmidt Simon
     
  • Commit 7d714a24d725 ("env: Support multiple environments") added
    static variable env_load_location. When saving environmental
    variables, this variable is presumed to have the value set before.
    In case the value was set before relocation and U-Boot runs from a
    NOR flash, this variable wasn't writable. This causes failure when
    saving the environment. To save this location, global data must be
    used instead.

    Signed-off-by: York Sun
    CC: Maxime Ripard

    York Sun
     

01 Feb, 2018

1 commit

  • There is more common code in mmc, nand and ubi env drivers that
    can be shared by moving to env_import_redund.

    For this, a status/error value whether the buffers were loaded
    are passed as additional parameters to env_import_redund.
    Ideally, these are already returned to the env driver by the
    storage driver. This is the case for mmc, nand and ubi, so for
    this change, code deduplicated.

    Signed-off-by: Simon Goldschmidt
    Acked-by: Maxime Ripard

    Simon Goldschmidt
     

27 Jan, 2018

2 commits

  • In preparation for the multiple environment support, let's introduce two
    new parameters to the environment driver lookup function: the priority and
    operation.

    The operation parameter is meant to identify, obviously, the operation you
    might want to perform on the environment.

    The priority is a number passed to identify the environment priority you
    want to retrieve. The lowest priority parameter (0) will be the primary
    source.

    Combining the two parameters allow you to support multiple environments
    through different priorities, and to change those priorities between read
    and writes operations.

    This is especially useful to implement migration mechanisms where you want
    to always use the same environment first, be it to read or write, while the
    common case is more likely to use the same environment it has read from to
    write it to.

    Signed-off-by: Maxime Ripard

    Maxime Ripard
     
  • The nvedit command is the only user of env_driver_lookup_default outside of
    the environment code itself, and it uses it only to print the environment
    it's about to save to during env save.

    As we're about to rework the environment to be able to handle multiple
    environment sources, we might not have an idea of what environment backend
    is going to be used before trying (and possibly failing for some).

    Therefore, it makes sense to remove that message and move it to the
    env_save function itself. As a side effect, we also can get rid of the call
    to env_driver_lookup_default that is also about to get refactored.

    Reviewed-by: Andre Przywara
    Reviewed-by: Lukasz Majewski
    Reviewed-by: Simon Glass
    Signed-off-by: Maxime Ripard

    Maxime Ripard
     

21 Nov, 2017

1 commit


16 Oct, 2017

1 commit


16 Aug, 2017

8 commits


15 Aug, 2017

3 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
     
  • At present we have three states for the environment, numbered 0, 1 and 2.
    Add an enum to record this to avoid open-coded values.

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

    Simon Glass
     
  • These functions are not used outside this file. Make them static and order
    them to avoid forward declarations.

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

    Simon Glass
     

23 Jul, 2017

1 commit

  • All current environments that implement redundancy use almost
    identical implementations. This patch implements the env_nand
    implementation as a function in env_common, and updates the
    env_export function to export an env_nand-style 'flags' field by
    default.

    Signed-off-by: Fiach Antaw
    Reviewed-by: Tom Rini

    Fiach Antaw
     

07 Apr, 2017

1 commit

  • The environment location is something that might change per board
    (depending on what storage options are availaible there) or depending on
    the user choice (when we have several options).

    Instead of hardcoding it in our configuration header, create a Kconfig
    choice with the options we use for now, and the symbols that depend on it.

    Once done, also remove the irrelevant sunxi defines.

    Signed-off-by: Maxime Ripard
    Reviewed-by: Tom Rini
    Reviewed-by: Jagan Teki

    Maxime Ripard
     

07 Oct, 2016

1 commit


02 Aug, 2014

2 commits


22 Mar, 2014

2 commits


24 Jul, 2013

1 commit


14 Jun, 2013

1 commit

  • The commit d196bd8 (env_mmc: add support for redundant environment)
    introduce the following compile error when enable redundant
    environment support with MMC
    ---88---

    Add this patch to fix it

    Signed-off-by: Bo Shen
    Reviewed-by: Michael Heimpold
    Signed-off-by: Andy Fleming

    Bo Shen
     

12 Apr, 2013

2 commits


14 Dec, 2012

1 commit