Hi, On 04/25/2017 04:39 PM, 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>
There are build error with some configs.. +common/built-in.o: In function `mmc_offset': +common/env_mmc.c:53: undefined reference to `fdtdec_get_config_int' Best Regards, Jaehoon Chung > > --- > > 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..65c5690 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) > +#ifdef CONFIG_OF_LIBFDT > +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