Hi Philipp, On 05/16/2017 07:16 AM, Philipp Tomsich wrote: > This introduces the ability to override the environment offets from the > device tree by setting the following nodes in '/config': > 'u-boot,mmc-env-offset' - overrides CONFIG_ENV_OFFSET > 'u-boot,mmc-env-offset-redundant' > - overrides CONFIG_ENV_OFFSET_REDUND > > To keep with the previous logic, the CONFIG_* defines still need to > be available and the statically defined values become the defaults, > when the corresponding properties are not set in the device-tree. > > Signed-off-by: Philipp Tomsich <philipp.toms...@theobroma-systems.com> > Acked-by: Simon Glass <s...@chromium.org>
I'm doing check this patches..after building,,if there is no problem, i will pick. Thanks! Best Regards, Jaehoon Chung > --- > > Changes in v4: > - change the test for OF_CONTROL to use CONFIG_IS_ENABLED to pick up > the differece between SPL_OF_CONTROL and OF_CONTROL > > Changes in v3: > - changes the config-check to depend on CONFIG_OF_CONTROL to detect > if 'fdtdec_get_config_int' is available > > Changes in v2: None > > common/env_mmc.c | 31 +++++++++++++++++++++++++++---- > 1 file changed, 27 insertions(+), 4 deletions(-) > > diff --git a/common/env_mmc.c b/common/env_mmc.c > index a5d14d4..45d95a1 100644 > --- a/common/env_mmc.c > +++ b/common/env_mmc.c > @@ -10,6 +10,7 @@ > > #include <command.h> > #include <environment.h> > +#include <fdtdec.h> > #include <linux/stddef.h> > #include <malloc.h> > #include <memalign.h> > @@ -36,15 +37,37 @@ DECLARE_GLOBAL_DATA_PTR; > #define CONFIG_ENV_OFFSET 0 > #endif > > -__weak int mmc_get_env_addr(struct mmc *mmc, int copy, u32 *env_addr) > +#if CONFIG_IS_ENABLED(OF_CONTROL) > +static inline s64 mmc_offset(int copy) > { > - s64 offset; > + const char *propname = "u-boot,mmc-env-offset"; > + s64 defvalue = CONFIG_ENV_OFFSET; > > - offset = CONFIG_ENV_OFFSET; > -#ifdef CONFIG_ENV_OFFSET_REDUND > +#if defined(CONFIG_ENV_OFFSET_REDUND) > + if (copy) { > + propname = "u-boot,mmc-env-offset-redundant"; > + defvalue = CONFIG_ENV_OFFSET_REDUND; > + } > +#endif > + > + return fdtdec_get_config_int(gd->fdt_blob, propname, defvalue); > +} > +#else > +static inline s64 mmc_offset(int copy) > +{ > + s64 offset = CONFIG_ENV_OFFSET; > + > +#if defined(CONFIG_ENV_OFFSET_REDUND) > if (copy) > offset = CONFIG_ENV_OFFSET_REDUND; > #endif > + return offset; > +} > +#endif > + > +__weak int mmc_get_env_addr(struct mmc *mmc, int copy, u32 *env_addr) > +{ > + s64 offset = mmc_offset(copy); > > if (offset < 0) > offset += mmc->capacity; > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot