summaryrefslogtreecommitdiff
path: root/include/plat/arm/common/plat_arm.h
diff options
context:
space:
mode:
authorSoby Mathew <soby.mathew@arm.com>2016-02-01 14:04:34 +0000
committerSoby Mathew <soby.mathew@arm.com>2016-02-19 09:18:52 +0000
commit0108047ae425faa91ddf782f264d7ed67d3351d8 (patch)
treeacf7c3667dc992b6b2d6ae1d44eada555b4f054b /include/plat/arm/common/plat_arm.h
parent49b6d3491cd68be1112aa9c3b804e56070e7b8d6 (diff)
Allow multi cluster topology definitions for ARM platforms
The common topology description helper funtions and macros for ARM Standard platforms assumed a dual cluster system. This is not flexible enough to scale to multi cluster platforms. This patch does the following changes for more flexibility in defining topology: 1. The `plat_get_power_domain_tree_desc()` definition is moved from `arm_topology.c` to platform specific files, that is `fvp_topology.c` and `juno_topology.c`. Similarly the common definition of the porting macro `PLATFORM_CORE_COUNT` in `arm_def.h` is moved to platform specific `platform_def.h` header. 2. The ARM common layer porting macros which were dual cluster specific are now removed and a new macro PLAT_ARM_CLUSTER_COUNT is introduced which must be defined by each ARM standard platform. 3. A new mandatory ARM common layer porting API `plat_arm_get_cluster_core_count()` is introduced to enable the common implementation of `arm_check_mpidr()` to validate MPIDR. 4. For the FVP platforms, a new build option `FVP_NUM_CLUSTERS` has been introduced which allows the user to specify the cluster count to be used to build the topology tree within Trusted Firmare. This enables Trusted Firmware to be built for multi cluster FVP models. Change-Id: Ie7a2e38e5661fe2fdb2c8fdf5641d2b2614c2b6b
Diffstat (limited to 'include/plat/arm/common/plat_arm.h')
-rw-r--r--include/plat/arm/common/plat_arm.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/plat/arm/common/plat_arm.h b/include/plat/arm/common/plat_arm.h
index 8d7e83b5..e9eebaa0 100644
--- a/include/plat/arm/common/plat_arm.h
+++ b/include/plat/arm/common/plat_arm.h
@@ -179,6 +179,7 @@ int arm_io_is_toc_valid(void);
/*
* Mandatory functions required in ARM standard platforms
*/
+unsigned int plat_arm_get_cluster_core_count(u_register_t mpidr);
void plat_arm_gic_driver_init(void);
void plat_arm_gic_init(void);
void plat_arm_gic_cpuif_enable(void);