[Buildroot] [v1 1/4] arch: add support 16k page size on ARM64
Gaël PORTAY
gael.portay at rtone.fr
Tue Nov 21 19:34:45 UTC 2023
The BCM2712 of the RaspberryPi 5 supports for 16KB page size.
This adds support for 16 KB on ARM64.
Signed-off-by: Gaël PORTAY <gael.portay at rtone.fr>
---
arch/Config.in.arm | 4 ++++
arch/arch.mk | 2 +-
linux/linux.mk | 4 ++++
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/arch/Config.in.arm b/arch/Config.in.arm
index 78621e321c..b44a164e03 100644
--- a/arch/Config.in.arm
+++ b/arch/Config.in.arm
@@ -781,6 +781,9 @@ choice
config BR2_ARM64_PAGE_SIZE_4K
bool "4KB"
+config BR2_ARM64_PAGE_SIZE_16K
+ bool "16KB"
+
config BR2_ARM64_PAGE_SIZE_64K
bool "64KB"
@@ -789,6 +792,7 @@ endchoice
config BR2_ARM64_PAGE_SIZE
string
default "4K" if BR2_ARM64_PAGE_SIZE_4K
+ default "16K" if BR2_ARM64_PAGE_SIZE_16K
default "64K" if BR2_ARM64_PAGE_SIZE_64K
config BR2_ARCH
diff --git a/arch/arch.mk b/arch/arch.mk
index 2e737b92ac..4174d33df5 100644
--- a/arch/arch.mk
+++ b/arch/arch.mk
@@ -23,7 +23,7 @@ ifeq ($(BR2_ARC_PAGE_SIZE_4K)$(BR2_ARM64_PAGE_SIZE_4K),y)
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096
else ifeq ($(BR2_ARC_PAGE_SIZE_8K),y)
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=8192 -Wl,-z,common-page-size=8192
-else ifeq ($(BR2_ARC_PAGE_SIZE_16K),y)
+else ifeq ($(BR2_ARC_PAGE_SIZE_16K)$(BR2_ARM64_PAGE_SIZE_16K),y)
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384
else ifeq ($(BR2_ARM64_PAGE_SIZE_64K),y)
ARCH_TOOLCHAIN_WRAPPER_OPTS += -Wl,-z,max-page-size=65536 -Wl,-z,common-page-size=65536
diff --git a/linux/linux.mk b/linux/linux.mk
index 1db5c6046d..53e2ad6d48 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -411,6 +411,10 @@ define LINUX_KCONFIG_FIXUP_CMDS
$(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_ARM64_PAGE_SIZE_16K),
+ $(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_4K_PAGES)
+ $(call KCONFIG_ENABLE_OPT,CONFIG_ARM64_16K_PAGES)
+ $(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_64K_PAGES))
$(if $(BR2_ARM64_PAGE_SIZE_64K),
$(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_4K_PAGES)
$(call KCONFIG_DISABLE_OPT,CONFIG_ARM64_16K_PAGES)
--
2.42.1
More information about the buildroot
mailing list