diff options
author | Alexei Fedorov <Alexei.Fedorov@arm.com> | 2020-10-05 13:48:26 +0100 |
---|---|---|
committer | Alexei Fedorov <Alexei.Fedorov@arm.com> | 2020-10-05 13:56:38 +0100 |
commit | 250fccc9557e7a746a304a17e192c9d1d4894138 (patch) | |
tree | ba10cbde56d6ee01e0f25cff249f0f162a141bea /plat/arm/fvp | |
parent | da5f4e36b2bb34f4df3b7ddb3f5424005b8f5bb4 (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.mk | 14 |
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 |