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