[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