diff mbox

[v5,02/14] ARM: add V7_NONLPAE && V7_LPAE sub config

Message ID 1399473888-12947-3-git-send-email-haojian.zhuang@linaro.org
State Changes Requested
Headers show

Commit Message

Haojian Zhuang May 7, 2014, 2:44 p.m. UTC
Since CONFIG_ARM_LPAE could be set in ARM V7, add new two configurations
CONFIG_ARCH_MULTI_V7_NONLPAE & CONFIG_ARCH_MULTI_V7_LPAE.

If we want to enable CONFIG_ARM_LPAE configuration, we should enable
CONFIG_ARCH_MULTI_V7 & disable both CONFIG_ARCH_MULTI_V6 and
CONFIG_ARCH_MULTI_V7_NONLPAE.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
---
 arch/arm/Kconfig    | 13 ++++++++++++-
 arch/arm/mm/Kconfig |  2 +-
 2 files changed, 13 insertions(+), 2 deletions(-)

Comments

Olof Johansson May 7, 2014, 4:46 p.m. UTC | #1
On Wed, May 07, 2014 at 10:44:36PM +0800, Haojian Zhuang wrote:
> Since CONFIG_ARM_LPAE could be set in ARM V7, add new two configurations
> CONFIG_ARCH_MULTI_V7_NONLPAE & CONFIG_ARCH_MULTI_V7_LPAE.
> 
> If we want to enable CONFIG_ARM_LPAE configuration, we should enable
> CONFIG_ARCH_MULTI_V7 & disable both CONFIG_ARCH_MULTI_V6 and
> CONFIG_ARCH_MULTI_V7_NONLPAE.
> 
> Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>

I don't like this. Platforms should just depend on CONFIG_ARCH_MULTI_V7 &&
LPAE (or && !LPAE) instead.

Platforms that _can_ boot without LPAE should not require it, even if
they boot with less available memory.


-Olof
Haojian Zhuang May 7, 2014, 10:33 p.m. UTC | #2
On 8 May 2014 00:46, Olof Johansson <olof@lixom.net> wrote:
> On Wed, May 07, 2014 at 10:44:36PM +0800, Haojian Zhuang wrote:
>> Since CONFIG_ARM_LPAE could be set in ARM V7, add new two configurations
>> CONFIG_ARCH_MULTI_V7_NONLPAE & CONFIG_ARCH_MULTI_V7_LPAE.
>>
>> If we want to enable CONFIG_ARM_LPAE configuration, we should enable
>> CONFIG_ARCH_MULTI_V7 & disable both CONFIG_ARCH_MULTI_V6 and
>> CONFIG_ARCH_MULTI_V7_NONLPAE.
>>
>> Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
>
> I don't like this. Platforms should just depend on CONFIG_ARCH_MULTI_V7 &&
> LPAE (or && !LPAE) instead.
>
> Platforms that _can_ boot without LPAE should not require it, even if
> they boot with less available memory.
>
>
> -Olof

Do you mean that I should remove CONFIG_ARCH_MULTI_V7_NONLPAE &
CONFIG_ARCH_MULTI_V7_LPAE & multi_v7_lpae_defconfig?

Regards
Haojian
Olof Johansson May 20, 2014, 6:18 p.m. UTC | #3
On Wed, May 7, 2014 at 3:33 PM, Haojian Zhuang
<haojian.zhuang@linaro.org> wrote:
> On 8 May 2014 00:46, Olof Johansson <olof@lixom.net> wrote:
>> On Wed, May 07, 2014 at 10:44:36PM +0800, Haojian Zhuang wrote:
>>> Since CONFIG_ARM_LPAE could be set in ARM V7, add new two configurations
>>> CONFIG_ARCH_MULTI_V7_NONLPAE & CONFIG_ARCH_MULTI_V7_LPAE.
>>>
>>> If we want to enable CONFIG_ARM_LPAE configuration, we should enable
>>> CONFIG_ARCH_MULTI_V7 & disable both CONFIG_ARCH_MULTI_V6 and
>>> CONFIG_ARCH_MULTI_V7_NONLPAE.
>>>
>>> Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
>>
>> I don't like this. Platforms should just depend on CONFIG_ARCH_MULTI_V7 &&
>> LPAE (or && !LPAE) instead.
>>
>> Platforms that _can_ boot without LPAE should not require it, even if
>> they boot with less available memory.
>>
>>
>> -Olof
>
> Do you mean that I should remove CONFIG_ARCH_MULTI_V7_NONLPAE &
> CONFIG_ARCH_MULTI_V7_LPAE & multi_v7_lpae_defconfig?

Yes.

Once platforms have been flagged whether they support LPAE or not we
can easily create a lpae-enabled defconfig that doesn't enable a bunch
of extra platforms that it will never work on.


-Olof
diff mbox

Patch

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index ab438cb..0e52a2c 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -918,12 +918,23 @@  config ARCH_MULTI_V6
 	select CPU_V6K
 
 config ARCH_MULTI_V7
-	bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)"
+	bool "ARMv7 based platforms"
 	default y
 	select ARCH_MULTI_V6_V7
 	select CPU_V7
 	select HAVE_SMP
 
+config ARCH_MULTI_V7_NONLPAE
+	bool "ARMv7 non-LPAE based platforms (Cortex-A5/A8/A9, PJ4, PJ4B, Scorpion)"
+	depends on ARCH_MULTI_V7
+	default y
+
+config ARCH_MULTI_V7_LPAE
+	bool "ARMv7 LPAE based platforms (Cortex-A7/A12/A15/A17, Brahma-B15, PJ4B-MP, Krait)"
+	depends on ARCH_MULTI_V7
+	default y
+	select ARM_LPAE if !(ARCH_MULTI_V6 || ARCH_MULTI_V7_NONLPAE)
+
 config ARCH_MULTI_V6_V7
 	bool
 	select MIGHT_HAVE_CACHE_L2X0
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index f5ad9ee..1c1576c 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -615,7 +615,7 @@  comment "Processor Features"
 config ARM_LPAE
 	bool "Support for the Large Physical Address Extension"
 	depends on MMU && CPU_32v7 && !CPU_32v6 && !CPU_32v5 && \
-		!CPU_32v4 && !CPU_32v3
+		!CPU_32v4 && !CPU_32v3 && !ARCH_MULTI_V7_NONLPAE
 	help
 	  Say Y if you have an ARMv7 processor supporting the LPAE page
 	  table format and you would like to access memory beyond the