summaryrefslogtreecommitdiff
path: root/nand_spl
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <lg@denx.de>2009-05-18 14:07:22 (GMT)
committerScott Wood <scottwood@freescale.com>2009-07-07 22:58:07 (GMT)
commitb74ab737369bbbe66c15cbe6c0d0b6a351b00c96 (patch)
treedb8ac354c673912879ea5632114b18f17a2d53cc /nand_spl
parent378adfcdf4bbd77ee4cbc3276d4733e218308a21 (diff)
downloadu-boot-b74ab737369bbbe66c15cbe6c0d0b6a351b00c96.tar.xz
nand_spl: read environment early, when booting from NAND using nand_spl
Currently, when booting from NAND using nand_spl, in the beginning the default environment is used until later in boot process the dynamic environment is read out. This way environment variables that must be interpreted early, like the baudrate or "silent", cannot be modified dynamically and remain at their default values. Fix this problem by reading out main and redundand (if used) copies of the environment in the nand_spl code. Signed-off-by: Guennadi Liakhovetski <lg@denx.de> Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'nand_spl')
-rw-r--r--nand_spl/nand_boot.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/nand_spl/nand_boot.c b/nand_spl/nand_boot.c
index c7eadad..be2e69c 100644
--- a/nand_spl/nand_boot.c
+++ b/nand_spl/nand_boot.c
@@ -246,6 +246,16 @@ void nand_boot(void)
ret = nand_load(&nand_info, CONFIG_SYS_NAND_U_BOOT_OFFS, CONFIG_SYS_NAND_U_BOOT_SIZE,
(uchar *)CONFIG_SYS_NAND_U_BOOT_DST);
+#ifdef CONFIG_NAND_ENV_DST
+ nand_load(&nand_info, CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE,
+ (uchar *)CONFIG_NAND_ENV_DST);
+
+#ifdef CONFIG_ENV_OFFSET_REDUND
+ nand_load(&nand_info, CONFIG_ENV_OFFSET_REDUND, CONFIG_ENV_SIZE,
+ (uchar *)CONFIG_NAND_ENV_DST + CONFIG_ENV_SIZE);
+#endif
+#endif
+
if (nand_chip.select_chip)
nand_chip.select_chip(&nand_info, -1);