[openwrt/openwrt] ipq40xx: arm: compressed: add appended DTB section

LEDE Commits lede-commits at lists.infradead.org
Sun Jan 17 08:32:25 EST 2021


lynxis pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/b6461e46549b613480c1516d42527a6756ec7df7

commit b6461e46549b613480c1516d42527a6756ec7df7
Author: Robert Marko <robimarko at gmail.com>
AuthorDate: Fri Oct 30 13:58:29 2020 +0100

    ipq40xx: arm: compressed: add appended DTB section
    
    This adds a appended_dtb section to the ARM decompressor
    linker script.
    
    This allows using the existing ARM zImage appended DTB support for
    appending a DTB to the raw ELF kernel.
    
    Its size is set to 1MB max to match the zImage appended DTB size limit.
    
    To use it to pass the DTB to the kernel, objcopy is used:
    
    objcopy --set-section-flags=.appended_dtb=alloc,contents \
            --update-section=.appended_dtb=<target>.dtb vmlinux
    
    This is based off the following patch:
    https://github.com/openwrt/openwrt/commit/c063e27e02a9dcac0e7f5877fb154e58fa3e1a69
    
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 ...1-arm-compressed-add-appended-DTB-section.patch | 48 ++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/target/linux/ipq40xx/patches-5.4/301-arm-compressed-add-appended-DTB-section.patch b/target/linux/ipq40xx/patches-5.4/301-arm-compressed-add-appended-DTB-section.patch
new file mode 100644
index 0000000000..7e6184fc73
--- /dev/null
+++ b/target/linux/ipq40xx/patches-5.4/301-arm-compressed-add-appended-DTB-section.patch
@@ -0,0 +1,48 @@
+From 0843a61d6913bdac8889eb048ed89f7903059787 Mon Sep 17 00:00:00 2001
+From: Robert Marko <robimarko at gmail.com>
+Date: Fri, 30 Oct 2020 13:36:31 +0100
+Subject: [PATCH] arm: compressed: add appended DTB section
+
+This adds a appended_dtb section to the ARM decompressor
+linker script.
+
+This allows using the existing ARM zImage appended DTB support for
+appending a DTB to the raw ELF kernel.
+
+Its size is set to 1MB max to match the zImage appended DTB size limit.
+
+To use it to pass the DTB to the kernel, objcopy is used:
+
+objcopy --set-section-flags=.appended_dtb=alloc,contents \
+	--update-section=.appended_dtb=<target>.dtb vmlinux
+
+This is based off the following patch:
+https://github.com/openwrt/openwrt/commit/c063e27e02a9dcac0e7f5877fb154e58fa3e1a69
+
+Signed-off-by: Robert Marko <robimarko at gmail.com>
+---
+ arch/arm/boot/compressed/vmlinux.lds.S | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/boot/compressed/vmlinux.lds.S
++++ b/arch/arm/boot/compressed/vmlinux.lds.S
+@@ -93,6 +93,13 @@ SECTIONS
+ 
+   _edata = .;
+ 
++  .appended_dtb : {
++    /* leave space for appended DTB */
++    . += 0x100000;
++  }
++
++  _edata_dtb = .;
++
+   /*
+    * The image_end section appears after any additional loadable sections
+    * that the linker may decide to insert in the binary image.  Having
+@@ -132,4 +139,4 @@ SECTIONS
+   .stab.indexstr 0	: { *(.stab.indexstr) }
+   .comment 0		: { *(.comment) }
+ }
+-ASSERT(_edata_real == _edata, "error: zImage file size is incorrect");
++ASSERT(_edata_real == _edata_dtb, "error: zImage file size is incorrect");



More information about the lede-commits mailing list