diff options
| author | Allen Martin <amartin@nvidia.com> | 2012-12-19 13:02:36 -0800 | 
|---|---|---|
| committer | Allen Martin <amartin@nvidia.com> | 2012-12-19 13:02:36 -0800 | 
| commit | a098cf41fdb2a6607c675f7fe4f3164617c9367e (patch) | |
| tree | b37acb36f65909e6f74cc537d73efd883a1485a6 /arch/x86/lib/init_wrappers.c | |
| parent | b8a7c467960ffb4d5a5e1eef5f7783fb6f594542 (diff) | |
| parent | 095728803eedfce850a2f85828f79500cb09979e (diff) | |
| download | olio-uboot-2014.01-a098cf41fdb2a6607c675f7fe4f3164617c9367e.tar.xz olio-uboot-2014.01-a098cf41fdb2a6607c675f7fe4f3164617c9367e.zip | |
Merge remote-tracking branch 'u-boot/master' into u-boot-arm-merged
Conflicts:
	README
	arch/arm/cpu/armv7/exynos/clock.c
	board/samsung/universal_c210/universal.c
	drivers/misc/Makefile
	drivers/power/power_fsl.c
	include/configs/mx35pdk.h
	include/configs/mx53loco.h
	include/configs/seaboard.h
Diffstat (limited to 'arch/x86/lib/init_wrappers.c')
| -rw-r--r-- | arch/x86/lib/init_wrappers.c | 28 | 
1 files changed, 27 insertions, 1 deletions
| diff --git a/arch/x86/lib/init_wrappers.c b/arch/x86/lib/init_wrappers.c index 71449fe6f..cca018fa9 100644 --- a/arch/x86/lib/init_wrappers.c +++ b/arch/x86/lib/init_wrappers.c @@ -21,6 +21,7 @@   * MA 02111-1307 USA   */  #include <common.h> +#include <environment.h>  #include <serial.h>  #include <kgdb.h>  #include <scsi.h> @@ -36,10 +37,35 @@ int serial_initialize_r(void)  	return 0;  } +/* + * Tell if it's OK to load the environment early in boot. + * + * If CONFIG_OF_CONFIG is defined, we'll check with the FDT to see + * if this is OK (defaulting to saying it's not OK). + * + * NOTE: Loading the environment early can be a bad idea if security is + *       important, since no verification is done on the environment. + * + * @return 0 if environment should not be loaded, !=0 if it is ok to load + */ +static int should_load_env(void) +{ +#ifdef CONFIG_OF_CONTROL +	return fdtdec_get_config_int(gd->fdt_blob, "load-environment", 0); +#elif defined CONFIG_DELAY_ENVIRONMENT +	return 0; +#else +	return 1; +#endif +} +  int env_relocate_r(void)  {  	/* initialize environment */ -	env_relocate(); +	if (should_load_env()) +		env_relocate(); +	else +		set_default_env(NULL);  	return 0;  } |