[PATCH v2 08/12] ARM: allow MULTIPLATFORM with !MMU

Stefan Agner stefan at agner.ch
Tue Dec 30 14:02:31 PST 2014


On 2014-12-30 22:42, Rob Herring wrote:
> On Mon, Dec 29, 2014 at 5:32 PM, Stefan Agner <stefan at agner.ch> wrote:
>> In order to support SoC with heterogenous CPU architectures (such
>> as Freescale Vybrid/i.MXSX) it is preferable to use the same
>> architecture (ARCH_MXC in this case) for the MMU enabled and !MMU
>> CPU. Hence allow to select MULTIPLATFORM even without MMU.
> 
> This has been submitted before[1], but you obviously have a better
> reason now. I also need this for my Versatile series to fix
> allnoconfig. However, there are some issues with your implementation.
> 
>> Signed-off-by: Stefan Agner <stefan at agner.ch>
>> ---
>>  arch/arm/Kconfig | 21 ++++++++++-----------
>>  1 file changed, 10 insertions(+), 11 deletions(-)
>>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index 97d07ed..95007b9 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -228,7 +228,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 EMBEDDED || (ARCH_MULTIPLATFORM && MMU)
>>         default y
>>         depends on !XIP_KERNEL && MMU
>>         depends on !ARCH_REALVIEW || !SPARSEMEM
>> @@ -303,15 +303,12 @@ 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 CLKSRC_OF
>>         select COMMON_CLK
>> @@ -783,13 +780,13 @@ comment "CPU Core family selection"
>>
>>  config ARCH_MULTI_V4
>>         bool "ARMv4 based platforms (FA526)"
>> -       depends on !ARCH_MULTI_V6_V7
>> +       depends on !ARCH_MULTI_V6_V7 && MMU
> 
> This is not right. !MMU does not mean the ARM arch does not have an
> MMU, but rather the MMU is already setup with identity mapping (or
> some other static mapping).

Yes, I'm aware of that. However, there are several configuration
depending on "!MMU". Allowing !MMU on ARCH_MULTI_V4...V7 would open up
new combination of configurations... This patch avoids this as much as
possible, by making !MMU only available for ARCH_MULTI_V7M.

I'm not sure what tests/verification would be expected before allowing
those new configurations... Personally, I also don't see much value in
allowing these configurations.

--
Stefan

> 
> Rob
> 
> [1] http://patchwork.ozlabs.org/patch/278996/




More information about the linux-arm-kernel mailing list