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
|
|
@@ -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");
|