linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
@ 2013-01-09 18:15 Jonathan Austin
  2013-01-09 18:30 ` Nicolas Pitre
  2013-01-09 18:43 ` [PATCH] " Arnd Bergmann
  0 siblings, 2 replies; 18+ messages in thread
From: Jonathan Austin @ 2013-01-09 18:15 UTC (permalink / raw)
  To: linux-arm-kernel

From: Will Deacon <will.deacon@arm.com>

Since 617276307cd4c ("ARM: vexpress: convert to multi-platform") it has
been impossible to select ARCH_VEXPRESS without ARCH_MULTIPLATFORM.

ARCH_MULTIPLATFORM doesn't make sense for NOMMU targets, not least
because of the need to hard-code the memory map. However, it should
still be possible to run NOMMU kernels on top of the Versatile Express
by selecting it as the only platform.

This patch creates a shim ARCH_VEXPRESS_NOMMU config option in the 'choice'
for "ARM system type" to make this possible again.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
CC: Nicolas Pitre <nico@fluxnic.net>
CC: Arnd Bergmann <arnd@arndb.de>
---

Arnd and Nicolas: I've removed your acks as I've changed the location
of the new block (as Nicolas suggested) and ever so slightly tweaked
the name of the new option.

 arch/arm/Kconfig |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 335e220..3357d0b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -322,6 +322,11 @@ config ARCH_VERSATILE
 	help
 	  This enables support for ARM Ltd Versatile board.
 
+config ARCH_VEXPRESS_NOMMU
+	bool "ARM Ltd. Versatile Express family for NOMMU"
+	depends on !MMU
+	select ARCH_VEXPRESS
+
 config ARCH_AT91
 	bool "Atmel AT91"
 	select ARCH_REQUIRE_GPIOLIB
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-09 18:15 [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM Jonathan Austin
@ 2013-01-09 18:30 ` Nicolas Pitre
  2013-01-09 18:41   ` Will Deacon
  2013-01-09 18:43 ` [PATCH] " Arnd Bergmann
  1 sibling, 1 reply; 18+ messages in thread
From: Nicolas Pitre @ 2013-01-09 18:30 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 9 Jan 2013, Jonathan Austin wrote:

> From: Will Deacon <will.deacon@arm.com>

Did Will actually write the patch?  It rather looks like you are the one 
folloing through, in which case you deserve the credits.

> Since 617276307cd4c ("ARM: vexpress: convert to multi-platform") it has
> been impossible to select ARCH_VEXPRESS without ARCH_MULTIPLATFORM.
> 
> ARCH_MULTIPLATFORM doesn't make sense for NOMMU targets, not least
> because of the need to hard-code the memory map. However, it should
> still be possible to run NOMMU kernels on top of the Versatile Express
> by selecting it as the only platform.
> 
> This patch creates a shim ARCH_VEXPRESS_NOMMU config option in the 'choice'
> for "ARM system type" to make this possible again.
> 
> Signed-off-by: Will Deacon <will.deacon@arm.com>
> Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
> CC: Nicolas Pitre <nico@fluxnic.net>
> CC: Arnd Bergmann <arnd@arndb.de>
> ---
> 
> Arnd and Nicolas: I've removed your acks as I've changed the location
> of the new block (as Nicolas suggested) and ever so slightly tweaked
> the name of the new option.

Please add some help text to explain what this is for as well.

And you may add my ACK back.



> 
>  arch/arm/Kconfig |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 335e220..3357d0b 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -322,6 +322,11 @@ config ARCH_VERSATILE
>  	help
>  	  This enables support for ARM Ltd Versatile board.
>  
> +config ARCH_VEXPRESS_NOMMU
> +	bool "ARM Ltd. Versatile Express family for NOMMU"
> +	depends on !MMU
> +	select ARCH_VEXPRESS
> +
>  config ARCH_AT91
>  	bool "Atmel AT91"
>  	select ARCH_REQUIRE_GPIOLIB
> -- 
> 1.7.9.5
> 
> 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-09 18:30 ` Nicolas Pitre
@ 2013-01-09 18:41   ` Will Deacon
  2013-01-09 19:17     ` [PATCH v2] " Jonathan Austin
  0 siblings, 1 reply; 18+ messages in thread
From: Will Deacon @ 2013-01-09 18:41 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jan 09, 2013 at 06:30:01PM +0000, Nicolas Pitre wrote:
> On Wed, 9 Jan 2013, Jonathan Austin wrote:
> 
> > From: Will Deacon <will.deacon@arm.com>
> 
> Did Will actually write the patch?  It rather looks like you are the one 
> folloing through, in which case you deserve the credits.

I wrote the initial patch, but it's pretty simple and I just want it fixed,
so I'm not especially bothered about the attribution. If you do remove me as
the author, you can leave my S-o-B after yours.

Cheers,

Will

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-09 18:15 [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM Jonathan Austin
  2013-01-09 18:30 ` Nicolas Pitre
@ 2013-01-09 18:43 ` Arnd Bergmann
  2013-01-09 18:54   ` Nicolas Pitre
  1 sibling, 1 reply; 18+ messages in thread
From: Arnd Bergmann @ 2013-01-09 18:43 UTC (permalink / raw)
  To: linux-arm-kernel

On Wednesday 09 January 2013, Jonathan Austin wrote:
> From: Will Deacon <will.deacon@arm.com>
> 
> Since 617276307cd4c ("ARM: vexpress: convert to multi-platform") it has
> been impossible to select ARCH_VEXPRESS without ARCH_MULTIPLATFORM.
> 
> ARCH_MULTIPLATFORM doesn't make sense for NOMMU targets, not least
> because of the need to hard-code the memory map. However, it should
> still be possible to run NOMMU kernels on top of the Versatile Express
> by selecting it as the only platform.
> 
> This patch creates a shim ARCH_VEXPRESS_NOMMU config option in the 'choice'
> for "ARM system type" to make this possible again.
> 
> Signed-off-by: Will Deacon <will.deacon@arm.com>
> Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
> CC: Nicolas Pitre <nico@fluxnic.net>
> CC: Arnd Bergmann <arnd@arndb.de>
> ---
> 
> Arnd and Nicolas: I've removed your acks as I've changed the location
> of the new block (as Nicolas suggested) and ever so slightly tweaked
> the name of the new option.

The patch is still good. Generally you can leave an Ack when doing
small changes but leaving the patch conceptually the same.

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

On a related topic, I still think we should fix ARCH_MULTI_V7 not
to select ARCH_VEXPRESS unconditionally and come up with a better
way to avoid having an empty platform list to make 'allnoconfig'
still work.

	Arnd

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-09 18:43 ` [PATCH] " Arnd Bergmann
@ 2013-01-09 18:54   ` Nicolas Pitre
  2013-01-09 20:22     ` Arnd Bergmann
  0 siblings, 1 reply; 18+ messages in thread
From: Nicolas Pitre @ 2013-01-09 18:54 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 9 Jan 2013, Arnd Bergmann wrote:

> On a related topic, I still think we should fix ARCH_MULTI_V7 not
> to select ARCH_VEXPRESS unconditionally and come up with a better
> way to avoid having an empty platform list to make 'allnoconfig'
> still work.

The virtual guest platform support that Will and Marc did is small 
enough that it could always be selected in place of vexpress.


Nicolas

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH v2] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-09 18:41   ` Will Deacon
@ 2013-01-09 19:17     ` Jonathan Austin
  0 siblings, 0 replies; 18+ messages in thread
From: Jonathan Austin @ 2013-01-09 19:17 UTC (permalink / raw)
  To: linux-arm-kernel

Since 617276307cd4c ("ARM: vexpress: convert to multi-platform") it has
been impossible to select ARCH_VEXPRESS without ARCH_MULTIPLATFORM.

ARCH_MULTIPLATFORM doesn't make sense for NOMMU targets, not least
because of the need to hard-code the memory map. However, it should
still be possible to run NOMMU kernels on top of the Versatile Express
by selecting it as the only platform.

This patch creates a shim ARCH_VEXPRESS_NOMMU config option in the 'choice'
for "ARM system type" to make this possible again.

Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Acked-by: Arnd Bergmann <arnd@arndb.de>
---
Changes since v1:
Added the help text and changed authorship from Will to me (Jonathan)

 arch/arm/Kconfig |   15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 335e220..5b8a925 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -322,6 +322,21 @@ config ARCH_VERSATILE
 	help
 	  This enables support for ARM Ltd Versatile board.
 
+config ARCH_VEXPRESS_NOMMU
+	bool "ARM Ltd. Versatile Express family for NOMMU"
+	depends on !MMU
+	select ARCH_VEXPRESS
+	help
+	  This option enables support for systems using Cortex processor based
+	  ARM core and logic (FPGA) tiles on the Versatile Express motherboard,
+	  in configurations WITHOUT an MMU. You must boot using a Flattened
+	  Device Tree - the traditional ATAGs boot method is not usable with
+	  this configuration.
+
+	  If your system has an MMU and you want to make use of it, you
+	  should instead choose to build a multiplatform kernel and
+	  select ARCH_VEXPRESS
+
 config ARCH_AT91
 	bool "Atmel AT91"
 	select ARCH_REQUIRE_GPIOLIB
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-09 18:54   ` Nicolas Pitre
@ 2013-01-09 20:22     ` Arnd Bergmann
  2013-01-09 20:39       ` Rob Herring
  2013-01-09 21:00       ` Nicolas Pitre
  0 siblings, 2 replies; 18+ messages in thread
From: Arnd Bergmann @ 2013-01-09 20:22 UTC (permalink / raw)
  To: linux-arm-kernel

On Wednesday 09 January 2013, Nicolas Pitre wrote:
> On Wed, 9 Jan 2013, Arnd Bergmann wrote:
> 
> > On a related topic, I still think we should fix ARCH_MULTI_V7 not
> > to select ARCH_VEXPRESS unconditionally and come up with a better
> > way to avoid having an empty platform list to make 'allnoconfig'
> > still work.
> 
> The virtual guest platform support that Will and Marc did is small 
> enough that it could always be selected in place of vexpress.

But that only helps when ARMv7 is selected, unless we want to build
it only for ARMv4, v5 or v6 kernels.

Besides, the only reason we can't have a kernel without any platform
selected is that the linker script has code in it to intentionally
barf on that because it's guaranteed not to boot on any hardware.

If we decide that building an allnoconfig without any platform
is actually ok, we could just as well rip out that error statement.

	Arnd

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-09 20:22     ` Arnd Bergmann
@ 2013-01-09 20:39       ` Rob Herring
  2013-01-09 20:48         ` Russell King - ARM Linux
  2013-01-09 21:09         ` Nicolas Pitre
  2013-01-09 21:00       ` Nicolas Pitre
  1 sibling, 2 replies; 18+ messages in thread
From: Rob Herring @ 2013-01-09 20:39 UTC (permalink / raw)
  To: linux-arm-kernel

On 01/09/2013 02:22 PM, Arnd Bergmann wrote:
> On Wednesday 09 January 2013, Nicolas Pitre wrote:
>> On Wed, 9 Jan 2013, Arnd Bergmann wrote:
>>
>>> On a related topic, I still think we should fix ARCH_MULTI_V7 not
>>> to select ARCH_VEXPRESS unconditionally and come up with a better
>>> way to avoid having an empty platform list to make 'allnoconfig'
>>> still work.
>>
>> The virtual guest platform support that Will and Marc did is small 
>> enough that it could always be selected in place of vexpress.
> 
> But that only helps when ARMv7 is selected, unless we want to build
> it only for ARMv4, v5 or v6 kernels.
> 
> Besides, the only reason we can't have a kernel without any platform
> selected is that the linker script has code in it to intentionally
> barf on that because it's guaranteed not to boot on any hardware.
> 
> If we decide that building an allnoconfig without any platform
> is actually ok, we could just as well rip out that error statement.
> 

That patch is already posted, but Russell doesn't like it as you can
have a kernel that doesn't boot. You don't like the allno and randconfig
failures, so we're stuck. I think there are dozens of config options
that will make you not boot on any given platform, so failing to boot
because you did not select your machine is a non-issue.

Rob

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-09 20:39       ` Rob Herring
@ 2013-01-09 20:48         ` Russell King - ARM Linux
  2013-01-10  3:51           ` Rob Herring
  2013-01-09 21:09         ` Nicolas Pitre
  1 sibling, 1 reply; 18+ messages in thread
From: Russell King - ARM Linux @ 2013-01-09 20:48 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jan 09, 2013 at 02:39:36PM -0600, Rob Herring wrote:
> On 01/09/2013 02:22 PM, Arnd Bergmann wrote:
> > On Wednesday 09 January 2013, Nicolas Pitre wrote:
> >> On Wed, 9 Jan 2013, Arnd Bergmann wrote:
> >>
> >>> On a related topic, I still think we should fix ARCH_MULTI_V7 not
> >>> to select ARCH_VEXPRESS unconditionally and come up with a better
> >>> way to avoid having an empty platform list to make 'allnoconfig'
> >>> still work.
> >>
> >> The virtual guest platform support that Will and Marc did is small 
> >> enough that it could always be selected in place of vexpress.
> > 
> > But that only helps when ARMv7 is selected, unless we want to build
> > it only for ARMv4, v5 or v6 kernels.
> > 
> > Besides, the only reason we can't have a kernel without any platform
> > selected is that the linker script has code in it to intentionally
> > barf on that because it's guaranteed not to boot on any hardware.
> > 
> > If we decide that building an allnoconfig without any platform
> > is actually ok, we could just as well rip out that error statement.
> > 
> 
> That patch is already posted, but Russell doesn't like it as you can
> have a kernel that doesn't boot. You don't like the allno and randconfig
> failures, so we're stuck. I think there are dozens of config options
> that will make you not boot on any given platform, so failing to boot
> because you did not select your machine is a non-issue.

What I actually suggested is that we should be aiming for the DT side
of things to get to the point where DT is just another _single_ platform
as far as that code goes, and that DT should describe the hardware
sufficiently well that we don't have multiple machine_desc things to
select via DT - so a DT kernel would have exactly one machine_desc (or
maybe even zero! - with the linker script check conditional on !CONFIG_OF)

That then gets rid of the issue entirely.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-09 20:22     ` Arnd Bergmann
  2013-01-09 20:39       ` Rob Herring
@ 2013-01-09 21:00       ` Nicolas Pitre
  2013-01-09 21:15         ` Arnd Bergmann
  1 sibling, 1 reply; 18+ messages in thread
From: Nicolas Pitre @ 2013-01-09 21:00 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 9 Jan 2013, Arnd Bergmann wrote:

> On Wednesday 09 January 2013, Nicolas Pitre wrote:
> > On Wed, 9 Jan 2013, Arnd Bergmann wrote:
> > 
> > > On a related topic, I still think we should fix ARCH_MULTI_V7 not
> > > to select ARCH_VEXPRESS unconditionally and come up with a better
> > > way to avoid having an empty platform list to make 'allnoconfig'
> > > still work.
> > 
> > The virtual guest platform support that Will and Marc did is small 
> > enough that it could always be selected in place of vexpress.
> 
> But that only helps when ARMv7 is selected, unless we want to build
> it only for ARMv4, v5 or v6 kernels.

That is still a problem.  I assumed from your statement above that only 
ARCH_MULTI_V7 was affected.

> Besides, the only reason we can't have a kernel without any platform
> selected is that the linker script has code in it to intentionally
> barf on that because it's guaranteed not to boot on any hardware.

I know -- that linker script assertion is mine.  :-)

> If we decide that building an allnoconfig without any platform
> is actually ok, we could just as well rip out that error statement.

Is it expected for allnoconfig kernels to still boot on other 
architectures? If so I think we should try to still provide a valid 
config even in the allnoconfig case.


Nicolas

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-09 20:39       ` Rob Herring
  2013-01-09 20:48         ` Russell King - ARM Linux
@ 2013-01-09 21:09         ` Nicolas Pitre
  1 sibling, 0 replies; 18+ messages in thread
From: Nicolas Pitre @ 2013-01-09 21:09 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 9 Jan 2013, Rob Herring wrote:

> That patch is already posted, but Russell doesn't like it as you can
> have a kernel that doesn't boot. You don't like the allno and randconfig
> failures, so we're stuck. I think there are dozens of config options
> that will make you not boot on any given platform, so failing to boot
> because you did not select your machine is a non-issue.

Rather than simply accept that "there are dozens of config options that 
will make you not boot on any given platform" and allow for this to be 
used as an argument for future sloppiness, I think we should consider 
fixing the config rules to avoid that situation as much as possible 
instead.


Nicolas

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-09 21:00       ` Nicolas Pitre
@ 2013-01-09 21:15         ` Arnd Bergmann
  2013-01-09 21:37           ` Nicolas Pitre
  0 siblings, 1 reply; 18+ messages in thread
From: Arnd Bergmann @ 2013-01-09 21:15 UTC (permalink / raw)
  To: linux-arm-kernel

On Wednesday 09 January 2013, Nicolas Pitre wrote:
> > If we decide that building an allnoconfig without any platform
> > is actually ok, we could just as well rip out that error statement.
> 
> Is it expected for allnoconfig kernels to still boot on other 
> architectures? If so I think we should try to still provide a valid 
> config even in the allnoconfig case.

The practical use of a kernel without any device drivers or file
systems is pretty low, I would not expect such a kernel to be
any useful. Having a regular configuration where you just disable
the platform support is a little different. This could happen
when the platform you are building for depends on a specific
feature to be enabled or disabled and that option is accidentally
changed. E.g. when you turn off MMU support on a platform that
depends on having that, we fall back to the default platform
(versatile?). The same may happen when you build for a single
board and one of it's dependencies goes away.

	Arnd

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-09 21:15         ` Arnd Bergmann
@ 2013-01-09 21:37           ` Nicolas Pitre
  2013-01-09 22:14             ` Arnd Bergmann
  0 siblings, 1 reply; 18+ messages in thread
From: Nicolas Pitre @ 2013-01-09 21:37 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 9 Jan 2013, Arnd Bergmann wrote:

> On Wednesday 09 January 2013, Nicolas Pitre wrote:
> > > If we decide that building an allnoconfig without any platform
> > > is actually ok, we could just as well rip out that error statement.
> > 
> > Is it expected for allnoconfig kernels to still boot on other 
> > architectures? If so I think we should try to still provide a valid 
> > config even in the allnoconfig case.
> 
> The practical use of a kernel without any device drivers or file
> systems is pretty low, I would not expect such a kernel to be
> any useful.

I didn't say "useful".  But at least "booting" e.g. to print out a 
kernel oops because no root filesystem is available or the like should 
be a minimum.  Having the wrong platform configured in might prevent 
even that from working, but at least we shouldn't allow for a kernel 
config that we know in advance has no chance of ever executing anywhere.


Nicolas

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-09 21:37           ` Nicolas Pitre
@ 2013-01-09 22:14             ` Arnd Bergmann
  0 siblings, 0 replies; 18+ messages in thread
From: Arnd Bergmann @ 2013-01-09 22:14 UTC (permalink / raw)
  To: linux-arm-kernel

On Wednesday 09 January 2013, Nicolas Pitre wrote:
> On Wed, 9 Jan 2013, Arnd Bergmann wrote:
> 
> > On Wednesday 09 January 2013, Nicolas Pitre wrote:
> > > > If we decide that building an allnoconfig without any platform
> > > > is actually ok, we could just as well rip out that error statement.
> > > 
> > > Is it expected for allnoconfig kernels to still boot on other 
> > > architectures? If so I think we should try to still provide a valid 
> > > config even in the allnoconfig case.
> > 
> > The practical use of a kernel without any device drivers or file
> > systems is pretty low, I would not expect such a kernel to be
> > any useful.
> 
> I didn't say "useful".  But at least "booting" e.g. to print out a 
> kernel oops because no root filesystem is available or the like should 
> be a minimum.  Having the wrong platform configured in might prevent 
> even that from working, but at least we shouldn't allow for a kernel 
> config that we know in advance has no chance of ever executing anywhere.

x86 allows you disable support for all the CPU types at the same time,
although the default is to not give you the option and enable them
all together, which means that allnoconfig may still boot, but
randconfig may not. That is probably a reasonable compromise.

Maybe we could have the virtual platform as the default but make it
invisible if CONFIG_EXPERT is disable. That would also make allnoconfig
be reasonable. Thinking a bit more about the CPU setting for the
virtual platform, I guess it actually makes sense to let the user
build this for any CPU: It makes a very nice minimal kernel for
running in qemu and easily allows you to test a rootfs that was
built for an arbitrary CPU without having to support a specific
SoC in qemu.

	Arnd

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-09 20:48         ` Russell King - ARM Linux
@ 2013-01-10  3:51           ` Rob Herring
  2013-01-10 10:16             ` Arnd Bergmann
  0 siblings, 1 reply; 18+ messages in thread
From: Rob Herring @ 2013-01-10  3:51 UTC (permalink / raw)
  To: linux-arm-kernel

On 01/09/2013 02:48 PM, Russell King - ARM Linux wrote:
> On Wed, Jan 09, 2013 at 02:39:36PM -0600, Rob Herring wrote:
>> On 01/09/2013 02:22 PM, Arnd Bergmann wrote:
>>> On Wednesday 09 January 2013, Nicolas Pitre wrote:
>>>> On Wed, 9 Jan 2013, Arnd Bergmann wrote:
>>>>
>>>>> On a related topic, I still think we should fix ARCH_MULTI_V7 not
>>>>> to select ARCH_VEXPRESS unconditionally and come up with a better
>>>>> way to avoid having an empty platform list to make 'allnoconfig'
>>>>> still work.
>>>>
>>>> The virtual guest platform support that Will and Marc did is small 
>>>> enough that it could always be selected in place of vexpress.
>>>
>>> But that only helps when ARMv7 is selected, unless we want to build
>>> it only for ARMv4, v5 or v6 kernels.
>>>
>>> Besides, the only reason we can't have a kernel without any platform
>>> selected is that the linker script has code in it to intentionally
>>> barf on that because it's guaranteed not to boot on any hardware.
>>>
>>> If we decide that building an allnoconfig without any platform
>>> is actually ok, we could just as well rip out that error statement.
>>>
>>
>> That patch is already posted, but Russell doesn't like it as you can
>> have a kernel that doesn't boot. You don't like the allno and randconfig
>> failures, so we're stuck. I think there are dozens of config options
>> that will make you not boot on any given platform, so failing to boot
>> because you did not select your machine is a non-issue.
> 
> What I actually suggested is that we should be aiming for the DT side
> of things to get to the point where DT is just another _single_ platform
> as far as that code goes, and that DT should describe the hardware
> sufficiently well that we don't have multiple machine_desc things to
> select via DT - so a DT kernel would have exactly one machine_desc (or
> maybe even zero! - with the linker script check conditional on !CONFIG_OF)
> 
> That then gets rid of the issue entirely.

I agree completely. I look at mach-highbank (and mach-virt) as what else
needs to be done in terms of refactoring or moving to DT. That's
certainly a long term goal, but what is the short term solution?

Rob

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-10  3:51           ` Rob Herring
@ 2013-01-10 10:16             ` Arnd Bergmann
  2013-01-10 13:20               ` Christopher Covington
  0 siblings, 1 reply; 18+ messages in thread
From: Arnd Bergmann @ 2013-01-10 10:16 UTC (permalink / raw)
  To: linux-arm-kernel

On Thursday 10 January 2013, Rob Herring wrote:
> > 
> > What I actually suggested is that we should be aiming for the DT side
> > of things to get to the point where DT is just another single platform
> > as far as that code goes, and that DT should describe the hardware
> > sufficiently well that we don't have multiple machine_desc things to
> > select via DT - so a DT kernel would have exactly one machine_desc (or
> > maybe even zero! - with the linker script check conditional on !CONFIG_OF)
> > 
> > That then gets rid of the issue entirely.
> 
> I agree completely. I look at mach-highbank (and mach-virt) as what else
> needs to be done in terms of refactoring or moving to DT.

It's also what we are doing on arm64 from the start, where there is
no machine descriptor already. Any experience we make with arm64 will
also help us improve arm in the long run, I hope.

> That's certainly a long term goal, but what is the short term solution?

I'd certainly be happy with

* removing the intentional build error for ARCH_MULTIPLATFORM, but leaving
  it in for !ARCH_MULTIPLATFORM
* having mach-virt enabled by default on ARCH_MULTIPLATFORM, and only
  visible for EXPERT.
* making mach-virt compatible with all CPUs starting with ARM7.

That would make allnoconfig, allyesconfig and allmodconfig work (besides
all the other bugs) on qemu at least, avoid build errors with randconfig
and make it hard enough to build a kernel that doesn't run on anything.

	Arnd

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-10 10:16             ` Arnd Bergmann
@ 2013-01-10 13:20               ` Christopher Covington
  2013-01-10 13:45                 ` Marc Zyngier
  0 siblings, 1 reply; 18+ messages in thread
From: Christopher Covington @ 2013-01-10 13:20 UTC (permalink / raw)
  To: linux-arm-kernel

On 01/10/2013 05:16 AM, Arnd Bergmann wrote:

[...]

> I'd certainly be happy with
> 
> * removing the intentional build error for ARCH_MULTIPLATFORM, but leaving
>   it in for !ARCH_MULTIPLATFORM
> * having mach-virt enabled by default on ARCH_MULTIPLATFORM, and only
>   visible for EXPERT.
> * making mach-virt compatible with all CPUs starting with ARM7.
> 
> That would make allnoconfig, allyesconfig and allmodconfig work (besides
> all the other bugs) on qemu at least, avoid build errors with randconfig
> and make it hard enough to build a kernel that doesn't run on anything.

If this is going to be the approach, I would like to once again suggest that
paths, configuration options, and compatibility strings along the lines of
"mach-genericarmv7", "Generic ARMv7 Machine", and "linux,genericarmv7" be
considered in place of "mach-virt", "Dummy Virtual Machine" and
"linux,dummy-virt", respectively.

Virtualization may have been the initial motivation for creating mach-virt,
but the code is clearly also immediately applicable to other environments such
as simulation/emulation, and sticking to a name like "Dummy Virtual Machine"
makes it sound like such usage is erroneous.

Regards,
Christopher

-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by
the Linux Foundation

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM
  2013-01-10 13:20               ` Christopher Covington
@ 2013-01-10 13:45                 ` Marc Zyngier
  0 siblings, 0 replies; 18+ messages in thread
From: Marc Zyngier @ 2013-01-10 13:45 UTC (permalink / raw)
  To: linux-arm-kernel

On 10/01/13 13:20, Christopher Covington wrote:
> On 01/10/2013 05:16 AM, Arnd Bergmann wrote:
> 
> [...]
> 
>> I'd certainly be happy with
>>
>> * removing the intentional build error for ARCH_MULTIPLATFORM, but leaving
>>   it in for !ARCH_MULTIPLATFORM
>> * having mach-virt enabled by default on ARCH_MULTIPLATFORM, and only
>>   visible for EXPERT.
>> * making mach-virt compatible with all CPUs starting with ARM7.
>>
>> That would make allnoconfig, allyesconfig and allmodconfig work (besides
>> all the other bugs) on qemu at least, avoid build errors with randconfig
>> and make it hard enough to build a kernel that doesn't run on anything.
> 
> If this is going to be the approach, I would like to once again suggest that
> paths, configuration options, and compatibility strings along the lines of
> "mach-genericarmv7", "Generic ARMv7 Machine", and "linux,genericarmv7" be
> considered in place of "mach-virt", "Dummy Virtual Machine" and
> "linux,dummy-virt", respectively.
> 
> Virtualization may have been the initial motivation for creating mach-virt,
> but the code is clearly also immediately applicable to other environments such
> as simulation/emulation, and sticking to a name like "Dummy Virtual Machine"
> makes it sound like such usage is erroneous.

mach-virt requires GIC, Architected Timers and PSCI. I'm not prepared to
impose these requirements on all future v7 platforms yet.

When we reach a point where we have a completely DT driven setup,
without any explicit hook, I'll be happy to add new compatibility strings.

	M.
-- 
Jazz is not dead. It just smells funny...

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2013-01-10 13:45 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-09 18:15 [PATCH] ARM: nommu: re-enable use of vexpress without ARCH_MULTIPLATFORM Jonathan Austin
2013-01-09 18:30 ` Nicolas Pitre
2013-01-09 18:41   ` Will Deacon
2013-01-09 19:17     ` [PATCH v2] " Jonathan Austin
2013-01-09 18:43 ` [PATCH] " Arnd Bergmann
2013-01-09 18:54   ` Nicolas Pitre
2013-01-09 20:22     ` Arnd Bergmann
2013-01-09 20:39       ` Rob Herring
2013-01-09 20:48         ` Russell King - ARM Linux
2013-01-10  3:51           ` Rob Herring
2013-01-10 10:16             ` Arnd Bergmann
2013-01-10 13:20               ` Christopher Covington
2013-01-10 13:45                 ` Marc Zyngier
2013-01-09 21:09         ` Nicolas Pitre
2013-01-09 21:00       ` Nicolas Pitre
2013-01-09 21:15         ` Arnd Bergmann
2013-01-09 21:37           ` Nicolas Pitre
2013-01-09 22:14             ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).