| From 0843a61d6913bdac8889eb048ed89f7903059787 Mon Sep 17 00:00:00 2001 |
| From: Robert Marko <robimarko@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@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"); |