49 lines
1.5 KiB
Diff
49 lines
1.5 KiB
Diff
|
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");
|