OSDN Git Service

arm64: add kconfig symbol to configure physical address size
authorKristina Martsenko <kristina.martsenko@arm.com>
Wed, 13 Dec 2017 17:07:16 +0000 (17:07 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 22 Dec 2017 17:30:33 +0000 (17:30 +0000)
ARMv8.2 introduces support for 52-bit physical addresses. To prepare for
supporting this, add a new kconfig symbol to configure the physical
address space size. The symbols will be used in subsequent patches.
Currently the only choice is 48, a later patch will add the option of 52
once the required code is in place.

Tested-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Tested-by: Bob Picco <bob.picco@oracle.com>
Reviewed-by: Bob Picco <bob.picco@oracle.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Kristina Martsenko <kristina.martsenko@arm.com>
[catalin.marinas@arm.com: folded minor patches into this one]
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/Kconfig
arch/arm64/include/asm/pgtable-hwdef.h
arch/arm64/include/asm/sparsemem.h

index a93339f..8dc9378 100644 (file)
@@ -646,6 +646,22 @@ config ARM64_VA_BITS
        default 47 if ARM64_VA_BITS_47
        default 48 if ARM64_VA_BITS_48
 
+choice
+       prompt "Physical address space size"
+       default ARM64_PA_BITS_48
+       help
+         Choose the maximum physical address range that the kernel will
+         support.
+
+config ARM64_PA_BITS_48
+       bool "48-bit"
+
+endchoice
+
+config ARM64_PA_BITS
+       int
+       default 48 if ARM64_PA_BITS_48
+
 config CPU_BIG_ENDIAN
        bool "Build big-endian kernel"
        help
index eb0c2bd..c1de9f6 100644 (file)
 /*
  * Highest possible physical address supported.
  */
-#define PHYS_MASK_SHIFT                (48)
+#define PHYS_MASK_SHIFT                (CONFIG_ARM64_PA_BITS)
 #define PHYS_MASK              ((UL(1) << PHYS_MASK_SHIFT) - 1)
 
 /*
index 74a9d30..b299929 100644 (file)
@@ -17,7 +17,7 @@
 #define __ASM_SPARSEMEM_H
 
 #ifdef CONFIG_SPARSEMEM
-#define MAX_PHYSMEM_BITS       48
+#define MAX_PHYSMEM_BITS       CONFIG_ARM64_PA_BITS
 #define SECTION_SIZE_BITS      30
 #endif