[Buildroot] [PATCH v2 2/2] arch/arm: Make page size configurable on Aarch64
Łukasz Stelmach
l.stelmach at samsung.com
Mon Dec 6 19:27:32 UTC 2021
Select BR2_ARCH_HAS_MMU_PAGE_SIZE_{4,16,64}K from BR2_aarch64{,_be}.
Signed-off-by: Łukasz Stelmach <l.stelmach at samsung.com>
---
arch/Config.in | 6 ++++++
linux/linux.mk | 13 +++++++++++++
2 files changed, 19 insertions(+)
diff --git a/arch/Config.in b/arch/Config.in
index 561d599561..2f20cfb268 100644
--- a/arch/Config.in
+++ b/arch/Config.in
@@ -67,6 +67,9 @@ config BR2_aarch64
bool "AArch64 (little endian)"
select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY
+ select BR2_ARCH_HAS_MMU_PAGE_SIZE_4K
+ select BR2_ARCH_HAS_MMU_PAGE_SIZE_16K
+ select BR2_ARCH_HAS_MMU_PAGE_SIZE_64K
help
Aarch64 is a 64-bit architecture developed by ARM Holdings.
http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
@@ -76,6 +79,9 @@ config BR2_aarch64_be
bool "AArch64 (big endian)"
select BR2_ARCH_IS_64
select BR2_ARCH_HAS_MMU_MANDATORY
+ select BR2_ARCH_HAS_MMU_PAGE_SIZE_4K
+ select BR2_ARCH_HAS_MMU_PAGE_SIZE_16K
+ select BR2_ARCH_HAS_MMU_PAGE_SIZE_64K
help
Aarch64 is a 64-bit architecture developed by ARM Holdings.
http://www.arm.com/products/processors/instruction-set-architectures/armv8-architecture.php
diff --git a/linux/linux.mk b/linux/linux.mk
index e66e0db52f..20b1be3be5 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -329,6 +329,10 @@ define LINUX_KCONFIG_FIXUP_CMDS
$(if $(BR2_powerpc)$(BR2_powerpc64)$(BR2_powerpc64le),
$(call KCONFIG_ENABLE_OPT,CONFIG_PPC_DISABLE_WERROR))
$(if $(BR2_ARCH_MMU_PAGE_SIZE_4K),
+ $(if $(BR2_aarch64)$(BR2_aarch64_be),
+ $(call KCONFIG_ENABLE_OPT,CONFIG_ARM64_4K_PAGES)
+ $(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_16K_PAGES)
+ $(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_64K_PAGES))
$(if $(BR2_arcle)$(BR2_arcbe),
$(call KCONFIG_ENABLE_OPT,CONFIG_ARC_PAGE_SIZE_4K)
$(call KCONFIG_DISABLE_OPT,CONFIG_ARC_PAGE_SIZE_8K)
@@ -339,10 +343,19 @@ define LINUX_KCONFIG_FIXUP_CMDS
$(call KCONFIG_ENABLE_OPT,CONFIG_ARC_PAGE_SIZE_8K)
$(call KCONFIG_DISABLE_OPT,CONFIG_ARC_PAGE_SIZE_16K)))
$(if $(BR2_ARCH_MMU_PAGE_SIZE_16K),
+ $(if $(BR2_aarch64)$(BR2_aarch64_be),
+ $(call KCONFIG_DISABLEOPT,CONFIG_ARM64_4K_PAGES)
+ $(call KCONFIG_ENABLE_OPT,CONFIG_ARM64_16K_PAGES))
+ $(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_64K_PAGES)
$(if $(BR2_arcle)$(BR2_arcbe),
$(call KCONFIG_DISABLE_OPT,CONFIG_ARC_PAGE_SIZE_4K)
$(call KCONFIG_DISABLE_OPT,CONFIG_ARC_PAGE_SIZE_8K)
$(call KCONFIG_ENABLE_OPT,CONFIG_ARC_PAGE_SIZE_16K)))
+ $(if $(BR2_ARCH_MMU_PAGE_SIZE_64K),
+ $(if $(BR2_aarch64)$(BR2_aarch64_be),
+ $(call KCONFIG_DISABLEOPT,CONFIG_ARM64_4K_PAGES)
+ $(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_16K_PAGES))
+ $(call KCONFIG_ENABLE_OPT,CONFIG_ARM64_64K_PAGES))
$(if $(BR2_TARGET_ROOTFS_CPIO),
$(call KCONFIG_ENABLE_OPT,CONFIG_BLK_DEV_INITRD))
# As the kernel gets compiled before root filesystems are
--
2.30.2
More information about the buildroot
mailing list