refactor: convert arm platforms to use the generic GIC driverThis reduces the code the platforms have to carry and makes their buildrules a bit simpler.The main benefit is that plat_my_core_pos(
refactor: convert arm platforms to use the generic GIC driverThis reduces the code the platforms have to carry and makes their buildrules a bit simpler.The main benefit is that plat_my_core_pos() no longer needs to be calledwithin the driver, helping with performance a bit.Change-Id: I0b0d1d36d20d67c41c8c9dc14ade11bda6d4a6afSigned-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
juno: Add security sources for tsp-junoSecurity sources are required if stack-protector is enabled.Change-Id: Ia0071f60cf03d48b200fd1facbe50bd9e2f8f282Signed-off-by: Louis Mayencourt <louis.maye
juno: Add security sources for tsp-junoSecurity sources are required if stack-protector is enabled.Change-Id: Ia0071f60cf03d48b200fd1facbe50bd9e2f8f282Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
Use SPDX license identifiersTo make software license auditing simpler, use SPDX[0] licenseidentifiers instead of duplicating the license text in every file.NOTE: Files that have been imported by
Use SPDX license identifiersTo make software license auditing simpler, use SPDX[0] licenseidentifiers instead of duplicating the license text in every file.NOTE: Files that have been imported by FreeBSD have not been modified.[0]: https://spdx.org/Change-Id: I80a00e1f641b8cc075ca5a95b10607ed9ed8761aSigned-off-by: dp-arm <dimitris.papastamos@arm.com>
Allow multi cluster topology definitions for ARM platformsThe common topology description helper funtions and macros forARM Standard platforms assumed a dual cluster system. This is notflexible e
Allow multi cluster topology definitions for ARM platformsThe common topology description helper funtions and macros forARM Standard platforms assumed a dual cluster system. This is notflexible enough to scale to multi cluster platforms. This patch doesthe 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
Rework use of ARM GIC drivers on ARM platformsSuport for ARM GIC v2.0 and v3.0 drivers has been reworked to create threeseparate drivers instead of providing a single driver that can work on both
Rework use of ARM GIC drivers on ARM platformsSuport for ARM GIC v2.0 and v3.0 drivers has been reworked to create threeseparate drivers instead of providing a single driver that can work on bothversions of the GIC architecture. These drivers correspond to the followingsoftware use cases:1. A GICv2 only driver that can run only on ARM GIC v2.0 implementations e.g. GIC-4002. A GICv3 only driver that can run only on ARM GIC v3.0 implementations e.g. GIC-500 in a mode where all interrupt regimes use GICv3 features3. A deprecated GICv3 driver that operates in legacy mode. This driver can operate only in the GICv2 mode in the secure world. On a GICv3 system, this driver allows normal world to run in either GICv3 mode (asymmetric mode) or in the GICv2 mode. Both modes of operation are deprecated on GICv3 systems.ARM platforms implement both versions of the GIC architecture. This patch adds alayer of abstraction to help ARM platform ports chose the right GIC driver andcorresponding platform support. This is as described below:1. A set of ARM common functions have been introduced to initialise the GIC and the driver during cold and warm boot. These functions are prefixed as "plat_arm_gic_". Weak definitions of these functions have been provided for each type of driver.2. Each platform includes the sources that implement the right functions directly into the its makefile. The FVP can be instantiated with different versions of the GIC architecture. It uses the FVP_USE_GIC_DRIVER build option to specify which of the three drivers should be included in the build.3. A list of secure interrupts has to be provided to initialise each of the three GIC drivers. For GIC v3.0 the interrupt ids have to be further categorised as Group 0 and Group 1 Secure interrupts. For GIC v2.0, the two types are merged and treated as Group 0 interrupts. The two lists of interrupts are exported from the platform_def.h. The lists are constructed by adding a list of board specific interrupt ids to a list of ids common to all ARM platforms and Compute sub-systems.This patch also makes some fields of `arm_config` data structure in FVP redundantand these unused fields are removed.Change-Id: Ibc8c087be7a8a6b041b78c2c3bd0c648cd2035d8
PSCI: Migrate ARM reference platforms to new platform APIThis patch migrates ARM reference platforms, Juno and FVP, to the new platformAPI mandated by the new PSCI power domain topology and compos
PSCI: Migrate ARM reference platforms to new platform APIThis patch migrates ARM reference platforms, Juno and FVP, to the new platformAPI mandated by the new PSCI power domain topology and composite power stateframeworks. The platform specific makefiles now exports the build flagENABLE_PLAT_COMPAT=0 to disable the platform compatibility layer.Change-Id: I3040ed7cce446fc66facaee9c67cb54a8cd7ca29
Move Juno port to plat/arm/board/junoMove the Juno port from plat/juno to plat/arm/board/juno. Also renamesome of the files so they are consistently prefixed with juno_.Update the platform makefi
Move Juno port to plat/arm/board/junoMove the Juno port from plat/juno to plat/arm/board/juno. Also renamesome of the files so they are consistently prefixed with juno_.Update the platform makefiles accordingly.Change-Id: I0af6cb52a5fee7ef209107a1188b76a3c33a2a9f