From 8f31853babcee794d3f282c1584abe72e1bbd8b5 Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sat, 8 Jun 2019 16:03:32 -0500 Subject: [PATCH] allwinner: Disable unused features to save space As all Allwinner platforms are single-cluster A53 chips, we can disable support for newer, unsupported architecture extensions. We can also avoid some cache maintenance code, since no platform-specific setup is required to enable coherency. These changes reduce the size of .text on a default build with GCC 9.1 enough that .vectors again fits in the second half of a page, instead of requiring its own page. This commit was boot-tested on the Pinebook. Signed-off-by: Samuel Holland Change-Id: Ib90454ef0c798d5e714b7780c585be0b1ed49c6d --- plat/allwinner/common/allwinner-common.mk | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plat/allwinner/common/allwinner-common.mk b/plat/allwinner/common/allwinner-common.mk index f20f5157e..585079b75 100644 --- a/plat/allwinner/common/allwinner-common.mk +++ b/plat/allwinner/common/allwinner-common.mk @@ -38,6 +38,12 @@ BL31_SOURCES += drivers/arm/gic/common/gic_common.c \ # The bootloader is guaranteed to only run on CPU 0 by the boot ROM. COLD_BOOT_SINGLE_CPU := 1 +# Do not enable SPE (not supported on ARM v8.0). +ENABLE_SPE_FOR_LOWER_ELS := 0 + +# Do not enable SVE (not supported on ARM v8.0). +ENABLE_SVE_FOR_NS := 0 + # Enable workarounds for Cortex-A53 errata. Allwinner uses at least r0p4. ERRATA_A53_835769 := 1 ERRATA_A53_843419 := 1 @@ -56,3 +62,6 @@ RESET_TO_BL31 := 1 # We are short on memory, so save 3.5KB by not having an extra coherent page. USE_COHERENT_MEM := 0 + +# This platform is single-cluster and does not require coherency setup. +WARMBOOT_ENABLE_DCACHE_EARLY := 1