Building for MMU-less vexpress targets
jonathan.austin at arm.com
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
> 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
@@ -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