xref: /OK3568_Linux_fs/buildroot/board/qemu/arm-versatile/patches/linux/versatile-nommu.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFrom 7c245ffc17a9ab6215830d4ecd8b2f9beddb487c Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Waldemar Brodkorb <wbx@openadk.org>
3*4882a593SmuzhiyunDate: Fri, 1 Feb 2019 11:36:20 +0100
4*4882a593SmuzhiyunSubject: [PATCH] arm-versatile-nommu: Linux patch
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunOriginally made by Waldemar Brodkorb <wbx@openadk.org> from LKML.
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunRename CLKSRC_OF to TIMER_OF (kernel >= 4.13)
9*4882a593Smuzhiyunhttps://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=bb0eb050a577a866cb47c2dc37596f1207f4c2d9
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunRemove GENERIC_CLOCKEVENTS since its enabled by default (kernel >= 5.11)
12*4882a593Smuzhiyunhttps://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0774a6ed294b963dc76df2d8342ab86d030759ec
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunSelect CONFIG_GENERIC_IRQ_MULTI_HANDLER since irqchip doesn't select it anymore (kernel >= 5.12)
15*4882a593Smuzhiyunhttps://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a79f7051cccb6f3bcd3d2a0a058c7d5c79bb0371
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunSigned-Off-by: Waldemar Brodkorb <wbx@openadk.org>
18*4882a593Smuzhiyun[Gerome: reformated as a Git patch]
19*4882a593SmuzhiyunSigned-off-by: Gerome Burlats <gerome.burlats@smile.fr>
20*4882a593Smuzhiyun[Romain: fix Waldemar's authorship in Git patch]
21*4882a593SmuzhiyunSigned-off-by: Romain Naour <romain.naour@smile.fr>
22*4882a593Smuzhiyun---
23*4882a593Smuzhiyun arch/arm/Kconfig                       | 11 +++++++++++
24*4882a593Smuzhiyun arch/arm/Kconfig.debug                 |  3 ++-
25*4882a593Smuzhiyun arch/arm/include/asm/mach/map.h        |  1 +
26*4882a593Smuzhiyun arch/arm/mach-versatile/Kconfig        |  5 +++--
27*4882a593Smuzhiyun arch/arm/mach-versatile/Makefile.boot  |  3 +++
28*4882a593Smuzhiyun arch/arm/mach-versatile/versatile_dt.c |  4 ++++
29*4882a593Smuzhiyun 6 files changed, 24 insertions(+), 3 deletions(-)
30*4882a593Smuzhiyun create mode 100644 arch/arm/mach-versatile/Makefile.boot
31*4882a593Smuzhiyun
32*4882a593Smuzhiyundiff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
33*4882a593Smuzhiyunindex dcf2df6da98f..c2155c1a2eba 100644
34*4882a593Smuzhiyun--- a/arch/arm/Kconfig
35*4882a593Smuzhiyun+++ b/arch/arm/Kconfig
36*4882a593Smuzhiyun@@ -337,6 +337,17 @@ config ARM_SINGLE_ARMV7M
37*4882a593Smuzhiyun 	select SPARSE_IRQ
38*4882a593Smuzhiyun 	select USE_OF
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun+config ARM_SINGLE_ARCH_VERSATILE
41*4882a593Smuzhiyun+	bool "ARM Ltd. Versatile family"
42*4882a593Smuzhiyun+	depends on !MMU
43*4882a593Smuzhiyun+	select AUTO_ZRELADDR
44*4882a593Smuzhiyun+	select TIMER_OF
45*4882a593Smuzhiyun+	select COMMON_CLK
46*4882a593Smuzhiyun+	select GENERIC_IRQ_MULTI_HANDLER
47*4882a593Smuzhiyun+	select GPIOLIB
48*4882a593Smuzhiyun+	select SPARSE_IRQ
49*4882a593Smuzhiyun+	select USE_OF
50*4882a593Smuzhiyun+
51*4882a593Smuzhiyun config ARCH_EP93XX
52*4882a593Smuzhiyun 	bool "EP93xx-based"
53*4882a593Smuzhiyun 	select ARCH_SPARSEMEM_ENABLE
54*4882a593Smuzhiyundiff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
55*4882a593Smuzhiyunindex 98436702e0c7..7e63299ceb40 100644
56*4882a593Smuzhiyun--- a/arch/arm/Kconfig.debug
57*4882a593Smuzhiyun+++ b/arch/arm/Kconfig.debug
58*4882a593Smuzhiyun@@ -1891,7 +1891,8 @@ config DEBUG_UNCOMPRESS
59*4882a593Smuzhiyun config UNCOMPRESS_INCLUDE
60*4882a593Smuzhiyun 	string
61*4882a593Smuzhiyun 	default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \
62*4882a593Smuzhiyun-					PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
63*4882a593Smuzhiyun+					PLAT_SAMSUNG || ARM_SINGLE_ARMV7M || \
64*4882a593Smuzhiyun+					ARM_SINGLE_ARCH_VERSATILE
65*4882a593Smuzhiyun 	default "mach/uncompress.h"
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun config EARLY_PRINTK
68*4882a593Smuzhiyundiff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h
69*4882a593Smuzhiyunindex 92282558caf7..90bd9c069ffc 100644
70*4882a593Smuzhiyun--- a/arch/arm/include/asm/mach/map.h
71*4882a593Smuzhiyun+++ b/arch/arm/include/asm/mach/map.h
72*4882a593Smuzhiyun@@ -59,6 +59,7 @@ extern int ioremap_page(unsigned long virt, unsigned long phys,
73*4882a593Smuzhiyun #else
74*4882a593Smuzhiyun #define iotable_init(map,num)	do { } while (0)
75*4882a593Smuzhiyun #define vm_reserve_area_early(a,s,c)	do { } while (0)
76*4882a593Smuzhiyun+#define debug_ll_io_init()	do { } while (0)
77*4882a593Smuzhiyun #endif
78*4882a593Smuzhiyun
79*4882a593Smuzhiyun #endif
80*4882a593Smuzhiyundiff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
81*4882a593Smuzhiyunindex d88e7725bf99..d38b90157f13 100644
82*4882a593Smuzhiyun--- a/arch/arm/mach-versatile/Kconfig
83*4882a593Smuzhiyun+++ b/arch/arm/mach-versatile/Kconfig
84*4882a593Smuzhiyun@@ -1,7 +1,8 @@
85*4882a593Smuzhiyun # SPDX-License-Identifier: GPL-2.0
86*4882a593Smuzhiyun config ARCH_VERSATILE
87*4882a593Smuzhiyun-	bool "ARM Ltd. Versatile family"
88*4882a593Smuzhiyun-	depends on ARCH_MULTI_V5
89*4882a593Smuzhiyun+	bool "ARM Ltd. Versatile family" if ARCH_MULTI_V5
90*4882a593Smuzhiyun+	depends on ARCH_MULTI_V5 || ARM_SINGLE_ARCH_VERSATILE
91*4882a593Smuzhiyun+	default y if ARM_SINGLE_ARCH_VERSATILE
92*4882a593Smuzhiyun 	select ARM_AMBA
93*4882a593Smuzhiyun 	select ARM_TIMER_SP804
94*4882a593Smuzhiyun 	select ARM_VIC
95*4882a593Smuzhiyundiff --git a/arch/arm/mach-versatile/Makefile.boot b/arch/arm/mach-versatile/Makefile.boot
96*4882a593Smuzhiyunnew file mode 100644
97*4882a593Smuzhiyunindex 000000000000..eacfc3f5c33e
98*4882a593Smuzhiyun--- /dev/null
99*4882a593Smuzhiyun+++ b/arch/arm/mach-versatile/Makefile.boot
100*4882a593Smuzhiyun@@ -0,0 +1,3 @@
101*4882a593Smuzhiyun+# Empty file waiting for deletion once Makefile.boot isn't needed any more.
102*4882a593Smuzhiyun+# Patch waits for application at
103*4882a593Smuzhiyun+# http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
104*4882a593Smuzhiyundiff --git a/arch/arm/mach-versatile/versatile_dt.c b/arch/arm/mach-versatile/versatile_dt.c
105*4882a593Smuzhiyunindex 02ba68abe533..835b51bc597b 100644
106*4882a593Smuzhiyun--- a/arch/arm/mach-versatile/versatile_dt.c
107*4882a593Smuzhiyun+++ b/arch/arm/mach-versatile/versatile_dt.c
108*4882a593Smuzhiyun@@ -22,7 +22,11 @@
109*4882a593Smuzhiyun #include <asm/mach/map.h>
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun /* macro to get at MMIO space when running virtually */
112*4882a593Smuzhiyun+#ifdef CONFIG_MMU
113*4882a593Smuzhiyun #define IO_ADDRESS(x)		(((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000)
114*4882a593Smuzhiyun+#else
115*4882a593Smuzhiyun+#define IO_ADDRESS(x)		(x)
116*4882a593Smuzhiyun+#endif
117*4882a593Smuzhiyun #define __io_address(n)		((void __iomem __force *)IO_ADDRESS(n))
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun /*
120*4882a593Smuzhiyun--
121*4882a593Smuzhiyun2.31.1
122*4882a593Smuzhiyun
123