From: Arnd Bergmann <arnd@arndb.de> To: linux-arm-kernel@lists.infradead.org Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>, Russell King - ARM Linux <linux@arm.linux.org.uk>, Nicolas Pitre <nicolas.pitre@linaro.org>, Peter Maydell <peter.maydell@linaro.org>, Michal Simek <monstr@monstr.eu>, Joel Fernandes <joelf@ti.com>, linux-arm-msm@vger.kernel.org, Stephen Boyd <sboyd@codeaurora.org>, Daniel Thompson <daniel.thompson@linaro.org>, QEMU Developers <qemu-devel@nongnu.org>, Peter Crosthwaite <peter.crosthwaite@xilinx.com>, Christopher Covington <cov@codeaurora.org> Subject: Re: [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
WARNING: multiple messages have this Message-ID (diff)
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
next prev parent reply other threads:[~2014-04-22 18:32 UTC|newest] Thread overview: 78+ 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 10:44 ` Daniel Thompson 2014-04-15 17:53 ` Stephen Boyd 2014-04-15 17:53 ` Stephen Boyd 2014-04-16 16:18 ` Christopher Covington 2014-04-16 16:18 ` Christopher Covington 2014-04-16 19:14 ` Nicolas Pitre 2014-04-16 19:14 ` Nicolas Pitre 2014-04-16 21:08 ` Christopher Covington 2014-04-16 21:08 ` Christopher Covington 2014-04-16 21:36 ` Peter Maydell 2014-04-16 21:36 ` Peter Maydell 2014-04-16 22:34 ` Russell King - ARM Linux 2014-04-16 22:34 ` Russell King - ARM Linux 2014-04-16 22:33 ` Russell King - ARM Linux 2014-04-16 22:33 ` Russell King - ARM Linux 2014-04-16 23:21 ` Nicolas Pitre 2014-04-16 23:21 ` Nicolas Pitre 2014-04-17 18:33 ` Christopher Covington 2014-04-17 18:33 ` Christopher Covington 2014-04-17 19:48 ` Nicolas Pitre 2014-04-17 19:48 ` Nicolas Pitre 2014-04-17 20:49 ` Christopher Covington 2014-04-17 20:49 ` Christopher Covington 2014-04-17 20:54 ` Peter Maydell 2014-04-17 20:54 ` Peter Maydell 2014-04-17 20:35 ` Jason Gunthorpe 2014-04-17 20:35 ` Jason Gunthorpe 2014-04-22 9:44 ` Daniel Thompson 2014-04-22 9:44 ` Daniel Thompson 2014-04-22 17:05 ` Jason Gunthorpe 2014-04-22 17:05 ` Jason Gunthorpe 2014-04-22 17:55 ` Nicolas Pitre 2014-04-22 17:55 ` Nicolas Pitre 2014-04-22 18:36 ` Russell King - ARM Linux 2014-04-22 18:36 ` Russell King - ARM Linux 2014-04-22 14:50 ` Michal Simek 2014-04-22 14:50 ` [Qemu-devel] " Michal Simek 2014-04-22 17:00 ` Jason Gunthorpe 2014-04-22 17:00 ` Jason Gunthorpe 2014-04-22 17:11 ` Russell King - ARM Linux 2014-04-22 17:11 ` Russell King - ARM Linux 2014-04-22 17:53 ` Jason Gunthorpe 2014-04-22 17:53 ` Jason Gunthorpe 2014-04-22 18:12 ` Russell King - ARM Linux 2014-04-22 18:12 ` Russell King - ARM Linux 2014-04-22 18:32 ` Arnd Bergmann [this message] 2014-04-22 18:32 ` Arnd Bergmann 2014-04-22 18:38 ` Russell King - ARM Linux 2014-04-22 18:38 ` Russell King - ARM Linux 2014-04-22 18:45 ` Arnd Bergmann 2014-04-22 18:45 ` Arnd Bergmann 2014-04-17 17:11 ` Rob Herring 2014-04-17 17:11 ` Rob Herring 2014-04-17 20:06 ` Nicolas Pitre 2014-04-17 20:06 ` Nicolas Pitre 2014-04-17 20:16 ` Russell King - ARM Linux 2014-04-17 20:16 ` Russell King - ARM Linux 2014-04-17 21:18 ` Rob Herring 2014-04-17 21:18 ` Rob Herring 2014-04-17 21:35 ` Russell King - ARM Linux 2014-04-17 21:35 ` Russell King - ARM Linux 2014-04-18 2:53 ` Rob Herring 2014-04-18 2:53 ` Rob Herring 2014-04-18 4:34 ` Nicolas Pitre 2014-04-18 4:34 ` Nicolas Pitre 2014-04-22 10:26 ` Daniel Thompson 2014-04-22 10:26 ` Daniel Thompson 2014-04-22 10:40 ` Russell King - ARM Linux 2014-04-22 10:40 ` Russell King - ARM Linux 2014-04-22 11:41 ` Daniel Thompson 2014-04-22 11:41 ` Daniel Thompson 2014-04-18 8:41 ` Russell King - ARM Linux 2014-04-18 8:41 ` Russell King - ARM Linux 2014-04-22 9:53 ` Daniel Thompson 2014-04-22 9:53 ` Daniel Thompson 2014-04-22 10:07 ` Russell King - ARM Linux 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=cov@codeaurora.org \ --cc=daniel.thompson@linaro.org \ --cc=jgunthorpe@obsidianresearch.com \ --cc=joelf@ti.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux@arm.linux.org.uk \ --cc=monstr@monstr.eu \ --cc=nicolas.pitre@linaro.org \ --cc=peter.crosthwaite@xilinx.com \ --cc=peter.maydell@linaro.org \ --cc=qemu-devel@nongnu.org \ --cc=sboyd@codeaurora.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.