summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Taube <[email protected]>2025-04-09 14:08:33 -0400
committerTom Rini <[email protected]>2025-04-15 11:21:30 -0600
commitf9d788d925574109ecf239a16def9450cd4c3ecd (patch)
tree63e1531b38ae065f3c7f9c76c6c710026c2a6809
parent203e5f3f02caf113b5df11fe680c8503d671bf1d (diff)
common: Add CONFIG_SKIP_RELOCATE
Add a check for CONFIG_SKIP_RELOCATE in reserve_uboot to skip the relocation of the U-Boot image. CONFIG_SKIP_RELOCATE skips relocation of U-Boot to the end of RAM allowing for systems that have extremely limited RAM to run U-Boot. Signed-off-by: Jesse Taube <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
-rw-r--r--Kconfig6
-rw-r--r--common/board_f.c7
2 files changed, 13 insertions, 0 deletions
diff --git a/Kconfig b/Kconfig
index a508c5430f0..51358633762 100644
--- a/Kconfig
+++ b/Kconfig
@@ -454,6 +454,12 @@ config TOOLS_DEBUG
it is possible to set breakpoints on particular lines, single-step
debug through the source code, etc.
+config SKIP_RELOCATE
+ bool "Skips relocation of U-Boot to end of RAM"
+ help
+ Skips relocation of U-Boot allowing for systems that have extremely
+ limited RAM to run U-Boot.
+
endif # EXPERT
config PHYS_64BIT
diff --git a/common/board_f.c b/common/board_f.c
index e4e17dd717e..bff465d9cb2 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -477,6 +477,13 @@ static int reserve_trace(void)
static int reserve_uboot(void)
{
+ /*
+ * This should be the first place GD_FLG_SKIP_RELOC is read from.
+ * Set GD_FLG_SKIP_RELOC flag if CONFIG_SKIP_RELOCATE is enabled.
+ */
+ if (CONFIG_IS_ENABLED(SKIP_RELOCATE))
+ gd->flags |= GD_FLG_SKIP_RELOC;
+
if (!(gd->flags & GD_FLG_SKIP_RELOC)) {
/*
* reserve memory for U-Boot code, data & bss