summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2021-11-15 00:18:01 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2021-11-15 14:47:51 +0100
commit83838a890a17d522bb43e8834a42a7cc77a4313f (patch)
tree34934ad450eef53438ee49009ef7c3611741350c
parent96c1640d7135e0a3c307effed15f9123d8a82bd0 (diff)
mk: Support appending a DTB to kernel image
Activated by setting ADK_TARGET_KERNEL_APPEND_DTB symbol to the basename (without suffix) of a dtb file. Not quite user-friendly, but really meant for internal use via default symbol values depending on chosen target system. Signed-off-by: Phil Sutter <phil@nwl.cc>
-rw-r--r--mk/image.mk5
-rw-r--r--mk/kernel-build.mk5
-rw-r--r--target/config/Config.in.kernelfmt3
3 files changed, 13 insertions, 0 deletions
diff --git a/mk/image.mk b/mk/image.mk
index 577343b91..cf870ba48 100644
--- a/mk/image.mk
+++ b/mk/image.mk
@@ -313,6 +313,11 @@ ifeq ($(ADK_LINUX_KERNEL_COMPRESS_NONE),y)
echo "CONFIG_RD_ZSTD=n" >> ${LINUX_DIR}/.config
endif
@-rm $(LINUX_DIR)/usr/initramfs_data.cpio* 2>/dev/null
+ifneq ($(ADK_TARGET_KERNEL_APPEND_DTB),)
+ ${KERNEL_MAKE} zImage dtbs $(MAKE_TRACE)
+ (cd $(LINUX_DIR)/arch/$(ADK_TARGET_ARCH)/boot && \
+ cat dts/${ADK_TARGET_KERNEL_APPEND_DTB}.dtb >> zImage)
+endif
${KERNEL_MAKE} $(ADK_TARGET_KERNEL) $(MAKE_TRACE)
@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
diff --git a/mk/kernel-build.mk b/mk/kernel-build.mk
index 3b8669731..bae7ab168 100644
--- a/mk/kernel-build.mk
+++ b/mk/kernel-build.mk
@@ -88,6 +88,11 @@ endif
$(LINUX_DIR)/$(KERNEL_FILE): $(LINUX_DIR)/.config
$(START_TRACE) "target/$(ADK_TARGET_ARCH)-kernel-compile.. "
+ifneq ($(ADK_TARGET_KERNEL_APPEND_DTB),)
+ ${KERNEL_MAKE} zImage dtbs $(MAKE_TRACE)
+ (cd $(LINUX_DIR)/arch/$(ADK_TARGET_ARCH)/boot && \
+ cat dts/${ADK_TARGET_KERNEL_APPEND_DTB}.dtb >> zImage)
+endif
${KERNEL_MAKE} $(KERNEL_TARGET) $(MAKE_TRACE)
$(CMD_TRACE) " done"
$(END_TRACE)
diff --git a/target/config/Config.in.kernelfmt b/target/config/Config.in.kernelfmt
index bf35f6ba4..b76819cd5 100644
--- a/target/config/Config.in.kernelfmt
+++ b/target/config/Config.in.kernelfmt
@@ -68,3 +68,6 @@ config ADK_TARGET_KERNEL_LOADADDR
hex
default 0x40008000 if ADK_TARGET_SYSTEM_BANANA_PRO
default 0x40008000 if ADK_TARGET_SYSTEM_ORANGE_PI0
+
+config ADK_TARGET_KERNEL_APPEND_DTB
+ string