| 3aa8fa77 | 16-Aug-2022 |
Harrison Mutai <harrison.mutai@arm.com> |
build: fix semantic ver generation for windows
Fix syntax error when generating semantic versions on windows hosts.
Change-Id: Idba8827145b829a8ba07ff0540407dbfa1ca7984 Signed-off-by: Harrison Muta
build: fix semantic ver generation for windows
Fix syntax error when generating semantic versions on windows hosts.
Change-Id: Idba8827145b829a8ba07ff0540407dbfa1ca7984 Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
show more ...
|
| 8f23476e | 11-Aug-2022 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "feat(bl): add interface to query TF-A semantic ver" into integration |
| 1631f9c7 | 09-Aug-2022 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "feat(sve): support full SVE vector length" into integration |
| e95abc4c | 14-Jul-2022 |
Salome Thirot <salome.thirot@arm.com> |
fix: make TF-A use provided OpenSSL binary
Currently Tf-A uses whatever openssl binary is on the system to sign images. However if OPENSSL_DIR is specified in the build flags this can lead to linkin
fix: make TF-A use provided OpenSSL binary
Currently Tf-A uses whatever openssl binary is on the system to sign images. However if OPENSSL_DIR is specified in the build flags this can lead to linking issues as the system binary can end up being linked against shared libraries provided in OPENSSL_DIR/lib if both binaries (the system's and the on in OPENSSL_DIR/bin) are the same version. This patch ensures that the binary used is always the one given by OPENSSL_DIR to avoid those link issues.
Signed-off-by: Salome Thirot <salome.thirot@arm.com> Change-Id: Ib534e06ebc8482e4391e376d3791a87968de4a99
show more ...
|
| dddf4283 | 12-Jul-2022 |
laurenw-arm <lauren.wehrmeister@arm.com> |
feat(bl): add interface to query TF-A semantic ver
Adding interface for stand-alone semantic version of TF-A for exporting to RSS attestation, and potentially other areas as well.
Signed-off-by: La
feat(bl): add interface to query TF-A semantic ver
Adding interface for stand-alone semantic version of TF-A for exporting to RSS attestation, and potentially other areas as well.
Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com> Change-Id: Ib4a2c47aa1e42a3b850185e674c90708a05cda53
show more ...
|
| bebcf27f | 20-Apr-2022 |
Mark Brown <broonie@kernel.org> |
feat(sve): support full SVE vector length
Currently the SVE code hard codes a maximum vector length of 512 bits when configuring SVE rather than the architecture supported maximum. While this is fin
feat(sve): support full SVE vector length
Currently the SVE code hard codes a maximum vector length of 512 bits when configuring SVE rather than the architecture supported maximum. While this is fine for current physical implementations the architecture allows for vector lengths up to 2048 bits and emulated implementations generally allow any length up to this maximum.
Since there may be system specific reasons to limit the maximum vector length make the limit configurable, defaulting to the architecture maximum. The default should be suitable for most implementations since the hardware will limit the actual vector length selected to what is physically supported in the system.
Signed-off-by: Mark Brown <broonie@kernel.org> Change-Id: I22c32c98a81c0cf9562411189d8a610a5b61ca12
show more ...
|
| 1b7d656a | 21-Apr-2022 |
laurenw-arm <lauren.wehrmeister@arm.com> |
build(tbbr): drive cert_create changes for cca CoT
The build system needs to drive the cert_create tool in a slightly different manner when using the cca chain of trust.
- It needs to pass it the p
build(tbbr): drive cert_create changes for cca CoT
The build system needs to drive the cert_create tool in a slightly different manner when using the cca chain of trust.
- It needs to pass it the plat, core_swd, and swd ROT key files.
- It must now generate the cca, core_swd, and plat key certificates, and exclude the non-relevant certificates.
Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com> Change-Id: I5759bfaf06913f86b47c7d04c897773bba16a807
show more ...
|
| 00e28874 | 02-Mar-2022 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
build(drtm): add DRTM support build option
Added DRTM support build option in the makefiles. This build option will be used by the DRTM implementation in the subsequent patches.
Signed-off-by: Mani
build(drtm): add DRTM support build option
Added DRTM support build option in the makefiles. This build option will be used by the DRTM implementation in the subsequent patches.
Signed-off-by: Manish V Badarkhe <manish.badarkhe@arm.com> Signed-off-by: Lucian Paul-Trifu <lucian.paultrifu@gmail.com> Change-Id: I15366f86b3ebd6ab2ebcb192753015d547cdddee
show more ...
|
| 0ce2072d | 18-Jan-2022 |
Tamas Ban <tamas.ban@arm.com> |
feat(lib/psa): mock PSA APIs
Introduce PLAT_RSS_NOT_SUPPORTED build config to provide a mocked version of PSA APIs. The goal is to test the RSS backend based measured boot and attestation token requ
feat(lib/psa): mock PSA APIs
Introduce PLAT_RSS_NOT_SUPPORTED build config to provide a mocked version of PSA APIs. The goal is to test the RSS backend based measured boot and attestation token request integration on such a platform (AEM FVP) where RSS is otherwise unsupported. The mocked PSA API version does not send a request to the RSS, it only returns with success and hard-coded values.
Signed-off-by: Tamas Ban <tamas.ban@arm.com> Change-Id: Ice8d174adf828c1df08fc589f0e17abd1e382a4d
show more ...
|
| 744ad974 | 28-Jan-2022 |
johpow01 <john.powell@arm.com> |
feat(brbe): add BRBE support for NS world
This patch enables access to the branch record buffer control registers in non-secure EL2 and EL1 using the new build option ENABLE_BRBE_FOR_NS. It is disab
feat(brbe): add BRBE support for NS world
This patch enables access to the branch record buffer control registers in non-secure EL2 and EL1 using the new build option ENABLE_BRBE_FOR_NS. It is disabled for all secure world, and cannot be used with ENABLE_RME.
This option is disabled by default, however, the FVP platform makefile enables it for FVP builds.
Signed-off-by: John Powell <john.powell@arm.com> Change-Id: I576a49d446a8a73286ea6417c16bd0b8de71fca0
show more ...
|
| 894c635b | 29-Apr-2022 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes I47014d72,Ibf00c386 into integration
* changes: docs(bl31): aarch64: RESET_TO_BL31_WITH_PARAMS feat(bl31): aarch64: RESET_TO_BL31_WITH_PARAMS |
| 25844ff7 | 15-Apr-2022 |
Jorge Ramirez-Ortiz <jorge@foundries.io> |
feat(bl31): aarch64: RESET_TO_BL31_WITH_PARAMS
It is not always the case that RESET_TO_BL31 enabled platforms don't execute a bootloader before BL31.
For those use cases, being able to receive argu
feat(bl31): aarch64: RESET_TO_BL31_WITH_PARAMS
It is not always the case that RESET_TO_BL31 enabled platforms don't execute a bootloader before BL31.
For those use cases, being able to receive arguments from that first loader (i.e: a DTB with TPM logs) might be necessary feature.
This code has been validated on iMX8mm.
Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io> Change-Id: Ibf00c3867cb1d1012b8b376e64ccaeca1c9d2bff
show more ...
|
| 8dccddc7 | 23-Mar-2022 |
Leon Chen <leon.chen@mediatek.com> |
build(makefile): add extra makefile variable for extension
Introduce EXTRA_LINKERFILE for GCC linker options. GCC linker can realize multiple linker scripts, and vendors can extend ro or text sectio
build(makefile): add extra makefile variable for extension
Introduce EXTRA_LINKERFILE for GCC linker options. GCC linker can realize multiple linker scripts, and vendors can extend ro or text sections by inserting sections among the original sections specified by blx.ld.S.
Vendors can assign compiled object files by assigning MODULE_OBJS with their own built path.
Signed-off-by: Leon Chen <leon.chen@mediatek.com> Change-Id: I1bd2e0383a52204723816131da4b7948def4c4e9
show more ...
|
| 9284d212 | 27-Apr-2022 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "refactor(twed): improve TWED enablement in EL-3" into integration |
| 781d07a4 | 28-Mar-2022 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
refactor(twed): improve TWED enablement in EL-3
The current implementation uses plat_arm API under generic code. "plat_arm" API is a convention used with Arm common platform layer and is reserved fo
refactor(twed): improve TWED enablement in EL-3
The current implementation uses plat_arm API under generic code. "plat_arm" API is a convention used with Arm common platform layer and is reserved for that purpose. In addition, the function has a weak definition which is not encouraged in TF-A.
Henceforth, removing the weak API with a configurable macro "TWED_DELAY" of numeric data type in generic code and simplifying the implementation. By default "TWED_DELAY" is defined to zero, and the delay value need to be explicitly set by the platforms during buildtime.
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> Change-Id: I25cd6f628e863dc40415ced3a82d0662fdf2d75a
show more ...
|
| 1d63ae4d | 01-Dec-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
feat(spmc): enable building of the SPMC at EL3
Introduce build flag for enabling the secure partition manager core, SPMC_AT_EL3. When enabled, the SPMC module will be included into the BL31 image. B
feat(spmc): enable building of the SPMC at EL3
Introduce build flag for enabling the secure partition manager core, SPMC_AT_EL3. When enabled, the SPMC module will be included into the BL31 image. By default the flag is disabled.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I5ea1b953e5880a07ffc91c4dea876a375850cf2a
show more ...
|
| 6a0da736 | 17-Jan-2022 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
refactor(el3-runtime): add arch-features detection mechanism
This patch adds architectural features detection procedure to ensure features enabled are present in the given hardware implementation.
refactor(el3-runtime): add arch-features detection mechanism
This patch adds architectural features detection procedure to ensure features enabled are present in the given hardware implementation.
It verifies whether the architecture build flags passed during compilation match the respective features by reading their ID registers. It reads through all the enabled feature specific ID registers at once and panics in case of mismatch(feature enabled but not implemented in PE).
Feature flags are used at sections (context_management, save and restore routines of registers) during context switch. If the enabled feature flag is not supported by the PE, it causes an exception while saving or restoring the registers guarded by them.
With this mechanism, the build flags are validated at an early phase prior to their usage, thereby preventing any undefined action under their control.
This implementation is based on tristate approach for each feature and currently FEAT_STATE=0 and FEAT_STATE=1 are covered as part of this patch. FEAT_STATE=2 is planned for phase-2 implementation and will be taken care separately.
The patch has been explicitly tested, by adding a new test_config with build config enabling majority of the features and detected all of them under FVP launched with parameters enabling v8.7 features.
Note: This is an experimental procedure and the mechanism itself is guarded by a macro "FEATURE_DETECTION", which is currently being disabled by default.
The "FEATURE_DETECTION" macro is documented and the platforms are encouraged to make use of this diagnostic tool by enabling this "FEATURE_DETECTION" flag explicitly and get used to its behaviour during booting before the procedure gets mandated.
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> Change-Id: Ia23d95430fe82d417a938b672bfb5edc401b0f43
show more ...
|
| 96a8ed14 | 24-Feb-2022 |
Jiafei Pan <Jiafei.Pan@nxp.com> |
feat(bl2): add support to separate no-loadable sections
Add new options SEPARATE_BL2_NOLOAD_REGION to separate no-loadable sections (.bss, stack, page tables) to a ram region specified by BL2_NOLOAD
feat(bl2): add support to separate no-loadable sections
Add new options SEPARATE_BL2_NOLOAD_REGION to separate no-loadable sections (.bss, stack, page tables) to a ram region specified by BL2_NOLOAD_START and BL2_NOLOAD_LIMIT.
Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com> Change-Id: I844ee0fc405474af0aff978d292c826fbe0a82fd
show more ...
|
| 7d33ffe4 | 25-May-2021 |
Daniel Boulby <daniel.boulby@arm.com> |
fix(el3-runtime): set unset pstate bits to default
During a transition to a higher EL some of the PSTATE bits are not set by hardware, this means that their state may be leaked from lower ELs. This
fix(el3-runtime): set unset pstate bits to default
During a transition to a higher EL some of the PSTATE bits are not set by hardware, this means that their state may be leaked from lower ELs. This patch sets those bits to a default value upon entry to EL3.
This patch was tested using a debugger to check the PSTATE values are correctly set. As well as adding a test in the next patch to ensure the PSTATE in lower ELs is still maintained after this change.
Change-Id: Ie546acbca7b9aa3c86bd68185edded91b2a64ae5 Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
show more ...
|
| 24ab2c0a | 19-Nov-2021 |
Yann Gautier <yann.gautier@st.com> |
fix(sve): disable ENABLE_SVE_FOR_NS for AARCH32
With patch [1], ENABLE_SVE_FOR_NS is always enable. Disable it for AARCH32 platforms, as the feature is not supported. The warning message is replaced
fix(sve): disable ENABLE_SVE_FOR_NS for AARCH32
With patch [1], ENABLE_SVE_FOR_NS is always enable. Disable it for AARCH32 platforms, as the feature is not supported. The warning message is replaced with an error, and the second override is removed.
[1] dc78e62d80e6 ("feat(sme): enable SME functionality")
Change-Id: Ic9c5e2612c9e00bd0d37ca3b59537e39270c9799 Signed-off-by: Yann Gautier <yann.gautier@st.com>
show more ...
|
| 820371b1 | 15-Dec-2021 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
fix(amu): add default value for ENABLE_FEAT_FGT and ENABLE_FEAT_ECV flags
ENABLE_FEAT_FGT and ENABLE_FEAT_ECV macros are used to access HDFGRTR_EL2 and CNTPOFF_EL2 registers respectively. These flag
fix(amu): add default value for ENABLE_FEAT_FGT and ENABLE_FEAT_ECV flags
ENABLE_FEAT_FGT and ENABLE_FEAT_ECV macros are used to access HDFGRTR_EL2 and CNTPOFF_EL2 registers respectively. These flags are set to true for v8.6 and upwards and are not handled explicitly for lower architecture versions.
This patch adds definitive default value to these build macros, so that for v8.5 and below, they are not overridden and set to true by the gcc.
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> Change-Id: Ic300194c8ad77558be9a0e00153e42185bf2c58c
show more ...
|
| f74cb0be | 25-Nov-2021 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
fix(amu): fault handling on EL2 context switch
The HAFGRTR_EL2 register is UNDEFINED unless the CPU supports both FEAT_FGT and FEAT_AMUv1. FEAT_FGT is mandatory for v8.6-A and upwards, but FEAT_AMUv
fix(amu): fault handling on EL2 context switch
The HAFGRTR_EL2 register is UNDEFINED unless the CPU supports both FEAT_FGT and FEAT_AMUv1. FEAT_FGT is mandatory for v8.6-A and upwards, but FEAT_AMUv1 is optional (from v8.4-A upwards), and as such any 8.6-A cores today without support for FEAT_AMUv1 will trigger an undefined instruction exception on accessing this register.
Currently ARM_ARCH_AT_LEAST macro has been used to associate with an architecture extension allowing to access HAFGRTR_EL2 register. This condition should be replaced with macros specific to individual features. This patch adds a new set of macros "ENABLE_FEAT_FGT, ENABLE_FEAT_AMUv1, ENABLE_FEAT_ECV" under build options to provide controlled access to the HAFGRTR_EL2 register.
Further to ensure that the the build options passed comply with the given hardware implementation, a feature detection mechanism, checking whether build options match with the architecture is required at bootime. This will be implemented and pushed later in a separate patch.
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> Change-Id: Ie390f4babe233b8b09455290277edbddecd33ead
show more ...
|
| dc78e62d | 08-Jul-2021 |
johpow01 <john.powell@arm.com> |
feat(sme): enable SME functionality
This patch adds two new compile time options to enable SME in TF-A: ENABLE_SME_FOR_NS and ENABLE_SME_FOR_SWD for use in non-secure and secure worlds respectively.
feat(sme): enable SME functionality
This patch adds two new compile time options to enable SME in TF-A: ENABLE_SME_FOR_NS and ENABLE_SME_FOR_SWD for use in non-secure and secure worlds respectively. Setting ENABLE_SME_FOR_NS=1 will enable SME for non-secure worlds and trap SME, SVE, and FPU/SIMD instructions in secure context. Setting ENABLE_SME_FOR_SWD=1 will disable these traps, but support for SME context management does not yet exist in SPM so building with SPD=spmd will fail.
The existing ENABLE_SVE_FOR_NS and ENABLE_SVE_FOR_SWD options cannot be used with SME as it is a superset of SVE and will enable SVE and FPU/SIMD along with SME.
Signed-off-by: John Powell <john.powell@arm.com> Change-Id: Iaaac9d22fe37b4a92315207891da848a8fd0ed73
show more ...
|
| 68120783 | 05-May-2021 |
Chris Kay <chris.kay@arm.com> |
feat(mpmm): add support for MPMM
MPMM - the Maximum Power Mitigation Mechanism - is an optional microarchitectural feature present on some Armv9-A cores, introduced with the Cortex-X2, Cortex-A710 a
feat(mpmm): add support for MPMM
MPMM - the Maximum Power Mitigation Mechanism - is an optional microarchitectural feature present on some Armv9-A cores, introduced with the Cortex-X2, Cortex-A710 and Cortex-A510 cores.
MPMM allows the SoC firmware to detect and limit high activity events to assist in SoC processor power domain dynamic power budgeting and limit the triggering of whole-rail (i.e. clock chopping) responses to overcurrent conditions.
This feature is enabled via the `ENABLE_MPMM` build option. Configuration can be done via FCONF by enabling `ENABLE_MPMM_FCONF`, or by via the plaform-implemented `plat_mpmm_topology` function.
Change-Id: I77da82808ad4744ece8263f0bf215c5a091c3167 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|
| 742ca230 | 19-Aug-2021 |
Chris Kay <chris.kay@arm.com> |
feat(amu): enable per-core AMU auxiliary counters
This change makes AMU auxiliary counters configurable on a per-core basis, controlled by `ENABLE_AMU_AUXILIARY_COUNTERS`.
Auxiliary counters can be
feat(amu): enable per-core AMU auxiliary counters
This change makes AMU auxiliary counters configurable on a per-core basis, controlled by `ENABLE_AMU_AUXILIARY_COUNTERS`.
Auxiliary counters can be described via the `HW_CONFIG` device tree if the `ENABLE_AMU_FCONF` build option is enabled, or the platform must otherwise implement the `plat_amu_topology` function.
A new phandle property for `cpu` nodes (`amu`) has been introduced to the `HW_CONFIG` specification to allow CPUs to describe the view of their own AMU:
``` cpu0: cpu@0 { ...
amu = <&cpu0_amu>; }; ```
Multiple cores may share an `amu` handle if they implement the same set of auxiliary counters.
AMU counters are described for one or more AMUs through the use of a new `amus` node:
``` amus { cpu0_amu: amu-0 { #address-cells = <1>; #size-cells = <0>;
counter@0 { reg = <0>;
enable-at-el3; };
counter@n { reg = <n>;
... }; }; }; ```
This structure describes the **auxiliary** (group 1) AMU counters. Architected counters have architecturally-defined behaviour, and as such do not require DTB entries.
These `counter` nodes support two properties:
- The `reg` property represents the counter register index. - The presence of the `enable-at-el3` property determines whether the firmware should enable the counter prior to exiting EL3.
Change-Id: Ie43aee010518c5725a3b338a4899b0857caf4c28 Signed-off-by: Chris Kay <chris.kay@arm.com>
show more ...
|