Commit 2f618d5e authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

ARM: remove support for NOMMU ARMv4/v5



It is possible to build MMU-less kernels for Cortex-M base
microcrontrollers as well as a couple of older platforms that
have not been converted to CONFIG_ARCH_MULTIPLATFORM,
specifically ep93xx, footbridge, dove, sa1100 and s3c24xx.

It seems unlikely that anybody has tested those configurations
in recent years, as even building them is frequently broken.
A patch I submitted caused another build time regression
in this configuration. I sent a patch for that, but it seems
better to also remove the option entirely, leaving ARMv7-M
as the only supported Arm NOMMU target for simplicity.

A couple of platforms have dependencies on CONFIG_MMU, those
can all be removed now. Notably, mach-integrator tries to
support MMU-less CPU cores, but those have not actually been
selectable for a long time.

This addresses several build failures in randconfig builds that
have accumulated over the years.

Cc: Vladimir Murzin <vladimir.murzin@arm.com>
Cc: Russell King <linux@armlinux.org.uk>
Acked-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Reviewed by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent a483b1b2
Loading
Loading
Loading
Loading
+13 −21
Original line number Diff line number Diff line
@@ -292,6 +292,17 @@ config MMU
	  Select if you want MMU-based virtualised addressing space
	  support by paged memory management. If unsure, say 'Y'.

config ARM_SINGLE_ARMV7M
	def_bool !MMU
	select ARM_NVIC
	select AUTO_ZRELADDR
	select TIMER_OF
	select COMMON_CLK
	select CPU_V7M
	select NO_IOPORT_MAP
	select SPARSE_IRQ
	select USE_OF

config ARCH_MMAP_RND_BITS_MIN
	default 8

@@ -306,12 +317,11 @@ config ARCH_MMAP_RND_BITS_MAX
#
choice
	prompt "ARM system type"
	default ARM_SINGLE_ARMV7M if !MMU
	default ARCH_MULTIPLATFORM if MMU
	depends on MMU
	default ARCH_MULTIPLATFORM

config ARCH_MULTIPLATFORM
	bool "Allow multiple platforms to be selected"
	depends on MMU
	select ARCH_FLATMEM_ENABLE
	select ARCH_SPARSEMEM_ENABLE
	select ARCH_SELECT_MEMORY_MODEL
@@ -326,18 +336,6 @@ config ARCH_MULTIPLATFORM
	select SPARSE_IRQ
	select USE_OF

config ARM_SINGLE_ARMV7M
	bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
	depends on !MMU
	select ARM_NVIC
	select AUTO_ZRELADDR
	select TIMER_OF
	select COMMON_CLK
	select CPU_V7M
	select NO_IOPORT_MAP
	select SPARSE_IRQ
	select USE_OF

config ARCH_EP93XX
	bool "EP93xx-based"
	select ARCH_SPARSEMEM_ENABLE
@@ -357,7 +355,6 @@ config ARCH_FOOTBRIDGE
	bool "FootBridge"
	select CPU_SA110
	select FOOTBRIDGE
	select NEED_MACH_IO_H if !MMU
	select NEED_MACH_MEMORY_H
	help
	  Support for systems based on the DC21285 companion chip
@@ -365,7 +362,6 @@ config ARCH_FOOTBRIDGE

config ARCH_IOP32X
	bool "IOP32x-based"
	depends on MMU
	select CPU_XSCALE
	select GPIO_IOP
	select GPIOLIB
@@ -378,7 +374,6 @@ config ARCH_IOP32X

config ARCH_IXP4XX
	bool "IXP4xx-based"
	depends on MMU
	select ARCH_SUPPORTS_BIG_ENDIAN
	select ARM_PATCH_PHYS_VIRT
	select CPU_XSCALE
@@ -411,7 +406,6 @@ config ARCH_DOVE

config ARCH_PXA
	bool "PXA2xx/PXA3xx-based"
	depends on MMU
	select ARCH_MTD_XIP
	select ARM_CPU_SUSPEND if PM
	select AUTO_ZRELADDR
@@ -431,7 +425,6 @@ config ARCH_PXA

config ARCH_RPC
	bool "RiscPC"
	depends on MMU
	depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000
	select ARCH_ACORN
	select ARCH_MAY_HAVE_PC_FDC
@@ -488,7 +481,6 @@ config ARCH_S3C24XX

config ARCH_OMAP1
	bool "TI OMAP1"
	depends on MMU
	select ARCH_OMAP
	select CLKSRC_MMIO
	select GENERIC_IRQ_CHIP
+0 −1
Original line number Diff line number Diff line
@@ -185,7 +185,6 @@ config ARCH_BCM_53573
config ARCH_BCM_63XX
	bool "Broadcom BCM63xx DSL SoC"
	depends on ARCH_MULTI_V7
	depends on MMU
	select ARCH_HAS_RESET_CONTROLLER
	select ARM_ERRATA_754322
	select ARM_ERRATA_764369 if SMP
+7 −13
Original line number Diff line number Diff line
@@ -21,32 +21,26 @@
 * 0xf0000000	0x80000000	16MB	ISA memory
 */

#ifdef CONFIG_MMU
#define MMU_IO(a, b)	(a)
#else
#define MMU_IO(a, b)	(b)
#endif

#define XBUS_SIZE		0x00100000
#define XBUS_BASE		MMU_IO(0xff800000, 0x40000000)
#define XBUS_BASE		0xff800000

#define ARMCSR_SIZE		0x00100000
#define ARMCSR_BASE		MMU_IO(0xfe000000, 0x42000000)
#define ARMCSR_BASE		0xfe000000

#define WFLUSH_SIZE		0x00100000
#define WFLUSH_BASE		MMU_IO(0xfd000000, 0x78000000)
#define WFLUSH_BASE		0xfd000000

#define PCIIACK_SIZE		0x00100000
#define PCIIACK_BASE		MMU_IO(0xfc000000, 0x79000000)
#define PCIIACK_BASE		0xfc000000

#define PCICFG1_SIZE		0x01000000
#define PCICFG1_BASE		MMU_IO(0xfb000000, 0x7a000000)
#define PCICFG1_BASE		0xfb000000

#define PCICFG0_SIZE		0x01000000
#define PCICFG0_BASE		MMU_IO(0xfa000000, 0x7b000000)
#define PCICFG0_BASE		0xfa000000

#define PCIMEM_SIZE		0x01000000
#define PCIMEM_BASE		MMU_IO(0xf0000000, 0x80000000)
#define PCIMEM_BASE		0xf0000000

#define XBUS_CS2		0x40012000

+0 −20
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 *  arch/arm/mach-footbridge/include/mach/io.h
 *
 *  Copyright (C) 1997-1999 Russell King
 *
 *  Modifications:
 *   06-12-1997	RMK	Created.
 *   07-04-1999	RMK	Major cleanup
 */
#ifndef __ASM_ARM_ARCH_IO_H
#define __ASM_ARM_ARCH_IO_H

/*
 * Translation of various i/o addresses to host addresses for !CONFIG_MMU
 */
#define PCIO_BASE       0x7c000000
#define __io(a)			((void __iomem *)(PCIO_BASE + (a)))

#endif
+1 −36
Original line number Diff line number Diff line
@@ -42,24 +42,12 @@ config INTEGRATOR_IMPD1
	  allows ARM(R) Ltd PrimeCells to be developed and evaluated.
	  The IM-PD1 can be found on the Integrator/PP2 platform.

config INTEGRATOR_CM7TDMI
	bool "Integrator/CM7TDMI core module"
	depends on ARCH_INTEGRATOR_AP
	depends on ARCH_MULTI_V4 && !MMU
	select CPU_ARM7TDMI

config INTEGRATOR_CM720T
	bool "Integrator/CM720T core module"
	depends on ARCH_INTEGRATOR_AP
	depends on ARCH_MULTI_V4T
	select CPU_ARM720T

config INTEGRATOR_CM740T
	bool "Integrator/CM740T core module"
	depends on ARCH_INTEGRATOR_AP
	depends on ARCH_MULTI_V4T && !MMU
	select CPU_ARM740T

config INTEGRATOR_CM920T
	bool "Integrator/CM920T core module"
	depends on ARCH_INTEGRATOR_AP
@@ -78,23 +66,6 @@ config INTEGRATOR_CM926EJS
	depends on ARCH_MULTI_V5
	select CPU_ARM926T

config INTEGRATOR_CM940T
	bool "Integrator/CM940T core module"
	depends on ARCH_INTEGRATOR_AP
	depends on ARCH_MULTI_V4T && !MMU
	select CPU_ARM940T

config INTEGRATOR_CM946ES
	bool "Integrator/CM946E-S core module"
	depends on ARCH_INTEGRATOR_AP
	depends on ARCH_MULTI_V5 && !MMU
	select CPU_ARM946E

config INTEGRATOR_CM966ES
	bool "Integrator/CM966E-S core module"
	depends on ARCH_INTEGRATOR_AP
	depends on BROKEN # no kernel support

config INTEGRATOR_CM10200E_REV0
	bool "Integrator/CM10200E rev.0 core module"
	depends on ARCH_INTEGRATOR_AP && n
@@ -127,7 +98,7 @@ config INTEGRATOR_CM1136JFS

config ARCH_INTEGRATOR_CP
	bool "Support Integrator/CP platform"
	depends on (!MMU || ARCH_MULTI_V5 || ARCH_MULTI_V6)
	depends on ARCH_MULTI_V5 || ARCH_MULTI_V6
	select ARM_TIMER_SP804
	select SERIAL_AMBA_PL011 if TTY
	select SERIAL_AMBA_PL011_CONSOLE if TTY
@@ -135,12 +106,6 @@ config ARCH_INTEGRATOR_CP
	help
	  Include support for the ARM(R) Integrator CP platform.

config INTEGRATOR_CT7T
	bool "Integrator/CT7TD (ARM7TDMI) core tile"
	depends on ARCH_INTEGRATOR_CP
	depends on ARCH_MULTI_V4T && !MMU
	select CPU_ARM7TDMI

config INTEGRATOR_CT926
	bool "Integrator/CT926 (ARM926EJ-S) core tile"
	depends on ARCH_INTEGRATOR_CP
Loading