arm: relocate: Introduce data-only relocation mode

Introduce new mode of relocation which relocates only data, not code.
This is mainly meant to relocate data to read-write portion of the RAM,
while the code remains in read-only portion of the RAM from which it is
allowed to execute. This split configuration is present on various secure
cores.

The result of the relocation is U-Boot running at its original address,
data relocated to the end of DRAM, but with added read-write area offset.
The U-Boot binary area is not reserved from the end of the DRAM in this
relocation mode, because U-Boot itself is not relocated.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
This commit is contained in:
Marek Vasut
2026-03-16 00:54:05 +01:00
committed by Tom Rini
parent e204058607
commit d9eee3d178
4 changed files with 47 additions and 1 deletions

View File

@@ -462,7 +462,7 @@ static int reserve_uboot(void)
if (CONFIG_IS_ENABLED(SKIP_RELOCATE))
gd->flags |= GD_FLG_SKIP_RELOC;
if (!(gd->flags & GD_FLG_SKIP_RELOC)) {
if (!(gd->flags & GD_FLG_SKIP_RELOC) && !CONFIG_IS_ENABLED(SKIP_RELOCATE_CODE)) {
/*
* reserve memory for U-Boot code, data & bss
* round down to next 4 kB limit