On 2/28/19 9:33 PM, Simon Goldschmidt wrote: > If SPL pre-reloc stage puts the stack into DDR, U-Boot should be able to > do that, too.
Here you mention SPL pre-reloc stage, while about mid-way through the patch you have a comment talking about SPL post-reloc stage, which one is it ? I think the commit message needs rewording, it's not clear what the patch does based on it. On a separate note, this is likely a fix for current release, right ? Finally , keep in mind the A10 needs to load the FPGA before DRAM becomes available, so the stack shenanigans there become even more nasty. > The reason to do so is that this way, U-Boot initial stack can be larger > than SPL initial stack. In situations where we want to save the SPL > in SRAM for next boot without reloading, this prevents overwriting the > SPL DTB in SRAM if U-Boot stack usage gets too high. > > Signed-off-by: Simon Goldschmidt <simon.k.r.goldschm...@gmail.com> > --- > > include/configs/socfpga_common.h | 20 +++++++++++++------- > 1 file changed, 13 insertions(+), 7 deletions(-) > > diff --git a/include/configs/socfpga_common.h > b/include/configs/socfpga_common.h > index c23b34186a..7ae3db233f 100644 > --- a/include/configs/socfpga_common.h > +++ b/include/configs/socfpga_common.h > @@ -38,12 +38,23 @@ > #if ((CONFIG_SYS_BOOTCOUNT_ADDR > CONFIG_SYS_INIT_RAM_ADDR) && \ > (CONFIG_SYS_BOOTCOUNT_ADDR < (CONFIG_SYS_INIT_RAM_ADDR + \ > CONFIG_SYS_INIT_RAM_SIZE))) > -#define CONFIG_SYS_INIT_SP_ADDR CONFIG_SYS_BOOTCOUNT_ADDR > +#define CONFIG_SPL_STACK CONFIG_SYS_BOOTCOUNT_ADDR > #else > -#define CONFIG_SYS_INIT_SP_ADDR \ > +#define CONFIG_SPL_STACK \ > (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE) > #endif > > +/* > + * U-Boot stack setup: if SPL post-reloc uses DDR stack, use it in pre-reloc > + * phase of U-Boot, too. This prevents overwriting SPL data if stack/heap > usage > + * in U-Boot pre-reloc is higher than in SPL. > + */ > +#if defined(CONFIG_SPL_STACK_R_ADDR) && CONFIG_SPL_STACK_R_ADDR > +#define CONFIG_SYS_INIT_SP_ADDR CONFIG_SPL_STACK_R_ADDR > +#else > +#define CONFIG_SYS_INIT_SP_ADDR CONFIG_SPL_STACK > +#endif > + > #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1 > > /* > @@ -274,11 +285,6 @@ unsigned int cm_get_qspi_controller_clk_hz(void); > #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x40000 > #endif > > -/* > - * Stack setup > - */ > -#define CONFIG_SPL_STACK CONFIG_SYS_INIT_SP_ADDR > - > /* Extra Environment */ > #ifndef CONFIG_SPL_BUILD > > -- Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot