kernel: bump 4.19 to 4.19.65
[openwrt/staging/dedeckeh.git] / target / linux / generic / pending-4.19 / 332-arc-add-OWRTDTB-section.patch
index 58f14b6ca5493f97f33bce2df7d4162be77e214d..ec89547726e4ca77832d59a45e2dc00569628074 100644 (file)
@@ -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 +++-
@@ -19,18 +23,18 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
 
 --- a/arch/arc/kernel/head.S
 +++ b/arch/arc/kernel/head.S
-@@ -49,6 +49,16 @@
- 1:
+@@ -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",@progbits
-+      .ascii  "OWRTDTB:"
++      .ascii  "OWRTDTB:"
 +ENTRY(__image_dtb)
-+      .fill   0x4000
++      .fill   0x4000
 +END(__image_dtb)
 +
        .section .init.text, "ax",@progbits
@@ -38,24 +42,24 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
  ;----------------------------------------------------------------
 --- a/arch/arc/kernel/setup.c
 +++ b/arch/arc/kernel/setup.c
-@@ -421,6 +421,8 @@ static inline int is_kernel(unsigned lon
-       return 0;
- }
+@@ -526,7 +526,7 @@ void __init handle_uboot_args(void)
+ ignore_uboot_args:
  
-+extern struct boot_param_header __image_dtb;
-+
- void __init setup_arch(char **cmdline_p)
- {
- #ifdef CONFIG_ARC_UBOOT_SUPPORT
-@@ -434,7 +436,7 @@ void __init setup_arch(char **cmdline_p)
- #endif
-       {
-               /* No, so try the embedded one */
+       if (use_embedded_dtb) {
 -              machine_desc = setup_machine_fdt(__dtb_start);
 +              machine_desc = setup_machine_fdt(&__image_dtb);
                if (!machine_desc)
                        panic("Embedded DT invalid\n");
+       }
+@@ -542,6 +542,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
@@ -63,16 +67,16 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
        . = 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 = .;