[PATCH v5 5/7] common: Add an option to relocate on ram top

Marek Vasut marek.vasut at mailbox.org
Fri Jun 5 00:34:11 CEST 2026


On 6/4/26 9:37 AM, Ilias Apalodimas wrote:
> Right now we only relocate u-boot to the top of the first
> memory bank unless the board specific code overwrites it.
> This is problematic when loading big binaries as it
> fragments the contiguous memory space for no apparent reason.
> 
> On certain platforms, it is currently not possible to relocate U-Boot
> above the 32bit boundary, due to various dependencies on content located
> below the 32bit boundary. One such example is ethernet, where the packet
> buffer built into U-Boot binary is placed below the 32bit boundary and
> allows loading of data via ethernet even above 32bit boundary due to
> memory copy from the packet buffer to the destination location.
> 
> A previous patch moves the bi_dram[] info from bd to gd and make
> the memory bank information available early. So move the
> dram_init_banksize() INITCALL before the relocation address calculation
> and use it to derive the address.
> 
> Also add a Kconfig option and allow the common code to relocate U-Boot
> to the top of the last discovered bank.
> It's worth noting that this patch changes when dram_init_banksize()
> is called. It's now called  much earlier in the board init process.
> That is a significant ordering change for every board with a custom
> dram_init_banksize(), and it is unconditional (not gated on RELOC_ADDR_TOP).
> 
> Signed-off-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>

Reviewed-by: Marek Vasut <marek.vasut+renesas at mailbox.org>


More information about the U-Boot mailing list