[U-Boot] [PATCH] powerpc/85xx: Relocate env_addr if we CONFIG_SYS_RAMBOOT
Kumar Gala
galak at kernel.crashing.org
Wed Nov 17 16:41:01 CET 2010
We use CONFIG_SYS_RAMBOOT for when boot out of NAND, SPI, SDHC/MMC
and utilize a L2 or L3 cache in SRAM mode. In this case we will
end up changing the cache from SRAM mode back to cache before we
relocate the environment properly in env_relocate().
So we need to manual relocate the env pointer out of SRAM into DDR.
Signed-off-by: Kumar Gala <galak at kernel.crashing.org>
---
arch/powerpc/lib/board.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/arch/powerpc/lib/board.c b/arch/powerpc/lib/board.c
index 2e0749d..5ce9caa 100644
--- a/arch/powerpc/lib/board.c
+++ b/arch/powerpc/lib/board.c
@@ -645,6 +645,18 @@ void board_init_r (gd_t *id, ulong dest_addr)
gd->cpu += dest_addr - CONFIG_SYS_MONITOR_BASE;
#endif
+#if defined(CONFIG_MPC85xx) && defined(CONFIG_SYS_RAMBOOT)
+ /*
+ * We use CONFIG_SYS_RAMBOOT for when boot out of NAND, SPI, SDHC/MMC
+ * and utilize a L2 or L3 cache in SRAM mode. In this case we will
+ * end up changing the cache from SRAM mode back to cache before we
+ * relocate the environment properly in env_relocate().
+ *
+ * So we need to manual relocate the env pointer out of SRAM into DDR.
+ */
+ gd->env_addr += dest_addr - CONFIG_SYS_MONITOR_BASE;
+#endif
+
#ifdef CONFIG_SERIAL_MULTI
serial_initialize();
#endif
--
1.7.2.3
More information about the U-Boot
mailing list