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 <[email protected]> --- 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 _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

