123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- From 0843a61d6913bdac8889eb048ed89f7903059787 Mon Sep 17 00:00:00 2001
- From: Robert Marko <[email protected]>
- 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 <[email protected]>
- ---
- 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
- @@ -103,6 +103,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
- @@ -140,4 +147,4 @@ SECTIONS
-
- ARM_ASSERTS
- }
- -ASSERT(_edata_real == _edata, "error: zImage file size is incorrect");
- +ASSERT(_edata_real == _edata_dtb, "error: zImage file size is incorrect");
|