allwinner: Disable unused features to save space
authorSamuel Holland <[email protected]>
Sat, 8 Jun 2019 21:03:32 +0000 (16:03 -0500)
committerSamuel Holland <[email protected]>
Sat, 8 Jun 2019 21:48:39 +0000 (16:48 -0500)
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 <[email protected]>
Change-Id: Ib90454ef0c798d5e714b7780c585be0b1ed49c6d

plat/allwinner/common/allwinner-common.mk

index f20f5157e96267f42e3d490175b27fa4830c5232..585079b751beb3d02252ea08982191b7a6578c3a 100644 (file)
@@ -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