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
1 parent 49b6d34 commit 0108047ae425faa91ddf782f264d7ed67d3351d8
@Soby Mathew Soby Mathew authored on 1 Feb 2016
Showing 14 changed files
View
docs/user-guide.md
View
include/plat/arm/common/arm_def.h
View
include/plat/arm/common/plat_arm.h
View
plat/arm/board/fvp/fvp_def.h
View
plat/arm/board/fvp/fvp_topology.c
View
plat/arm/board/fvp/include/platform_def.h
View
plat/arm/board/fvp/platform.mk
View
plat/arm/board/juno/include/platform_def.h
View
plat/arm/board/juno/juno_def.h
View
plat/arm/board/juno/juno_topology.c 0 → 100644
View
plat/arm/board/juno/platform.mk
View
plat/arm/board/juno/tsp/tsp-juno.mk
View
plat/arm/common/arm_topology.c
View
plat/arm/css/common/css_topology.c