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


Reply via email to