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