| #
80684b7e |
| 13-Oct-2025 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "fix(cm): deprecate use of NS_TIMER_SWITCH" into integration
|
| #
ccf67965 |
| 21-Aug-2025 |
Sumit Garg <sumit.garg@oss.qualcomm.com> |
fix(cm): deprecate use of NS_TIMER_SWITCH
On AArch64, secure world has it's own EL3 physical timer registers accessible to secure EL1 in absence of S-EL2. With S-EL2 there is virtualized view availa
fix(cm): deprecate use of NS_TIMER_SWITCH
On AArch64, secure world has it's own EL3 physical timer registers accessible to secure EL1 in absence of S-EL2. With S-EL2 there is virtualized view available for EL1 timer registers. So it is unreasonable for secure world to use non-secure EL1 physical timer registers. Moreover, the non-secure operating system (Linux in our case) relies heavily on these EL1 physical timer registers for scheduling decisions. If NS_TIMER_SWITCH is enabled, it simply breaks the preemption model of the non-secure world by disabling non-secure timer interrupts leading to RCU stalls being observed on long running secure world tasks.
The only arch timer register which will benefit from context management is cntkctl_el1: Counter-timer Kernel Control Register. This enables the secure and non-secure worlds to independently control accesses to EL0 for counter-timer registers. This is something that OP-TEE uses to enable ftrace feature for Trusted Applications and SPM_MM uses for EL0 access as well.
Lets enable context management of cntkctl_el1 by default and deprecate conditional context management of non-secure EL1 physical timer registers for whom there isn't any upstream user. With that deprecate this NS_TIMER_SWITCH build option which just adds confusion for the platform maintainers. It will be eventually dropped following deprecation policy of TF-A.
Reported-by: Stauffer Thomas MTANA <thomas.stauffer@mt.com> Reported-by: Andrew Davis <afd@ti.com> Change-Id: Ifb3a919dc0bf8c05c38895352de5fe94b4f4387e Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
show more ...
|
| #
ad4e9787 |
| 12-Oct-2023 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "ns/spmc_at_el3" into integration
* changes: feat(rdn2): introduce platform handler for Group0 interrupt feat(rdn2): add plat hook for memory transaction feat(rdn2): i
Merge changes from topic "ns/spmc_at_el3" into integration
* changes: feat(rdn2): introduce platform handler for Group0 interrupt feat(rdn2): add plat hook for memory transaction feat(rdn2): introduce accessor function to obtain datastore feat(spm): separate StMM SP specifics to add support for a S-EL0 SP feat(rdn2): add defines needed for spmc-el3 feat(ras): reuse SPM_MM specific defines for SPMC_AT_EL3 feat(bl31): reuse SPM_MM specific defines for SPMC_AT_EL3 feat(arm): reuse SPM_MM specific defines for SPMC_AT_EL3 feat(el3-spmc): add a flag to enable support to load SEL0 SP refactor(spm-mm): reorganize secure partition manager shim code
show more ...
|
| #
1132f068 |
| 25-Mar-2022 |
Nishant Sharma <nishant.sharma@arm.com> |
refactor(spm-mm): reorganize secure partition manager shim code
In preparation for adding the support for SEL0 SP in EL3 SPMC, restructure the existing SPM_MM shim code in a way that allows reuse of
refactor(spm-mm): reorganize secure partition manager shim code
In preparation for adding the support for SEL0 SP in EL3 SPMC, restructure the existing SPM_MM shim code in a way that allows reuse of the code for both SPM_MM interface and FF-A EL3 SPMC interface. The code for changing exception levels is identical for both.
With this restructuring of the code, the shim exception code is moved to the common sub-directory.
Signed-off-by: Sayanta Pattanayak <sayanta.pattanayak@arm.com> Signed-off-by: Nishant Sharma <nishant.sharma@arm.com> Change-Id: Iadda9cf73f12b56e6a1d31fc21b5ba5dc355867f
show more ...
|
| #
6d41f123 |
| 29-Mar-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "jc/cpu_feat" into integration
* changes: feat(cpufeat): enable FEAT_SVE for FEAT_STATE_CHECKED feat(cpufeat): enable FEAT_SME for FEAT_STATE_CHECKED
|
| #
2b0bc4e0 |
| 07-Mar-2023 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
feat(cpufeat): enable FEAT_SVE for FEAT_STATE_CHECKED
Add support for runtime detection (ENABLE_SVE_FOR_NS=2), by splitting sve_supported() into an ID register reading function and a second function
feat(cpufeat): enable FEAT_SVE for FEAT_STATE_CHECKED
Add support for runtime detection (ENABLE_SVE_FOR_NS=2), by splitting sve_supported() into an ID register reading function and a second function to report the support status. That function considers both build time settings and runtime information (if needed), and is used before we do SVE specific setup.
Change the FVP platform default to the now supported dynamic option (=2), so the right decision can be made by the code at runtime.
Change-Id: I1caaba2216e8e2a651452254944a003607503216 Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| #
45007acd |
| 06-Mar-2023 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
feat(cpufeat): enable FEAT_SME for FEAT_STATE_CHECKED
Add support for runtime detection (ENABLE_SME_FOR_NS=2), by splitting feat_sme_supported() into an ID register reading function and a second fun
feat(cpufeat): enable FEAT_SME for FEAT_STATE_CHECKED
Add support for runtime detection (ENABLE_SME_FOR_NS=2), by splitting feat_sme_supported() into an ID register reading function and a second function to report the support status. That function considers both build time settings and runtime information (if needed), and is used before we do SME specific setup.
Change the FVP platform default to the now supported dynamic option (=2),so the right decision can be made by the code at runtime.
Change-Id: Ida9ccf737db5be20865b84f42b1f9587be0626ab Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| #
0dc2b516 |
| 13-May-2022 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge changes from topic "ns/save_fpregs_context" into integration
* changes: feat(sgi): enable fpregs context save and restore feat(spm_mm): add support to save and restore fp regs
|
| #
15dd6f19 |
| 19-Apr-2022 |
Nishant Sharma <nishant.sharma@arm.com> |
feat(spm_mm): add support to save and restore fp regs
Add the support to save Nwd's floating point registers before switching to SEL0 and then restore it after coming out of it. Emit a warning messa
feat(spm_mm): add support to save and restore fp regs
Add the support to save Nwd's floating point registers before switching to SEL0 and then restore it after coming out of it. Emit a warning message if SPM_MM is built with CTX_INCLUDE_FPREGS == 0
There is no need to save FP registers of SEL0 because secure partitions run to completion.
This change is used to prevent context corruption if secure partition enabled and Nwd decide to use floating point registers.
Signed-off-by: Nishant Sharma <nishant.sharma@arm.com> Change-Id: I1eea16ea2311a4f00a806ea72c118752821b9abb
show more ...
|
| #
65b13bac |
| 22-Apr-2022 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge changes from topic "ffa_el3_spmc" into integration
* changes: feat(spmc): add support for direct req/resp feat(spmc): add support for handling FFA_ERROR ABI feat(spmc): add support for F
Merge changes from topic "ffa_el3_spmc" into integration
* changes: feat(spmc): add support for direct req/resp feat(spmc): add support for handling FFA_ERROR ABI feat(spmc): add support for FFA_MSG_WAIT feat(spmc): add function to determine the return path from the SPMC feat(spmd): enable handling of FF-A SMCs with the SPMC at EL3 feat(spmd): update SPMC init flow to use EL3 implementation feat(spmc): add FF-A secure partition manager core feat(spmc): prevent read only xlat tables with the EL3 SPMC feat(spmc): enable building of the SPMC at EL3 refactor(spm_mm): reorganize secure partition manager code
show more ...
|
| #
b61d94a1 |
| 19-Dec-2021 |
Marc Bonnici <marc.bonnici@arm.com> |
refactor(spm_mm): reorganize secure partition manager code
In preparation for adding the EL3 SPMC configuration as defined in the FF-A specification, restructure the existing SPM_MM code.
With this
refactor(spm_mm): reorganize secure partition manager code
In preparation for adding the EL3 SPMC configuration as defined in the FF-A specification, restructure the existing SPM_MM code.
With this restructuring of the code, the 'spm_mm' directory is renamed as 'spm' and the code inside has been split into two sub-directories named 'common' and 'spm_mm'. The code in 'spm_mm' directory contains the code that implements the MM interface. In subsequent patches, the 'spmc' directory will be introduced under the 'spm' directory providing the code that implements the 'FF-A' interface.
Currently the common functionality for S-EL1 partitions is limited to assembler functions to enter and exit an SP synchronously.
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com> Change-Id: I37739b9b53bc68e151ab5c1c0c6a15b3ee362241
show more ...
|