arm-trusted-firmware/plat/arm/common
Jeenu Viswambharan 11ad8f208d FVP: Add support for multi-threaded CPUs
ARM CPUs with multi-threading implementation has more than one
Processing Element in a single physical CPU. Such an implementation will
reflect the following changes in the MPIDR register:

  - The MT bit set;

  - Affinity levels pertaining to cluster and CPUs occupy one level
    higher than in a single-threaded implementation, and the lowest
    affinity level pertains to hardware threads. MPIDR affinity level
    fields essentially appear shifted to left than otherwise.

The FVP port henceforth assumes that both properties above to be
concomitant on a given FVP platform.

To accommodate for varied MPIDR formats at run time, this patch
re-implements the FVP platform-specific functions that translates MPIDR
values to a linear indices, along with required validation. The same
treatment is applied for GICv3 MPIDR hashing function as well.

An FVP-specific build option FVP_MAX_PE_PER_CPU is introduced which
specifies the maximum number of threads implemented per CPU. For
backwards compatibility, its value defaults to 1.

Change-Id: I729b00d3e121d16ce9a03de4f9db36dfac580e3f
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
2017-08-01 14:33:47 +01:00
..
aarch32 Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
aarch64 ARM plat changes to enable CryptoCell integration 2017-06-28 15:58:06 +01:00
sp_min sp_min: Implement `sp_min_plat_runtime_setup()` 2017-06-20 15:14:01 +01:00
tsp Fix order of ARM platform #includes 2017-07-14 10:50:40 +01:00
arm_bl1_fwu.c Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
arm_bl1_setup.c Fix order of ARM platform #includes 2017-07-14 10:50:40 +01:00
arm_bl2_setup.c Fix order of ARM platform #includes 2017-07-14 10:50:40 +01:00
arm_bl2u_setup.c Fix order of ARM platform #includes 2017-07-14 10:50:40 +01:00
arm_bl31_setup.c Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
arm_cci.c Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
arm_ccn.c Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
arm_common.c Merge pull request #927 from jeenu-arm/state-switch 2017-05-11 16:04:52 +01:00
arm_common.mk ARM plat changes to enable CryptoCell integration 2017-06-28 15:58:06 +01:00
arm_gicv2.c Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
arm_gicv3.c FVP: Add support for multi-threaded CPUs 2017-08-01 14:33:47 +01:00
arm_gicv3_legacy.c Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
arm_image_load.c Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
arm_io_storage.c Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
arm_pm.c plat/arm: Compile out impossible conditional for AArch32 2017-05-24 14:23:08 +01:00
arm_sip_svc.c Merge pull request #927 from jeenu-arm/state-switch 2017-05-11 16:04:52 +01:00
arm_topology.c Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
arm_tzc400.c ARM plat changes to enable CryptoCell integration 2017-06-28 15:58:06 +01:00
arm_tzc_dmc500.c ARM plat changes to enable CryptoCell integration 2017-06-28 15:58:06 +01:00
execution_state_switch.c Add missing SPDX header 2017-05-11 17:31:29 +01:00