
From: Stephen Warren swarren@nvidia.com
This can be useful for generic scripts. For example, rather than hard- coding a script to ext2load tegra-harmony.dtb, it could load ${soc}-${board}.dtb and hence not need adjustments to run on multiple boards.
Signed-off-by: Stephen Warren swarren@nvidia.com --- v2: * Pass values via config.h instead of command-line * Use a single CONFIG option to enable this feature * Simplify names of the environment variables * add README entry describing CONFIG_ENV_VARS_UBOOT_CONFIG --- README | 6 ++++++ common/env_common.c | 11 +++++++++++ common/env_embedded.c | 11 +++++++++++ mkconfig | 8 ++++++++ 4 files changed, 36 insertions(+), 0 deletions(-)
diff --git a/README b/README index 6919392..27221bd 100644 --- a/README +++ b/README @@ -2203,6 +2203,12 @@ The following options need to be configured: the environment like the "source" command or the boot command first.
+ CONFIG_ENV_VARS_UBOOT_CONFIG + + Define this in order to add variables describing the + U-Boot build configuration to the default environment. + These will be named arch, cpu, board, vendor, and soc. + - DataFlash Support: CONFIG_HAS_DATAFLASH
diff --git a/common/env_common.c b/common/env_common.c index c33d22d..81c7395 100644 --- a/common/env_common.c +++ b/common/env_common.c @@ -116,6 +116,17 @@ const uchar default_environment[] = { #if defined(CONFIG_PCI_BOOTDELAY) && (CONFIG_PCI_BOOTDELAY > 0) "pcidelay=" MK_STR(CONFIG_PCI_BOOTDELAY) "\0" #endif +#ifdef CONFIG_ENV_VARS_UBOOT_CONFIG + "arch=" ARCH "\0" + "cpu=" CPU "\0" + "board=" BOARD "\0" +#ifdef VENDOR + "vendor=" VENDOR "\0" +#endif +#ifdef SOC + "soc=" SOC "\0" +#endif +#endif #ifdef CONFIG_EXTRA_ENV_SETTINGS CONFIG_EXTRA_ENV_SETTINGS #endif diff --git a/common/env_embedded.c b/common/env_embedded.c index 80fb29d..1a63894 100644 --- a/common/env_embedded.c +++ b/common/env_embedded.c @@ -179,6 +179,17 @@ env_t environment __PPCENV__ = { #if defined(CONFIG_PCI_BOOTDELAY) && (CONFIG_PCI_BOOTDELAY > 0) "pcidelay=" MK_STR(CONFIG_PCI_BOOTDELAY) "\0" #endif +#ifdef CONFIG_ENV_VARS_UBOOT_CONFIG + "arch=" ARCH "\0" + "cpu=" CPU "\0" + "board=" BOARD "\0" +#ifdef VENDOR + "vendor=" VENDOR "\0" +#endif +#ifdef SOC + "soc=" SOC "\0" +#endif +#endif #ifdef CONFIG_EXTRA_ENV_SETTINGS CONFIG_EXTRA_ENV_SETTINGS #endif diff --git a/mkconfig b/mkconfig index 438530b..e74ad79 100755 --- a/mkconfig +++ b/mkconfig @@ -161,6 +161,14 @@ for i in ${TARGETS} ; do echo "#define CONFIG_${i}" >>config.h ; done
+echo "#define ARCH "${arch}"" >> config.h +echo "#define CPU "${cpu}"" >> config.h +echo "#define BOARD "${board}"" >> config.h + +[ "${vendor}" ] && echo "#define VENDOR "${vendor}"" >> config.h + +[ "${soc}" ] && echo "#define SOC "${soc}"" >> config.h + cat << EOF >> config.h #define CONFIG_BOARDDIR board/$BOARDDIR #include <config_cmd_defaults.h>