public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [Qemu-devel] Change of TEXT_OFFSET for multi_v7_defconfig
Date: Tue, 22 Apr 2014 20:32:10 +0200	[thread overview]
Message-ID: <15350123.PBHzyiOlX4@wuerfel> (raw)
In-Reply-To: <20140422175325.GD23955@obsidianresearch.com>

On Tuesday 22 April 2014 11:53:25 Jason Gunthorpe wrote:
> On Tue, Apr 22, 2014 at 06:11:42PM +0100, Russell King - ARM Linux wrote:
> 
> > Put another way, if your platform is part of the multi-platform kernel
> > then you are *excluded* from being able to use this... unless you hack
> > the Kconfig, and then also provide a constant value for PHYS_OFFSET,
> > thereby _tying_ the kernel you built to a _single_ platform.
> 
> That is exactly right. To get a fixed LMA you must commit to a
> non-relocatable kernel image.
> 
> Realistically this patch would need to be accompanied by something
> that makes ARM_PATCH_PHYS_VIRT optional for multiplatform based on
> EXPERT or similar.

Incidentally, I have this experimental patch in my endless 'randconfig'
queue of things to do properly at a later point.
The idea is to let a person building a kernel intentionally do a
number of things that result in a not-quite-multiplatform configuration
when CONFIG_BROKEN_MULTIPLATFORM is disabled.

The main intention is allow NOMMU builds on platforms that are already
converted to multiplatform, and to prevent people from accidentally
turning on DEBUG_LL, as that breaks all other machines. A couple of
other things are in the same category.

	Arnd

>From c9917a4a1b3f326e84932d7e860597413a98643b Mon Sep 17 00:00:00 2001
From: Arnd Bergmann <arnd@arndb.de>
Date: Mon, 24 Feb 2014 16:38:34 +0100
Subject: [PATCH] ARM: add CONFIG_BROKEN_MULTIPLATFORM

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 65ea715..9ae3c0b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -233,7 +233,7 @@ config VECTORS_BASE
 	  in size.
 
 config ARM_PATCH_PHYS_VIRT
-	bool "Patch physical to virtual translations at runtime" if EMBEDDED
+	bool "Patch physical to virtual translations at runtime" if BROKEN_MULTIPLATFORM
 	default y
 	depends on !XIP_KERNEL && MMU
 	depends on !ARCH_REALVIEW || !SPARSEMEM
@@ -302,16 +302,14 @@ config MMU
 #
 choice
 	prompt "ARM system type"
-	default ARCH_VERSATILE if !MMU
-	default ARCH_MULTIPLATFORM if MMU
+	default ARCH_MULTIPLATFORM
 
 config ARCH_MULTIPLATFORM
 	bool "Allow multiple platforms to be selected"
-	depends on MMU
 	select ARCH_WANT_OPTIONAL_GPIOLIB
 	select ARM_HAS_SG_CHAIN
-	select ARM_PATCH_PHYS_VIRT
 	select AUTO_ZRELADDR
+	select BROKEN_MULTIPLATFORM if !MMU
 	select COMMON_CLK
 	select GENERIC_CLOCKEVENTS
 	select MULTI_IRQ_HANDLER
@@ -865,6 +863,18 @@ config ARCH_OMAP1
 
 endchoice
 
+config BROKEN_MULTIPLATFORM
+	bool "Allow multiplatform builds that may be broken" if ARCH_MULTIPLATFORM && EXPERT
+	def_bool !ARCH_MULTIPLATFORM
+	help
+	  This is a meta option that makes other options visible that
+	  are normally hidden when building a kernel with ARCH_MULTIPLATFORM
+	  support.
+	  You have to enable this option in order to select any option
+	  that can cause your kernel to only work on a subset of the
+	  platforms that are enabled. This includes disabling MMU
+	  or ARM_PATCH_PHYS_VIRT, or enabling ZBOOT_ROM.
+
 menu "Multiple platform selection"
 	depends on ARCH_MULTIPLATFORM
 
@@ -1943,6 +1953,7 @@ config DEPRECATED_PARAM_STRUCT
 # TEXT and BSS so we preserve their values in the config files.
 config ZBOOT_ROM_TEXT
 	hex "Compressed ROM boot loader base address"
+	depends on BROKEN_MULTIPLATFORM
 	default "0"
 	help
 	  The physical address at which the ROM-able zImage is to be
@@ -1954,6 +1965,7 @@ config ZBOOT_ROM_TEXT
 
 config ZBOOT_ROM_BSS
 	hex "Compressed ROM boot loader BSS address"
+	depends on BROKEN_MULTIPLATFORM
 	default "0"
 	help
 	  The base address of an area of read/write memory in the target
@@ -1967,6 +1979,7 @@ config ZBOOT_ROM_BSS
 
 config ZBOOT_ROM
 	bool "Compressed boot loader in ROM/flash"
+	depends on BROKEN_MULTIPLATFORM
 	depends on ZBOOT_ROM_TEXT != ZBOOT_ROM_BSS
 	depends on !ARM_APPENDED_DTB && !XIP_KERNEL && !AUTO_ZRELADDR
 	help
@@ -2092,7 +2105,7 @@ endchoice
 
 config XIP_KERNEL
 	bool "Kernel Execute-In-Place from ROM"
-	depends on !ARM_LPAE && !ARCH_MULTIPLATFORM
+	depends on !ARM_LPAE && BROKEN_MULTIPLATFORM
 	help
 	  Execute-In-Place allows the kernel to run from non-volatile storage
 	  directly addressable by the CPU, such as NOR flash. This saves RAM
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index 6175b50..e193881 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -80,6 +80,7 @@ config DEBUG_USER
 config DEBUG_LL
 	bool "Kernel low-level debugging functions (read help!)"
 	depends on DEBUG_KERNEL
+	depends on BROKEN_MULTIPLATFORM
 	help
 	  Say Y here to include definitions of printascii, printch, printhex
 	  in the kernel.  This is helpful if you are debugging code that
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index cddfd2e..df61015 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -111,7 +111,7 @@ config SOC_IMX31
 	select CPU_V6
 	select IMX_HAVE_PLATFORM_MXC_RNGA
 	select MXC_AVIC
-	select SMP_ON_UP if SMP
+	select SMP_ON_UP if SMP && !BROKEN_MULTIPLATFORM
 
 config SOC_IMX35
 	bool
@@ -119,7 +119,7 @@ config SOC_IMX35
 	select HAVE_EPIT
 	select MXC_AVIC
 	select PINCTRL_IMX35
-	select SMP_ON_UP if SMP
+	select SMP_ON_UP if SMP && !BROKEN_MULTIPLATFORM
 
 config SOC_IMX5
 	bool
diff --git a/arch/arm/mach-prima2/Kconfig b/arch/arm/mach-prima2/Kconfig
index e4e505f..05be41c 100644
--- a/arch/arm/mach-prima2/Kconfig
+++ b/arch/arm/mach-prima2/Kconfig
@@ -33,7 +33,6 @@ config ARCH_MARCO
 	default y
 	select ARM_GIC
 	select HAVE_ARM_SCU if SMP
-	select SMP_ON_UP if SMP
 	help
           Support for CSR SiRFSoC ARM Cortex A9 Platform
 

  parent reply	other threads:[~2014-04-22 18:32 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-15 10:44 Change of TEXT_OFFSET for multi_v7_defconfig Daniel Thompson
2014-04-15 17:53 ` Stephen Boyd
2014-04-16 16:18 ` Christopher Covington
2014-04-16 19:14   ` Nicolas Pitre
2014-04-16 21:08     ` Christopher Covington
2014-04-16 21:36       ` Peter Maydell
2014-04-16 22:34         ` Russell King - ARM Linux
2014-04-16 22:33       ` Russell King - ARM Linux
2014-04-16 23:21       ` Nicolas Pitre
2014-04-17 18:33         ` Christopher Covington
2014-04-17 19:48           ` Nicolas Pitre
2014-04-17 20:49             ` Christopher Covington
2014-04-17 20:54               ` Peter Maydell
2014-04-17 20:35           ` Jason Gunthorpe
2014-04-22  9:44             ` Daniel Thompson
2014-04-22 17:05               ` Jason Gunthorpe
2014-04-22 17:55                 ` Nicolas Pitre
2014-04-22 18:36                   ` Russell King - ARM Linux
2014-04-22 14:50             ` [Qemu-devel] " Michal Simek
2014-04-22 17:00               ` Jason Gunthorpe
2014-04-22 17:11               ` Russell King - ARM Linux
2014-04-22 17:53                 ` Jason Gunthorpe
2014-04-22 18:12                   ` Russell King - ARM Linux
2014-04-22 18:32                   ` Arnd Bergmann [this message]
2014-04-22 18:38                     ` Russell King - ARM Linux
2014-04-22 18:45                       ` Arnd Bergmann
2014-04-17 17:11     ` Rob Herring
2014-04-17 20:06       ` Nicolas Pitre
2014-04-17 20:16         ` Russell King - ARM Linux
2014-04-17 21:18           ` Rob Herring
2014-04-17 21:35             ` Russell King - ARM Linux
2014-04-18  2:53               ` Rob Herring
2014-04-18  4:34                 ` Nicolas Pitre
2014-04-22 10:26                   ` Daniel Thompson
2014-04-22 10:40                     ` Russell King - ARM Linux
2014-04-22 11:41                       ` Daniel Thompson
2014-04-18  8:41                 ` Russell King - ARM Linux
2014-04-22  9:53               ` Daniel Thompson
2014-04-22 10:07                 ` Russell King - ARM Linux

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=15350123.PBHzyiOlX4@wuerfel \
    --to=arnd@arndb.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox