| a9b64ed9 | 26-Apr-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
feat(pncd): switch to simd_ctx_save/restore apis
Change-Id: I662c0b35e938f8b2013ec60f863de55445f559da Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
| e6e34868 | 18-Jun-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
feat(spm-mm): switch to simd_ctx_save/restore APIs
This patch demonstrates the trivial changes to transparently switch the fpregs_context_* helpers to simd_ctx_* helpers.
Signed-off-by: Madhukar Pa
feat(spm-mm): switch to simd_ctx_save/restore APIs
This patch demonstrates the trivial changes to transparently switch the fpregs_context_* helpers to simd_ctx_* helpers.
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com> Signed-off-by: Okash Khawaja <okash@google.com> Change-Id: I14bda6bd0ead1f34a570b59be8dec3ac40891c20
show more ...
|
| 3524d074 | 17-Jun-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
feat(simd): add rules to rationalize simd ctxt mgmt
Illegal combinations of build flags associated with SIMD context management are flagged by the build system.
Change-Id: I3192af3889e1e864c7875778
feat(simd): add rules to rationalize simd ctxt mgmt
Illegal combinations of build flags associated with SIMD context management are flagged by the build system.
Change-Id: I3192af3889e1e864c7875778616e167ba6894195 Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
show more ...
|
| 308ebfa1 | 17-Jun-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
feat(simd): introduce simd context helper APIs
This patch adds the common API to save and restore FP and SVE. When SVE is enabled we save and restore SVE which automatically covers FP. If FP is enab
feat(simd): introduce simd context helper APIs
This patch adds the common API to save and restore FP and SVE. When SVE is enabled we save and restore SVE which automatically covers FP. If FP is enabled while SVE is not, then we save and restore FP only.
The patch uses simd_ctx_t to save and restore both FP and SVE which means developers need not use fp or sve routines directly. Once all the calls to fpregs_context_* are replaced with simd_ctx_*, we can remove fp_regs_t data structure and macros (taken care in a following patch).
simd_ctx_t is currently allocated in section of its own. This will go into BSS section by default but platform will have option of relocating it to a different section by overriding in plat.ld.S.
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com> Signed-off-by: Okash Khawaja <okash@google.com> Change-Id: I090f8b8fa3862e527b6c40385249adc69256bf24
show more ...
|
| 6d5319af | 17-Jun-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
feat(simd): add routines to save, restore sve state
This adds assembly routines to save and restore SVE registers. In order to share between FPU and SVE the code to save and restore FPCR and FPSR, t
feat(simd): add routines to save, restore sve state
This adds assembly routines to save and restore SVE registers. In order to share between FPU and SVE the code to save and restore FPCR and FPSR, the patch converts code for those registers into macro. Since we will be using simd_ctx_t to save and restore FPU also, we use offsets in simd_ctx_t for FPSR and FPCR. Since simd_ctx_t has the same structure at the beginning as fp_regs_t, those offsets should be the same as CTX_FP_* offsets, when SVE is not enabled. Note that the code also saves and restores FPEXC32 reg along with FPSR and FPCR.
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com> Signed-off-by: Okash Khawaja <okash@google.com> Change-Id: I120c02359794aa6bb6376a464a9afe98bd84ae60
show more ...
|
| 42422622 | 17-Jun-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
feat(simd): add sve state to simd ctxt struct
This patch extends the simd data structure to hold the SVE state. A new build flag CTX_INCLUDE_SVE_REGS is introduced in this patch to enable SVE contex
feat(simd): add sve state to simd ctxt struct
This patch extends the simd data structure to hold the SVE state. A new build flag CTX_INCLUDE_SVE_REGS is introduced in this patch to enable SVE context management.
Necessary precautions are taken such as ensuring the field offsets are not changed and necessary padding is added for alignment reasons.
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com> Signed-off-by: Okash Khawaja <okash@google.com> Change-Id: I54f5222c7d8c68638105003f68caa511d347cd60
show more ...
|
| 841533dd | 17-Jun-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
feat(simd): add data struct for simd ctxt management
From a context management perspective, we refer to SVE and FP state as SIMD. SVE can be considered as a superset of FP/NEON functionality and the
feat(simd): add data struct for simd ctxt management
From a context management perspective, we refer to SVE and FP state as SIMD. SVE can be considered as a superset of FP/NEON functionality and there is a architectural dependency between the two due to the fact that FP registers occupy the bottom 128 bits of SVE Z vector registers.
This patch introduces a new data structure to hold the FP state of a CPU as needed for context management operations during world switch events. It will evolve in next patches to capture the SVE state as well.
Having this unified data structure is necessary for us to implement SIMD context management while catering to various build configurations.
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com> Signed-off-by: Okash Khawaja <okash@google.com> Change-Id: If2a9a7526883780df49bbd3dade2f09f7c3d95ae
show more ...
|
| 553b70c3 | 19-Aug-2024 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "ar/asymmetricSupport" into integration
* changes: feat(tc): enable trbe errata flags for Cortex-A520 and X4 feat(cm): asymmetric feature support for trbe refactor(err
Merge changes from topic "ar/asymmetricSupport" into integration
* changes: feat(tc): enable trbe errata flags for Cortex-A520 and X4 feat(cm): asymmetric feature support for trbe refactor(errata-abi): move EXTRACT_PARTNUM to arch.h feat(cpus): workaround for Cortex-A520(2938996) and Cortex-X4(2726228) feat(tc): make SPE feature asymmetric feat(cm): handle asymmetry for SPE feature feat(cm): support for asymmetric feature among cores feat(cpufeat): add new feature state for asymmetric features
show more ...
|
| 74dc801d | 12-Aug-2024 |
Manish Pandey <manish.pandey2@arm.com> |
feat(tc): enable trbe errata flags for Cortex-A520 and X4
Enable following erratas as per the TARGET_PLATFORM of TC - ERRATA_A520_2938996 - ERRATA_X4_2726228
Signed-off-by: Manish Pandey <manish.
feat(tc): enable trbe errata flags for Cortex-A520 and X4
Enable following erratas as per the TARGET_PLATFORM of TC - ERRATA_A520_2938996 - ERRATA_X4_2726228
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: Ia552473740c34867dd9fd619faf378adcb784821
show more ...
|
| 721249b0 | 05-Aug-2024 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
feat(cm): asymmetric feature support for trbe
This patch checks if the Errata 2938996(Cortex-A520) , 2726228(Cortex-X4) applies to cores and if affected applies the errata workaround which disables
feat(cm): asymmetric feature support for trbe
This patch checks if the Errata 2938996(Cortex-A520) , 2726228(Cortex-X4) applies to cores and if affected applies the errata workaround which disables TRBE.
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I53b037839820c8b3a869f393588302a365d5b97c
show more ...
|
| 1073bf3d | 14-Aug-2024 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
refactor(errata-abi): move EXTRACT_PARTNUM to arch.h
This patch moves EXTRACT_PARTNUM from errata abi includes to arch.h which is part of common includes
Change-Id: Id8bbaf21566f3145a75cfa0dafec682
refactor(errata-abi): move EXTRACT_PARTNUM to arch.h
This patch moves EXTRACT_PARTNUM from errata abi includes to arch.h which is part of common includes
Change-Id: Id8bbaf21566f3145a75cfa0dafec6823ed2df3a9 Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
show more ...
|
| 4a97ff51 | 05-Aug-2024 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
feat(cpus): workaround for Cortex-A520(2938996) and Cortex-X4(2726228)
This patch implements errata functions for two errata, both of them disable TRBE as a workaround. This patch doesn't have funct
feat(cpus): workaround for Cortex-A520(2938996) and Cortex-X4(2726228)
This patch implements errata functions for two errata, both of them disable TRBE as a workaround. This patch doesn't have functions that disable TRBE but only implemented helper functions that are used to detect cores affected by Errata 2938996(Cortex-A520) & 2726228(Cortex-X4)
Cortex-X4 SDEN documentation: https://developer.arm.com/documentation/SDEN2432808/latest
Cortex-A520 SDEN Documentation: https://developer.arm.com/documentation/SDEN-2444153/latest
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I8f886a1c21698f546a0996c719cc27dc0a23633a
show more ...
|
| 7754b770 | 18-Jul-2024 |
Manish Pandey <manish.pandey2@arm.com> |
feat(tc): make SPE feature asymmetric
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: Ibf0fecb2a97cb0f3508e01e0907e61e3c437ac00 |
| 188f8c4b | 18-Jul-2024 |
Manish Pandey <manish.pandey2@arm.com> |
feat(cm): handle asymmetry for SPE feature
With introduction of FEAT_STATE_CHECK_ASYMMETRIC, the asymmetry of cores can be handled. SPE is one of the features which can be asymmetric across cores.
feat(cm): handle asymmetry for SPE feature
With introduction of FEAT_STATE_CHECK_ASYMMETRIC, the asymmetry of cores can be handled. SPE is one of the features which can be asymmetric across cores.
Add a function to handle this asymmetry by re-visting the feature presence on running core. There are two possible cases: - If the primary has the feature and secondary does not have it then, the feature needs to be disabled. - If the primary does not have the feature and secondary has it then, the feature need to be enabled
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: Ibb2b88b5ef63b3efcb80801898ae8d8967e5c271
show more ...
|
| 2f41c9a7 | 12-Jul-2024 |
Manish Pandey <manish.pandey2@arm.com> |
feat(cm): support for asymmetric feature among cores
TF-A assumes that all the cores in a platform has architecture feature parity, this is evident by the fact that primary sets up the Non-secure co
feat(cm): support for asymmetric feature among cores
TF-A assumes that all the cores in a platform has architecture feature parity, this is evident by the fact that primary sets up the Non-secure context of secondary cores.
With changing landscape of platforms (e.g. big/little/mid cores), we are seeing more and more platforms which has feature asymmetry among cores. There is also a scenario where certain CPU erratum only applies to one type of cores and requires a feature to be disabled even it supports the feature.
To handle these scenarios, introduce a hook in warmboot path which would be called on the running CPU to override any feature disparity in the NS context stashed up by primary. Note that, re-checking of feature for Secure/Realm context is not required as the context is created on running core itself.
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: I5a01dbda528fa8481a00fdd098b58a7463ed0e22
show more ...
|
| 43d1d951 | 18-Jul-2024 |
Manish Pandey <manish.pandey2@arm.com> |
feat(cpufeat): add new feature state for asymmetric features
Introduce a new feature state CHECK_ASYMMETRIC to cater for the features which are asymmetric across cores. This state is useful for plat
feat(cpufeat): add new feature state for asymmetric features
Introduce a new feature state CHECK_ASYMMETRIC to cater for the features which are asymmetric across cores. This state is useful for platforms which has architectural asymmetric cores (A feature is only present in one type of core e.g. big). This state is similar to FEAT_STATE_CHECK (dynamic detection) except that feature state is also checked on each core during warmboot path and override the context (just for asymmetric features) which was setup by core executing CPU_ON call.
Only Non-secure context will be re-checked as secure and realm context is created on same core.
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: Ic78a0b6ca996e0d7881c43da1a6a0c422f528ef3
show more ...
|
| 2d4f264b | 17-Aug-2024 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "romlib-fixes" into integration
* changes: fix(romlib): wrap indirectly included functions fix(arm): remove duplicate jumptable entry |
| abeb8ad6 | 16-Aug-2024 |
Mark Dykes <mark.dykes@arm.com> |
Merge "fix(cpus): workaround for Cortex-A720 erratum 2844092" into integration |
| 28e4ec1b | 16-Aug-2024 |
Mark Dykes <mark.dykes@arm.com> |
Merge "fix(cpus): workaround for Cortex-X4 erratum 2816013" into integration |
| a0c7bee6 | 16-Aug-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "docs(maintainers): update Corstone-1000 maintainers" into integration |
| 9b1f2c79 | 16-Aug-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "fix(rdv3): remove NEED_* from RD-V3 makefile" into integration |
| 4c720e12 | 16-Aug-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(docs): add RMM option in build-options.rst" into integration |
| d95d56bd | 22-Jul-2024 |
Jimmy Brisson <jimmy.brisson@arm.com> |
fix(romlib): wrap indirectly included functions
The problem that this resolves is a bit involved; the following must be met at the same time for some function <to_be_wrapped>:
* to_be_wrapped must
fix(romlib): wrap indirectly included functions
The problem that this resolves is a bit involved; the following must be met at the same time for some function <to_be_wrapped>:
* to_be_wrapped must be specified as part of the romlib * to_be_wrapped must _not_ be referenced by any translation unit in TF-A * to_be_wrapped must be referenced by a translation unit in a dependent library, mbedtls for example.
Under these circumstances, to_be_wrapped will not be wrapped, and will instead reference its original definition while simultaneously residing in romlib.
This is a side effect of two issues with romlib prior to this patch:
1 to_be_wrapped is expected to wrap by duplicating its definition. This causes any condition that links against both the base and wrapper functions to be a link error (duplicate symbol definition). 2 to_be_wrapped is in its own translation unit This causes the wrappers to be used by TF-A in an as needed.
The duplicate function definitions can be worked around using the linker's `--wrap` flag, which redirects all references to a symbol to resolve to `__wrap_<symbol>` and the original symbol to be available as `__real_<symbol>`. Most of the changes handle creating this arguments and passing them to the linker.
Further, once you use the linker's wrap, you will encounter another issue: if TF-A does not use a function, its wrapper is not present. This causes link issues when a library and not TF-A uses the wrapper. Note that this issue would have been resolved previously by ignoring the wrapper and using the base definition.
This further issue is worked around by concatenating the assembly for all of the wrappers into a single translation unit. It's possible to work around this issue in a few other ways, including reordering the libraries passed to the linker to place libwrapper.a last or grouping the libraries so that symbols from later libraries may be resolved with prior libraries.
I chose the translation unit concatenation approach as it revealed that a jumptable has duplicate symbols within it.
Change-Id: Ie57b5ae69bde2fc8705bdc7a93fae3ddb5341ed9 Signed-off-by: Jimmy Brisson <jimmy.brisson@arm.com>
show more ...
|
| deb7210d | 06-Aug-2024 |
Hugues Kamba-Mpiana <hugues.kambampiana@arm.com> |
docs(maintainers): update Corstone-1000 maintainers
* Add new maintainers: Hugues Kamba Mpiana * Remove maintainers: Xueliang Zhong * Update contact information for existing maintainers
Change-Id:
docs(maintainers): update Corstone-1000 maintainers
* Add new maintainers: Hugues Kamba Mpiana * Remove maintainers: Xueliang Zhong * Update contact information for existing maintainers
Change-Id: Ie4b7e7a1a179e3bf6f8d8e6c8e7ff0ad788e9f8f Signed-off-by: Hugues Kamba-Mpiana <hugues.kambampiana@arm.com>
show more ...
|
| e66c4ea8 | 29-Jul-2024 |
Gavin Liu <gavin.liu@mediatek.com> |
feat(mt8188): update SVP region ID protection flow
- Extend the SVP region number from 1 to 10 - Mapping one region each time
Change-Id: I2dd517127018c71174f3d52a2118463370caf569 Signed-off-by: Gav
feat(mt8188): update SVP region ID protection flow
- Extend the SVP region number from 1 to 10 - Mapping one region each time
Change-Id: I2dd517127018c71174f3d52a2118463370caf569 Signed-off-by: Gavin Liu <gavin.liu@mediatek.com>
show more ...
|