From 6c7b49c8b9bf2e647de5925b39c8e1ee3b43ae23 Mon Sep 17 00:00:00 2001 From: Evgeniy Didin Date: Wed, 20 Mar 2019 11:30:40 +0300 Subject: [PATCH] kernel: Update arc-add-OWRTDTB-section patch for 4.14 In 4.14.104 commit "e7264579eb80" (ARC: U-boot: check arguments paranoidly) was introduced, which together with 332-arc-add-OWRTDTB-section.patch caused build failure. This commit updates 332-arc-add-OWRTDTB-section.patch. Fixes: http://phase1.builds.openwrt.org/builders/archs38%2Fgeneric/builds/1290 http://phase1.builds.openwrt.org/builders/archs38%2Fgeneric/builds/1269 Signed-off-by: Evgeniy Didin [Updated patch for kernel 4.19 in addition] Signed-off-by: Hauke Mehrtens Cc: Alexey Brodkin Cc: Hauke Mehrtens Cc: John Crispin --- .../332-arc-add-OWRTDTB-section.patch | 64 ++++++++++--------- .../332-arc-add-OWRTDTB-section.patch | 38 ++++++----- 2 files changed, 55 insertions(+), 47 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 -Subject: openwrt: arc - add OWRTDTB section +From 34ef04f3845ed2b47d57dd9d3b795b16e1f8185a Mon Sep 17 00:00:00 2001 +From: Evgeniy Didin +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 Signed-off-by: Alexey Brodkin +Signed-off-by: Evgeniy Didin --- arch/arc/kernel/head.S | 10 ++++++++++ arch/arc/kernel/setup.c | 4 +++- @@ -23,14 +27,14 @@ Signed-off-by: Alexey Brodkin #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 ;---------------------------------------------------------------- --- 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 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) diff --git a/target/linux/generic/pending-4.19/332-arc-add-OWRTDTB-section.patch b/target/linux/generic/pending-4.19/332-arc-add-OWRTDTB-section.patch index 963547eedd..426a550d58 100644 --- a/target/linux/generic/pending-4.19/332-arc-add-OWRTDTB-section.patch +++ b/target/linux/generic/pending-4.19/332-arc-add-OWRTDTB-section.patch @@ -1,5 +1,7 @@ -From: Alexey Brodkin -Subject: openwrt: arc - add OWRTDTB section +From 34ef04f3845ed2b47d57dd9d3b795b16e1f8185a Mon Sep 17 00:00:00 2001 +From: Evgeniy Didin +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 Signed-off-by: Alexey Brodkin +Signed-off-by: Evgeniy Didin --- arch/arc/kernel/head.S | 10 ++++++++++ arch/arc/kernel/setup.c | 4 +++- @@ -23,14 +27,14 @@ Signed-off-by: Alexey Brodkin 1: .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 @@ -63,16 +67,16 @@ Signed-off-by: Alexey Brodkin . = 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 = .;