This will make a separated section for dtb appear in ELF, and we can
then use objcopy to patch a dtb into vmlinuz when RAW_APPENDED_DTB
is set in kernel config.

command to patch a dtb:
objcopy --set-section-flags=.appended_dtb=alloc,contents \
        --update-section=.appended_dtb=<target>.dtb vmlinuz

Signed-off-by: Chuanhong Guo <[email protected]>
---
Note:
This should supersede this patch on linux-mips:
[2/2] mips: boot compressed: add support for vlinuz ELF DTB [0]

[0] 
https://patchwork.kernel.org/project/linux-mips/patch/[email protected]/
 
 arch/mips/boot/compressed/ld.script | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/arch/mips/boot/compressed/ld.script 
b/arch/mips/boot/compressed/ld.script
index 2ed08fbef8e7..0ebb667274d6 100644
--- a/arch/mips/boot/compressed/ld.script
+++ b/arch/mips/boot/compressed/ld.script
@@ -31,9 +31,12 @@ SECTIONS
                CONSTRUCTORS
                . = ALIGN(16);
        }
-       __appended_dtb = .;
-       /* leave space for appended DTB */
-       . += 0x100000;
+
+       .appended_dtb : {
+               __appended_dtb = .;
+               /* leave space for appended DTB */
+               . += 0x100000;
+       }
 
        _edata = .;
        /* End of data section */
-- 
2.26.2

Reply via email to