[U-Boot] [PATCH v5] arm: socfpga: fix U-Boot running from fpga OnChip RAM

Marek Vasut marex at denx.de
Thu Aug 16 11:17:38 UTC 2018


On 08/16/2018 09:38 AM, Simon Goldschmidt wrote:
> 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>

I have one last question -- does this somehow influence SPL ?

> ---
> 
> 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
>  
> 


-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list