Almost same approach as done for barebox with commit 6684c552fbd7 ("barebox: add integration of firmware blobs") already.
For some boards it is required to inject files to build dir. This is cleaner and not cluttering your source dir. In U-Boot it seems to work in both ways, injecting to source or build dir, so we opt for build dir. Signed-off-by: Alexander Dahl <a...@thorsis.com> --- platforms/u-boot.firmware.in | 7 +++++++ platforms/u-boot.in | 8 ++++++++ rules/u-boot.make | 20 ++++++++++++++++---- 3 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 platforms/u-boot.firmware.in diff --git a/platforms/u-boot.firmware.in b/platforms/u-boot.firmware.in new file mode 100644 index 000000000..da7f8128f --- /dev/null +++ b/platforms/u-boot.firmware.in @@ -0,0 +1,7 @@ +## SECTION=u_boot_firmware + +# +# This file does only exist to create a defined entry in the "u_boot_firmware" +# section, so that the toplevel Kconfig can include generated/u_boot_firmware.in +# even if no package is in that category. +# diff --git a/platforms/u-boot.in b/platforms/u-boot.in index 9163a8378..5ce7387e4 100644 --- a/platforms/u-boot.in +++ b/platforms/u-boot.in @@ -90,6 +90,14 @@ config U_BOOT_CONFIG endif +menuconfig U_BOOT_FIRMWARE + bool + prompt "integrate firmware blobs " + +if U_BOOT_FIRMWARE +source "generated/u_boot_firmware.in" +endif + config U_BOOT_CUSTOM_MAKE_ENV prompt "Custom (additional) make environment" string diff --git a/rules/u-boot.make b/rules/u-boot.make index e4c963d0c..2a8059170 100644 --- a/rules/u-boot.make +++ b/rules/u-boot.make @@ -36,6 +36,9 @@ endif # Prepare # ---------------------------------------------------------------------------- +U_BOOT_INJECT_PATH := ${PTXDIST_SYSROOT_TARGET}/usr/lib/firmware +U_BOOT_INJECT_OOT := $(call ptx/ifdef, PTXCONF_U_BOOT_BUILD_OOT,YES,NO) + ifdef PTXCONF_U_BOOT_BOOT_SCRIPT U_BOOT_BOOT_SCRIPT_TXT := $(call ptx/in-platformconfigdir, uboot.scr) U_BOOT_BOOT_SCRIPT_BIN := $(call remove_quotes, \ @@ -93,14 +96,23 @@ $(U_BOOT_CONFIG): @exit 1 endif - -ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_LEGACY $(STATEDIR)/u-boot.prepare: @$(call targetinfo) - $(U_BOOT_CONF_ENV) $(MAKE) $(U_BOOT_CONF_OPT) - @$(call touch) + +ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_KCONFIG + @$(call world/prepare, U_BOOT) endif +ifdef PTXCONF_U_BOOT_CONFIGSYSTEM_LEGACY + $(U_BOOT_CONF_ENV) $(MAKE) $(U_BOOT_CONF_OPT) +endif + +ifdef PTXCONF_U_BOOT_FIRMWARE + @$(call world/inject, U_BOOT) +endif + + @$(call touch) + # ---------------------------------------------------------------------------- # Compile # ---------------------------------------------------------------------------- -- 2.39.2