summaryrefslogtreecommitdiff
path: root/nand_spl/nand_boot.c
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/nand_boot.c
parent378adfcdf4bbd77ee4cbc3276d4733e218308a21 (diff)
downloadu-boot-fsl-qoriq-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/nand_boot.c')
-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);