Building for MMU-less vexpress targets

Jonathan Austin jonathan.austin at
Tue Jan 8 14:01:19 EST 2013


On 06/11/12 23:14, Nicolas Pitre wrote:
> On Tue, 6 Nov 2012, Arnd Bergmann wrote:
>> On Tuesday 06 November 2012, Nicolas Pitre wrote:
>> The two options are either to make
>> vexpress be single-platform when building for !MMU, or to allow multiplatform
>> kernels to be built without MMU support in principle. I think the second
>> option is more logical and avoids complex Kconfig constructs.
> Well, I'd rather prefer to think that the first option is the most
> logical between those 2 options, regardless of Kconfig complexity
> issues.
> I didn't look, but just making MULTIPLATFORM depend on !MMU, and
> VEXPRESS depend on MULTIPLATFORM || MMU should be close to what is
> needed, no?

I've spent a little bit of time trying this, as both Arnd and you seemed 
to be happy with a solution along these lines.

However, I can't seem to make it fall out quite so trivially so I wonder 
if you'd mind clarifying what you were expecting:

The problem that I see when I try to do this is that ARCH_VEXPRESS no 
longer exists in the 'choice' for "ARM system type" in arch/arm/Kconfig. 
A solution that allows selection of VEXPRESS as a single platform (!MMU) 
and multi-platform (MMU) appears to need an entry in that 'choice' for 
the single platform case, and a config option in 
arch/arm/mach-vexpress/Kconfig for the multiplatform one.

So it seems to me we need a shim in one of those two locations...

As Will suggested a while back, the shim in arch/arm/Kconfig could look 

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 335e220..0561d87 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -305,6 +305,11 @@ config ARCH_REALVIEW
           This enables support for ARM Ltd RealView boards.

+       bool "ARM Ltd. Versatile Express family (nommu)"
+       depends on !MMU
+       select ARCH_VEXPRESS
         bool "ARM Ltd. Versatile family"

With the other perhaps being to merge the ARCH_VEXPRESS option back in 
to the 'choice' and create a ARCH_VEXPRESS_MULTI elsewhere...

Is that the sort of thing you had in mind, or is there another way 
around that I'm missing?



More information about the linux-arm-kernel mailing list