[OpenWrt-Devel] [PATCH 2/2] arc770: move arc patches to taregt/linux/generic

Alexey Brodkin Alexey.Brodkin at synopsys.com
Thu Jan 14 18:12:22 EST 2016


Given those patches are relevant to any ARC platform and even
ISA version it makes perfect sense for patches to exist
in one place instead of being duplicated for each new ARC-based ASIC.

Note this is a prerequisite for upstreaming of ARC HS38 support in
OpenWRT.

Signed-off-by: Alexey Brodkin <abrodkin at synopsys.com>
Cc: Felix Fietkau <nbd at openwrt.org>
Cc: Jo-Philipp Wich <jow at openwrt.org>
Cc: Jonas Gorski <jogo at openwrt.org>
---
 ...openwrt-arc-remove-dependency-on-DEVTMPFS.patch | 36 ---------
 .../0002-openwrt-arc-add-OWRTDTB-section.patch     | 91 ----------------------
 .../331-arc-remove-dependency-on-DEVTMPFS.patch    | 36 +++++++++
 .../patches-4.4/332-arc-add-OWRTDTB-section.patch  | 91 ++++++++++++++++++++++
 4 files changed, 127 insertions(+), 127 deletions(-)
 delete mode 100644 target/linux/arc770/patches-4.4/0001-openwrt-arc-remove-dependency-on-DEVTMPFS.patch
 delete mode 100644 target/linux/arc770/patches-4.4/0002-openwrt-arc-add-OWRTDTB-section.patch
 create mode 100644 target/linux/generic/patches-4.4/331-arc-remove-dependency-on-DEVTMPFS.patch
 create mode 100644 target/linux/generic/patches-4.4/332-arc-add-OWRTDTB-section.patch

diff --git a/target/linux/arc770/patches-4.4/0001-openwrt-arc-remove-dependency-on-DEVTMPFS.patch b/target/linux/arc770/patches-4.4/0001-openwrt-arc-remove-dependency-on-DEVTMPFS.patch
deleted file mode 100644
index 29d9bff..0000000
--- a/target/linux/arc770/patches-4.4/0001-openwrt-arc-remove-dependency-on-DEVTMPFS.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From adfbf9e6cad93281cffceab078e7f6f2a8e094f9 Mon Sep 17 00:00:00 2001
-From: Alexey Brodkin <abrodkin at synopsys.com>
-Date: Thu, 13 Aug 2015 01:56:02 +0300
-Subject: [PATCH 1/2] openwrt: arc - remove dependency on DEVTMPFS
-
-OpenWRT builds initramfs so that it doesn't require DEVTMPFS so dropping
-this dependency. That helps to escape 2 separate kernel rebuilds with
-and without initramfs.
-
-2 builds happen because OpenWRT first builds kernel and later modules.
-When building entire kernel with simple "make" INITRAMFS sets to a real
-value and so was triggering DEVTMPFS selection. Then when building only
-modules with "make modules" command INITRAMFS is zeroed and so kernel
-config was changing that lead to full kernel rebuild.
-
-Signed-off-by: Alexey Brodkin <abrodkin at synopsys.com>
----
- arch/arc/Kconfig | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
-index 6312f60..a95bab3 100644
---- a/arch/arc/Kconfig
-+++ b/arch/arc/Kconfig
-@@ -12,8 +12,6 @@ config ARC
- 	select BUILDTIME_EXTABLE_SORT
- 	select COMMON_CLK
- 	select CLONE_BACKWARDS
--	# ARC Busybox based initramfs absolutely relies on DEVTMPFS for /dev
--	select DEVTMPFS if !INITRAMFS_SOURCE=""
- 	select GENERIC_ATOMIC64
- 	select GENERIC_CLOCKEVENTS
- 	select GENERIC_FIND_FIRST_BIT
--- 
-2.4.3
-
diff --git a/target/linux/arc770/patches-4.4/0002-openwrt-arc-add-OWRTDTB-section.patch b/target/linux/arc770/patches-4.4/0002-openwrt-arc-add-OWRTDTB-section.patch
deleted file mode 100644
index 02e9198..0000000
--- a/target/linux/arc770/patches-4.4/0002-openwrt-arc-add-OWRTDTB-section.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 690e7f2cad271595ff68cace1c45fb10779bde41 Mon Sep 17 00:00:00 2001
-From: Alexey Brodkin <abrodkin at synopsys.com>
-Date: Fri, 15 Jan 2016 00:34:01 +0300
-Subject: [PATCH 2/2] openwrt: arc - add OWRTDTB section
-
-This change allows OpenWRT to patch resulting kernel binary with
-external .dtb.
-
-That allows us to re-use exactky the same vmlinux on different boards
-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: Alexey Brodkin <abrodkin 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 689dd86..51154ae 100644
---- a/arch/arc/kernel/head.S
-+++ b/arch/arc/kernel/head.S
-@@ -49,6 +49,16 @@
- 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.
-+	.section .owrt, "aw", at progbits
-+	.ascii	"OWRTDTB:"
-+ENTRY(__image_dtb)
-+	.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 e1b8744..9481c9d 100644
---- a/arch/arc/kernel/setup.c
-+++ b/arch/arc/kernel/setup.c
-@@ -370,6 +370,8 @@ static inline int is_kernel(unsigned long addr)
- 	return 0;
- }
- 
-+extern struct boot_param_header __image_dtb;
-+
- void __init setup_arch(char **cmdline_p)
- {
- #ifdef CONFIG_ARC_UBOOT_SUPPORT
-@@ -383,7 +385,7 @@ void __init setup_arch(char **cmdline_p)
- #endif
- 	{
- 		/* No, so try the embedded one */
--		machine_desc = setup_machine_fdt(__dtb_start);
-+		machine_desc = setup_machine_fdt(&__image_dtb);
- 		if (!machine_desc)
- 			panic("Embedded DT invalid\n");
- 
-diff --git a/arch/arc/kernel/vmlinux.lds.S b/arch/arc/kernel/vmlinux.lds.S
-index 894e696..ecfc284 100644
---- a/arch/arc/kernel/vmlinux.lds.S
-+++ b/arch/arc/kernel/vmlinux.lds.S
-@@ -30,6 +30,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 : {
-+		*(.owrt)
-+		. = ALIGN(PAGE_SIZE);
-+	}
-+
- 	_int_vec_base_lds = .;
- 	.vector : {
- 		*(.vector)
--- 
-2.4.3
-
diff --git a/target/linux/generic/patches-4.4/331-arc-remove-dependency-on-DEVTMPFS.patch b/target/linux/generic/patches-4.4/331-arc-remove-dependency-on-DEVTMPFS.patch
new file mode 100644
index 0000000..29d9bff
--- /dev/null
+++ b/target/linux/generic/patches-4.4/331-arc-remove-dependency-on-DEVTMPFS.patch
@@ -0,0 +1,36 @@
+From adfbf9e6cad93281cffceab078e7f6f2a8e094f9 Mon Sep 17 00:00:00 2001
+From: Alexey Brodkin <abrodkin at synopsys.com>
+Date: Thu, 13 Aug 2015 01:56:02 +0300
+Subject: [PATCH 1/2] openwrt: arc - remove dependency on DEVTMPFS
+
+OpenWRT builds initramfs so that it doesn't require DEVTMPFS so dropping
+this dependency. That helps to escape 2 separate kernel rebuilds with
+and without initramfs.
+
+2 builds happen because OpenWRT first builds kernel and later modules.
+When building entire kernel with simple "make" INITRAMFS sets to a real
+value and so was triggering DEVTMPFS selection. Then when building only
+modules with "make modules" command INITRAMFS is zeroed and so kernel
+config was changing that lead to full kernel rebuild.
+
+Signed-off-by: Alexey Brodkin <abrodkin at synopsys.com>
+---
+ arch/arc/Kconfig | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
+index 6312f60..a95bab3 100644
+--- a/arch/arc/Kconfig
++++ b/arch/arc/Kconfig
+@@ -12,8 +12,6 @@ config ARC
+ 	select BUILDTIME_EXTABLE_SORT
+ 	select COMMON_CLK
+ 	select CLONE_BACKWARDS
+-	# ARC Busybox based initramfs absolutely relies on DEVTMPFS for /dev
+-	select DEVTMPFS if !INITRAMFS_SOURCE=""
+ 	select GENERIC_ATOMIC64
+ 	select GENERIC_CLOCKEVENTS
+ 	select GENERIC_FIND_FIRST_BIT
+-- 
+2.4.3
+
diff --git a/target/linux/generic/patches-4.4/332-arc-add-OWRTDTB-section.patch b/target/linux/generic/patches-4.4/332-arc-add-OWRTDTB-section.patch
new file mode 100644
index 0000000..02e9198
--- /dev/null
+++ b/target/linux/generic/patches-4.4/332-arc-add-OWRTDTB-section.patch
@@ -0,0 +1,91 @@
+From 690e7f2cad271595ff68cace1c45fb10779bde41 Mon Sep 17 00:00:00 2001
+From: Alexey Brodkin <abrodkin at synopsys.com>
+Date: Fri, 15 Jan 2016 00:34:01 +0300
+Subject: [PATCH 2/2] openwrt: arc - add OWRTDTB section
+
+This change allows OpenWRT to patch resulting kernel binary with
+external .dtb.
+
+That allows us to re-use exactky the same vmlinux on different boards
+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: Alexey Brodkin <abrodkin 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 689dd86..51154ae 100644
+--- a/arch/arc/kernel/head.S
++++ b/arch/arc/kernel/head.S
+@@ -49,6 +49,16 @@
+ 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.
++	.section .owrt, "aw", at progbits
++	.ascii	"OWRTDTB:"
++ENTRY(__image_dtb)
++	.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 e1b8744..9481c9d 100644
+--- a/arch/arc/kernel/setup.c
++++ b/arch/arc/kernel/setup.c
+@@ -370,6 +370,8 @@ static inline int is_kernel(unsigned long addr)
+ 	return 0;
+ }
+ 
++extern struct boot_param_header __image_dtb;
++
+ void __init setup_arch(char **cmdline_p)
+ {
+ #ifdef CONFIG_ARC_UBOOT_SUPPORT
+@@ -383,7 +385,7 @@ void __init setup_arch(char **cmdline_p)
+ #endif
+ 	{
+ 		/* No, so try the embedded one */
+-		machine_desc = setup_machine_fdt(__dtb_start);
++		machine_desc = setup_machine_fdt(&__image_dtb);
+ 		if (!machine_desc)
+ 			panic("Embedded DT invalid\n");
+ 
+diff --git a/arch/arc/kernel/vmlinux.lds.S b/arch/arc/kernel/vmlinux.lds.S
+index 894e696..ecfc284 100644
+--- a/arch/arc/kernel/vmlinux.lds.S
++++ b/arch/arc/kernel/vmlinux.lds.S
+@@ -30,6 +30,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 : {
++		*(.owrt)
++		. = ALIGN(PAGE_SIZE);
++	}
++
+ 	_int_vec_base_lds = .;
+ 	.vector : {
+ 		*(.vector)
+-- 
+2.4.3
+
-- 
2.5.0
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list