summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorAlper Nebi Yasak <[email protected]>2022-06-18 15:13:09 +0300
committerSimon Glass <[email protected]>2022-06-28 03:09:52 +0100
commitd8830cf84035120562bb490be276fab9e43d6414 (patch)
treeda462321dd8915197c5fa45e77e3d7662c99b93f /tools
parent5204823c81c2be4ef3abfcaae351401f8dd5f058 (diff)
spl: binman: Split binman symbols support from enabling binman
Enabling CONFIG_BINMAN makes binman run after a build to package any images specified in the device-tree. It also enables a mechanism for SPL/TPL to declare and use special linker symbols that refer to other entries in the same binman image. A similar feature that gets this info from the device-tree exists for U-Boot proper, but it is gated behind a CONFIG_BINMAN_FDT unlike the symbols. Confusingly, CONFIG_SPL/TPL_BINMAN_SYMBOLS also exist. These configs don't actually enable/disable the symbols mechanism as one would expect, but declare some symbols for U-Boot using this mechanism. Reuse the BINMAN_SYMBOLS configs to make them toggle the symbols mechanism, and declare symbols for the U-Boot phases in a dependent BINMAN_UBOOT_SYMBOLS config. Extend it to cover symbols of all phases. Update the config prompt and help message to make it clearer about this. Fix binman test binaries to work with CONFIG_IS_ENABLED(BINMAN_SYMBOLS). Co-developed-by: Peng Fan <[email protected]> [Alper: New config for phase symbols, update Kconfigs, commit message] Signed-off-by: Alper Nebi Yasak <[email protected]>
Diffstat (limited to 'tools')
-rw-r--r--tools/binman/test/Makefile2
-rw-r--r--tools/binman/test/generated/autoconf.h3
-rw-r--r--tools/binman/test/u_boot_binman_syms.c2
-rw-r--r--tools/binman/test/u_boot_binman_syms_size.c2
4 files changed, 6 insertions, 3 deletions
diff --git a/tools/binman/test/Makefile b/tools/binman/test/Makefile
index 57057e2d588..bea8567c9b4 100644
--- a/tools/binman/test/Makefile
+++ b/tools/binman/test/Makefile
@@ -21,7 +21,7 @@ CC = $(CROSS_COMPILE)gcc
OBJCOPY = $(CROSS_COMPILE)objcopy
VPATH := $(SRC)
-CFLAGS := -march=i386 -m32 -nostdlib -I $(SRC)../../../include \
+CFLAGS := -march=i386 -m32 -nostdlib -I $(SRC)../../../include -I $(SRC) \
-Wl,--no-dynamic-linker
LDS_UCODE := -T $(SRC)u_boot_ucode_ptr.lds
diff --git a/tools/binman/test/generated/autoconf.h b/tools/binman/test/generated/autoconf.h
new file mode 100644
index 00000000000..6a23039f469
--- /dev/null
+++ b/tools/binman/test/generated/autoconf.h
@@ -0,0 +1,3 @@
+#define CONFIG_BINMAN 1
+#define CONFIG_SPL_BUILD 1
+#define CONFIG_SPL_BINMAN_SYMBOLS 1
diff --git a/tools/binman/test/u_boot_binman_syms.c b/tools/binman/test/u_boot_binman_syms.c
index 37fc339ce84..89fee5567e1 100644
--- a/tools/binman/test/u_boot_binman_syms.c
+++ b/tools/binman/test/u_boot_binman_syms.c
@@ -5,7 +5,7 @@
* Simple program to create some binman symbols. This is used by binman tests.
*/
-#define CONFIG_BINMAN
+#include <linux/kconfig.h>
#include <binman_sym.h>
binman_sym_declare(unsigned long, u_boot_spl_any, offset);
diff --git a/tools/binman/test/u_boot_binman_syms_size.c b/tools/binman/test/u_boot_binman_syms_size.c
index 7224bc1863c..c4a053f96f1 100644
--- a/tools/binman/test/u_boot_binman_syms_size.c
+++ b/tools/binman/test/u_boot_binman_syms_size.c
@@ -5,7 +5,7 @@
* Simple program to create some binman symbols. This is used by binman tests.
*/
-#define CONFIG_BINMAN
+#include <linux/kconfig.h>
#include <binman_sym.h>
binman_sym_declare(char, u_boot_spl, pos);