From mboxrd@z Thu Jan 1 00:00:00 1970 From: vladimir.murzin@arm.com (Vladimir Murzin) Date: Tue, 29 Nov 2016 12:40:05 +0000 Subject: [RFC v2 PATCH 23/23] ARM: Allow ARCH_MULTIPLATFORM to be selected for NOMMU In-Reply-To: <1480423205-48436-1-git-send-email-vladimir.murzin@arm.com> References: <1480423205-48436-1-git-send-email-vladimir.murzin@arm.com> Message-ID: <1480423205-48436-24-git-send-email-vladimir.murzin@arm.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org With this patch applied potentially any platform can be built in NOMMU configurations if CONFIG_EXPERT is selected. However, there is no guaranty that platform can successfully run such Image. So the main motivation behind of this patch: - bring build coverage for NOMMU configurations - allow known working NOMMU platforms (like R-class) to be used - pave a way to add support for single address space (aka 1:1 mapping) for MMU platforms, so they can be usable in NOMMU configurations Cc: Hartley Sweeten Cc: Ryan Mallon Cc: Tony Lindgren Cc: Thierry Reding Cc: Alexander Shiyan Cc: Shawn Guo Cc: Sascha Hauer Cc: Fabio Estevam Cc: Linus Walleij Cc: Russell King Signed-off-by: Vladimir Murzin --- arch/arm/Kconfig | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index e78c822..bc6f406 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -327,9 +327,9 @@ choice config ARCH_MULTIPLATFORM bool "Allow multiple platforms to be selected" - depends on MMU + depends on MMU || EXPERT select ARM_HAS_SG_CHAIN - select ARM_PATCH_PHYS_VIRT + select ARM_PATCH_PHYS_VIRT if MMU select AUTO_ZRELADDR select CLKSRC_OF select COMMON_CLK @@ -339,6 +339,23 @@ config ARCH_MULTIPLATFORM select PCI_DOMAINS if PCI select SPARSE_IRQ select USE_OF + help + Please, read carefully if you've selected CONFIG_MMU=n! + + Multiplatform with !MMU configuration *is not* meant that + kernel built to support every platform will boot on them. It + is because physical address space layouts (particularly where + RAM is located) are different between platforms and there is + no MMU to work that around. + + You must specify where RAM start (via DRAM_BASE config + option) and appropriate size of RAM (via DRAM_SIZE config + option) which are valid for the platform you are building + for. + + This feature is *EXPERIMENTAL*, please, consider building + with CONFIG_MMU=y unless you know what you do or want to + help with testing. config ARM_SINGLE_ARMV7M bool "ARMv7-M based platforms (Cortex-M0/M3/M4)" -- 1.7.9.5