[U-Boot] [PATCH v5] arm: socfpga: fix U-Boot running from fpga OnChip RAM
Simon Goldschmidt
simon.k.r.goldschmidt at gmail.com
Thu Aug 16 07:38:10 UTC 2018
gd->env_addr points to pre-relocation address even after
relocation. This leads to an abort in env_callback_init
when loading the environment.
Fix this by enabling CONFIG_SYS_EXTRA_ENV_RELOC.
Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt at gmail.com>
---
Changes in v5:
Improve comments
Changes in v4:
enable this fix for all socfpga, not for gen5 only
Changes in v3:
this patch is new in v3
Changes in v2:
None
include/configs/socfpga_common.h | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/include/configs/socfpga_common.h b/include/configs/socfpga_common.h
index 8ebf6b85fe..8b9f0427c0 100644
--- a/include/configs/socfpga_common.h
+++ b/include/configs/socfpga_common.h
@@ -284,6 +284,18 @@ unsigned int cm_get_qspi_controller_clk_hz(void);
#define CONFIG_SPL_STACK CONFIG_SYS_SPL_MALLOC_START
#endif
+/*
+ * When U-Boot is started from FPGA, prevent gd->env_addr to point into
+ * FPGA OnChip RAM after relocation
+ */
+#define CONFIG_SYS_EXTRA_ENV_RELOC
+/*
+ * CONFIG_SYS_EXTRA_ENV_RELOC code needs this to calculate the relocation
+ * offset for gd->env_addr. Since this is based on gd->relocaddr, we need
+ * to use CONFIG_SYS_TEXT_BASE here.
+ */
+#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
+
/* Extra Environment */
#ifndef CONFIG_SPL_BUILD
--
2.17.1
More information about the U-Boot
mailing list