aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2021-01-24 10:06:03 -0700
committerBin Meng <bmeng.cn@gmail.com>2021-02-01 15:11:41 +0800
commit86c372af1abd02f6d81c287159e5d80bb27b8ae4 (patch)
tree0debd858c894d13c390efbf483fc1b52b199ec35
parent6754393d260cf779a1c441a58c305a6b62e6a82d (diff)
downloadu-boot-86c372af1abd02f6d81c287159e5d80bb27b8ae4.zip
u-boot-86c372af1abd02f6d81c287159e5d80bb27b8ae4.tar.gz
u-boot-86c372af1abd02f6d81c287159e5d80bb27b8ae4.tar.bz2
x86: spl: Add a function to find the text base
It is useful to know the TEXT_BASE value for the image being loaded in TPL/SPL. Add a new spl_get_image_text_base() function to handle this. Make use of this in the x86 SPL handler, instead of having the logic there. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
-rw-r--r--common/spl/spl.c6
-rw-r--r--include/spl.h10
2 files changed, 16 insertions, 0 deletions
diff --git a/common/spl/spl.c b/common/spl/spl.c
index 8cb6f3d..cdd7b05 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -144,6 +144,12 @@ ulong spl_get_image_size(void)
binman_sym(ulong, u_boot_any, size);
}
+ulong spl_get_image_text_base(void)
+{
+ return spl_phase() == PHASE_TPL ? CONFIG_SPL_TEXT_BASE :
+ CONFIG_SYS_TEXT_BASE;
+}
+
/*
* Weak default function for board specific cleanup/preparation before
* Linux boot. Some boards/platforms might not need it, so just provide
diff --git a/include/spl.h b/include/spl.h
index faffeb5..e172500 100644
--- a/include/spl.h
+++ b/include/spl.h
@@ -255,6 +255,16 @@ ulong spl_get_image_pos(void);
ulong spl_get_image_size(void);
/**
+ * spl_get_image_text_base() - get the text base of the next phase
+ *
+ * This returns the address that the next stage is linked to run at, i.e.
+ * CONFIG_SPL_TEXT_BASE or CONFIG_SYS_TEXT_BASE
+ *
+ * @return text-base address
+ */
+ulong spl_get_image_text_base(void);
+
+/**
* spl_load_simple_fit_skip_processing() - Hook to allow skipping the FIT
* image processing during spl_load_simple_fit().
*