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 <mr.bossman...@gmail.com> Reviewed-by: Tom Rini <tr...@konsulko.com> Reviewed-by: Caleb Connolly <caleb.conno...@linaro.org> --- V1 -> V2: - Drop "default n" - s/ram/RAM/g --- Kconfig | 6 ++++++ common/board_f.c | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/Kconfig b/Kconfig index 6379a454166..1b35ddc36a3 100644 --- a/Kconfig +++ b/Kconfig @@ -443,6 +443,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 99616fdac80..d51696b8eda 100644 --- a/common/board_f.c +++ b/common/board_f.c @@ -476,6 +476,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 -- 2.49.0