[OpenWrt-Devel] [PATCH] kernel: Update arc-add-OWRTDTB-section patch for 4.14
Evgeniy Didin
evgeniy.didin at synopsys.com
Wed Mar 20 04:30:40 EDT 2019
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 <Evgeniy.Didin at synopsys.com>
Cc: Alexey Brodkin <abrodkin at synopsys.com>
Cc: Hauke Mehrtens <hauke at hauke-m.de>
Cc: John Crispin <john at phrozen.org>
---
.../pending-4.14/332-arc-add-OWRTDTB-section.patch | 73 +++++++++++++---------
1 file changed, 43 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..d99d68af3c 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 at synopsys.com>
-Subject: openwrt: arc - add OWRTDTB section
+From 34ef04f3845ed2b47d57dd9d3b795b16e1f8185a Mon Sep 17 00:00:00 2001
+From: Evgeniy Didin <Evgeniy.Didin at 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,35 +12,50 @@ 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 at synopsys.com>
Signed-off-by: Alexey Brodkin <abrodkin at synopsys.com>
+Signed-off-by: Evgeniy Didin <Evgeniy.Didin at synopsys.com>
---
arch/arc/kernel/head.S | 10 ++++++++++
arch/arc/kernel/setup.c | 4 +++-
arch/arc/kernel/vmlinux.lds.S | 13 +++++++++++++
3 files changed, 26 insertions(+), 1 deletion(-)
+diff --git a/arch/arc/kernel/head.S b/arch/arc/kernel/head.S
+index 1f945d0f40da..40f3b6462581 100644
--- a/arch/arc/kernel/head.S
+++ b/arch/arc/kernel/head.S
@@ -59,6 +59,16 @@
#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", at progbits
-+ .ascii "OWRTDTB:"
++ .ascii "OWRTDTB:"
+ENTRY(__image_dtb)
-+ .fill 0x4000
++ .fill 0x4000
+END(__image_dtb)
+
.section .init.text, "ax", at progbits
;----------------------------------------------------------------
+diff --git a/arch/arc/kernel/setup.c b/arch/arc/kernel/setup.c
+index 709649e5f9bc..6e3e01c3f41d 100644
--- 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(unsigned long addr)
+ #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 @@ void __init handle_uboot_args(void)
#endif
if (use_embedded_dtb) {
@@ -47,34 +64,30 @@ Signed-off-by: Alexey Brodkin <abrodkin at 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();
+diff --git a/arch/arc/kernel/vmlinux.lds.S b/arch/arc/kernel/vmlinux.lds.S
+index f35ed578e007..12c5ab5d7302 100644
--- 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)
+--
+2.16.2
+
--
2.16.2
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list