diff options
Diffstat (limited to 'target/linux/generic/pending-4.14')
-rw-r--r-- | target/linux/generic/pending-4.14/332-arc-add-OWRTDTB-section.patch | 64 |
1 files changed, 34 insertions, 30 deletions
diff --git a/target/linux/generic/pending-4.14/332-arc-add-OWRTDTB-section.patch b/target/linux/generic/pending-4.14/332-arc-add-OWRTDTB-section.patch index 414dbbc0c1..6aa90c9eaf 100644 --- a/target/linux/generic/pending-4.14/332-arc-add-OWRTDTB-section.patch +++ b/target/linux/generic/pending-4.14/332-arc-add-OWRTDTB-section.patch @@ -1,5 +1,7 @@ -From: Alexey Brodkin <abrodkin@synopsys.com> -Subject: openwrt: arc - add OWRTDTB section +From 34ef04f3845ed2b47d57dd9d3b795b16e1f8185a Mon Sep 17 00:00:00 2001 +From: Evgeniy Didin <Evgeniy.Didin@synopsys.com> +Date: Fri, 15 Mar 2019 18:53:38 +0300 +Subject: [PATCH] arc add OWRTDTB section This change allows OpenWRT to patch resulting kernel binary with external .dtb. @@ -10,7 +12,9 @@ given its ARC core configurations match (at least cache line sizes etc). ""patch-dtb" searches for ASCII "OWRTDTB:" strign and copies external .dtb right after it, keeping the string in place. +Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> +Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com> --- arch/arc/kernel/head.S | 10 ++++++++++ arch/arc/kernel/setup.c | 4 +++- @@ -23,14 +27,14 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> #endif .endm -+; Here "patch-dtb" will embed external .dtb -+; Note "patch-dtb" searches for ASCII "OWRTDTB:" string -+; and pastes .dtb right after it, hense the string precedes -+; __image_dtb symbol. ++ ; Here "patch-dtb" will embed external .dtb ++ ; Note "patch-dtb" searches for ASCII "OWRTDTB:" string ++ ; and pastes .dtb right after it, hense the string precedes ++ ; __image_dtb symbol. + .section .owrt, "aw",@progbits -+ .ascii "OWRTDTB:" ++ .ascii "OWRTDTB:" +ENTRY(__image_dtb) -+ .fill 0x4000 ++ .fill 0x4000 +END(__image_dtb) + .section .init.text, "ax",@progbits @@ -38,7 +42,16 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> ;---------------------------------------------------------------- --- a/arch/arc/kernel/setup.c +++ b/arch/arc/kernel/setup.c -@@ -469,7 +469,7 @@ ignore_uboot_args: +@@ -434,6 +434,8 @@ static inline bool uboot_arg_invalid(uns + #define UBOOT_TAG_CMDLINE 1 + #define UBOOT_TAG_DTB 2 + ++extern struct boot_param_header __image_dtb; ++ + void __init handle_uboot_args(void) + { + bool use_embedded_dtb = true; +@@ -469,7 +471,7 @@ ignore_uboot_args: #endif if (use_embedded_dtb) { @@ -47,34 +60,25 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> if (!machine_desc) panic("Embedded DT invalid\n"); } -@@ -485,6 +485,8 @@ ignore_uboot_args: - } - } - -+extern struct boot_param_header __image_dtb; -+ - void __init setup_arch(char **cmdline_p) - { - handle_uboot_args(); --- a/arch/arc/kernel/vmlinux.lds.S +++ b/arch/arc/kernel/vmlinux.lds.S -@@ -30,6 +30,19 @@ SECTIONS +@@ -29,6 +29,19 @@ SECTIONS + */ . = CONFIG_LINUX_LINK_BASE; - + /* -+ * In OpenWRT we want to patch built binary embedding .dtb of choice. -+ * This is implemented with "patch-dtb" utility which searches for -+ * "OWRTDTB:" string in first 16k of image and if it is found -+ * copies .dtb right after mentioned string. -+ * -+ * Note: "OWRTDTB:" won't be overwritten with .dtb, .dtb will follow it. -+ */ -+ .owrt : { ++ * In OpenWRT we want to patch built binary embedding .dtb of choice. ++ * This is implemented with "patch-dtb" utility which searches for ++ * "OWRTDTB:" string in first 16k of image and if it is found ++ * copies .dtb right after mentioned string. ++ * ++ * Note: "OWRTDTB:" won't be overwritten with .dtb, .dtb will follow it. ++ */ ++ .owrt : { + *(.owrt) -+ . = ALIGN(PAGE_SIZE); ++ . = ALIGN(PAGE_SIZE); + } + + _int_vec_base_lds = .; .vector : { - *(.vector) |