Modify FVP makefile for cores that support both AArch64/32
authorJohn Tsichritzis <[email protected]>
Tue, 13 Aug 2019 09:11:41 +0000 (10:11 +0100)
committerJohn Tsichritzis <[email protected]>
Wed, 11 Sep 2019 13:41:42 +0000 (14:41 +0100)
Some cores support only AArch64 from EL1 and above, e.g. A76, N1 etc. If
TF-A is compiled with CTX_INCLUDE_AARCH32_REGS=0 so as to properly
handle those cores, only the AArch64 cores' assembly is included in the
TF-A binary. In other words, for FVP, TF-A assumes that AArch64 only
cores will never exist in the same cluster with cores that also support
AArch32.

However, A55 and A75 can be used as AArch64 only cores, despite
supporting AArch32, too. This patch enables A55 and A75 to exist in
clusters together with AArch64 cores.

Change-Id: I58750ad6c3d76ce77eb354784c2a42f2c179031d
Signed-off-by: John Tsichritzis <[email protected]>
plat/arm/board/fvp/platform.mk

index 617da2d69524165745bc23c989b57e0541e0a194..1e7cfce5e7b86c0dd41817e5c64f831c6301f291 100644 (file)
@@ -99,14 +99,16 @@ ifeq (${ARCH}, aarch64)
 # select a different set of CPU files, depending on whether we compile for
 # hardware assisted coherency cores or not
 ifeq (${HW_ASSISTED_COHERENCY}, 0)
+# Cores used without DSU
        FVP_CPU_LIBS    +=      lib/cpus/aarch64/cortex_a35.S                   \
                                lib/cpus/aarch64/cortex_a53.S                   \
                                lib/cpus/aarch64/cortex_a57.S                   \
                                lib/cpus/aarch64/cortex_a72.S                   \
                                lib/cpus/aarch64/cortex_a73.S
 else
-       # AArch64-only cores
+# Cores used with DSU only
        ifeq (${CTX_INCLUDE_AARCH32_REGS}, 0)
+       # AArch64-only cores
                FVP_CPU_LIBS    +=      lib/cpus/aarch64/cortex_a76.S           \
                                        lib/cpus/aarch64/cortex_a76ae.S         \
                                        lib/cpus/aarch64/cortex_a77.S           \
@@ -114,11 +116,10 @@ else
                                        lib/cpus/aarch64/neoverse_e1.S          \
                                        lib/cpus/aarch64/neoverse_zeus.S        \
                                        lib/cpus/aarch64/cortex_hercules.S
-       # AArch64/AArch32
-       else
-               FVP_CPU_LIBS    +=      lib/cpus/aarch64/cortex_a55.S           \
-                                       lib/cpus/aarch64/cortex_a75.S
        endif
+       # AArch64/AArch32 cores
+       FVP_CPU_LIBS    +=      lib/cpus/aarch64/cortex_a55.S           \
+                               lib/cpus/aarch64/cortex_a75.S
 endif
 
 else
OSZAR »