fvp: pwrc: Move to drivers/ folderChange-Id: I670ea80e0331c2d4b2ccfa563a45469a43f6902dSigned-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
plat/arm: Fix header dependenciesFrom now on, platform_def.h must include any header with definitions thatare platform-specific (like arm_def.h) and the included headers mustn'tinclude back platf
plat/arm: Fix header dependenciesFrom now on, platform_def.h must include any header with definitions thatare platform-specific (like arm_def.h) and the included headers mustn'tinclude back platform_def.h, and shouldn't be used by other files. Onlyplatform_def.h should be included in other files. This will ensure that allneeded definitions are present, rather than needing to include all theheaders in all the definitions' headers just in case.This also prevents problems like cyclic dependencies.Change-Id: I9d3cf4d1de4b956fa035c79545222697acdaf5caSigned-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
FVP: Fix function for translating MPIDR to linear indexThe current AArch32 version of plat_arm_calc_core_pos uses an incorrectalgorithm to calculate the linear position of a core / PE from itsMPI
FVP: Fix function for translating MPIDR to linear indexThe current AArch32 version of plat_arm_calc_core_pos uses an incorrectalgorithm to calculate the linear position of a core / PE from itsMPIDR.This patch corrects the algorithm to:(ClusterId * FVP_MAX_CPUS_PER_CLUSTER) * FVP_MAX_PE_PER_CPU+ (CPUId * FVP_MAX_PE_PER_CPU)+ ThreadIdwhich supports cores where there are more than 1 PE per CPU.NOTE: the AArch64 version was fixed in 39b21d1Change-Id: I72aea89d8f72f8b1fef54e2177a0fa6fef0f5513Signed-off-by: David Cunado <david.cunado@arm.com>
FVP: Add support for multi-threaded CPUsARM CPUs with multi-threading implementation has more than oneProcessing Element in a single physical CPU. Such an implementation willreflect the following
FVP: Add support for multi-threaded CPUsARM CPUs with multi-threading implementation has more than oneProcessing Element in a single physical CPU. Such an implementation willreflect 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 beconcomitant on a given FVP platform.To accommodate for varied MPIDR formats at run time, this patchre-implements the FVP platform-specific functions that translates MPIDRvalues to a linear indices, along with required validation. The sametreatment is applied for GICv3 MPIDR hashing function as well.An FVP-specific build option FVP_MAX_PE_PER_CPU is introduced whichspecifies the maximum number of threads implemented per CPU. Forbackwards compatibility, its value defaults to 1.Change-Id: I729b00d3e121d16ce9a03de4f9db36dfac580e3fSigned-off-by: Jeenu Viswambharan <jeenu.viswambharan@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>
AArch32: Common changes needed for BL1/BL2This patch adds common changes to support AArch32 state inBL1 and BL2. Following are the changes:* Added functions for disabling MMU from Secure state.
AArch32: Common changes needed for BL1/BL2This patch adds common changes to support AArch32 state inBL1 and BL2. Following are the changes:* Added functions for disabling MMU from Secure state.* Added AArch32 specific SMC function.* Added semihosting support.* Added reporting of unhandled exceptions.* Added uniprocessor stack support.* Added `el3_entrypoint_common` macro that can be shared by BL1 and BL32 (SP_MIN) BL stages. The `el3_entrypoint_common` is similar to the AArch64 counterpart with the main difference in the assembly instructions and the registers that are relevant to AArch32 execution state.* Enabled `LOAD_IMAGE_V2` flag in Makefile for `ARCH=aarch32` and added check to make sure that platform has not overridden to disable it.Change-Id: I33c6d8dfefb2e5d142fdfd06a0f4a7332962e1a3
AArch32: Add essential ARM platform and FVP supportThis patch adds AArch32 support for FVP and implements common platform APIslike `plat_get_my_stack`, `plat_set_my_stack`, `plat_my_core_cos` for
AArch32: Add essential ARM platform and FVP supportThis patch adds AArch32 support for FVP and implements common platform APIslike `plat_get_my_stack`, `plat_set_my_stack`, `plat_my_core_cos` for AArch32.Only Multi Processor(MP) implementations of these functions are considered inthis patch. The ARM Standard platform layer helpers are implemented forAArch32 and the common makefiles are modified to cater for both AArch64 andAArch32 builds. Compatibility with the deprecated platform API is notsupported for AArch32.Change-Id: Iad228400613eec91abf731b49e21a15bcf2833ea