summaryrefslogtreecommitdiff
path: root/plat/arm/fvp
diff options
context:
space:
mode:
authorAlexei Fedorov <Alexei.Fedorov@arm.com>2020-10-05 13:48:26 +0100
committerAlexei Fedorov <Alexei.Fedorov@arm.com>2020-10-05 13:56:38 +0100
commit250fccc9557e7a746a304a17e192c9d1d4894138 (patch)
treeba10cbde56d6ee01e0f25cff249f0f162a141bea /plat/arm/fvp
parentda5f4e36b2bb34f4df3b7ddb3f5424005b8f5bb4 (diff)
TFTF: Fix maximum number of CPUs in DSU cluster
According to "Combinations of cores" section in the Arm DynamIQ Shared Unit Technical Reference Manual, platforms with CPUs inside DynamIQ Shared Unit (DSU) can have up to 8 CPUs in a cluster. One of the examples of such platform is FVP_Base_Cortex-A55x4+Cortex-A76x2 which is used in CI tests. When running TFTF, test detects only 4 Cortex-A55 CPUs and other 2 Cortex-A76 CPUs are kept in power off state: NOTICE: Cluster #0 [4 CPUs] NOTICE: CPU #0 [MPID: 0x1000000] NOTICE: CPU #1 [MPID: 0x1000100] NOTICE: CPU #2 [MPID: 0x1000200] NOTICE: CPU #3 [MPID: 0x1000300] TFTF FVP topology for CPUs with single threads supports up to 4 clusters with up to 4 CPUs per cluster (default configuration is 2 x 4) and thus cannot detect 2 extra CPUs in the same cluster. This patch fixes this issue by setting maximum number of CPUs in DSU cluster to 8. Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com> Change-Id: I18acd1728e566cabb2331c988a2da972f8be3aae
Diffstat (limited to 'plat/arm/fvp')
-rw-r--r--plat/arm/fvp/platform.mk14
1 files changed, 12 insertions, 2 deletions
diff --git a/plat/arm/fvp/platform.mk b/plat/arm/fvp/platform.mk
index b993d72..3c4311f 100644
--- a/plat/arm/fvp/platform.mk
+++ b/plat/arm/fvp/platform.mk
@@ -28,21 +28,31 @@ ifeq ($(FVP_MAX_PE_PER_CPU),2)
$(eval $(call CREATE_SEQ,CLS,1))
$(eval $(call CREATE_SEQ,CPU,8))
else
+# CPU inside DynamIQ Shared Unit: 1 cluster with up to 8 CPUs
+ifeq ($(FVP_CLUSTER_COUNT),1)
+$(eval $(call CREATE_SEQ,CLS,1))
+$(eval $(call CREATE_SEQ,CPU,8))
+else
# CPU with single thread: max 4 clusters with up to 4 CPUs
$(eval $(call CREATE_SEQ,CLS,4))
$(eval $(call CREATE_SEQ,CPU,4))
endif
+endif
# Check cluster count
ifneq ($(FVP_CLUSTER_COUNT),$(filter $(FVP_CLUSTER_COUNT),$(CLS)))
$(error "Incorrect FVP_CLUSTER_COUNT = ${FVP_CLUSTER_COUNT} \
- specified for FVP port with FVP_MAX_PE_PER_CPU = ${FVP_MAX_PE_PER_CPU}")
+ specified for FVP port with \
+ FVP_MAX_CPUS_PER_CLUSTER = ${FVP_MAX_CPUS_PER_CLUSTER} \
+ FVP_MAX_PE_PER_CPU = ${FVP_MAX_PE_PER_CPU}")
endif
# Check number of CPUs per cluster
ifneq ($(FVP_MAX_CPUS_PER_CLUSTER),$(filter $(FVP_MAX_CPUS_PER_CLUSTER),$(CPU)))
$(error "Incorrect FVP_MAX_CPUS_PER_CLUSTER = ${FVP_MAX_CPUS_PER_CLUSTER} \
- specified for FVP port with FVP_MAX_PE_PER_CPU = ${FVP_MAX_PE_PER_CPU}")
+ specified for FVP port with \
+ FVP_CLUSTER_COUNT = ${FVP_CLUSTER_COUNT} \
+ FVP_MAX_PE_PER_CPU = ${FVP_MAX_PE_PER_CPU}")
endif
# Pass FVP topology definitions to the build system