| #
eb8a5eaf |
| 28-Feb-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "fix(el3-runtime): replace CTX_ESR_EL3 with CTX_DOUBLE_FAULT_ESR" into integration
|
| #
c7220035 |
| 03-Feb-2025 |
Manish Pandey <manish.pandey2@arm.com> |
fix(el3-runtime): replace CTX_ESR_EL3 with CTX_DOUBLE_FAULT_ESR
ESR_EL3 value is updated when an exception is taken to EL3 and its value does not change until a new exception is taken to EL3. We nee
fix(el3-runtime): replace CTX_ESR_EL3 with CTX_DOUBLE_FAULT_ESR
ESR_EL3 value is updated when an exception is taken to EL3 and its value does not change until a new exception is taken to EL3. We need to save ESR in context memory only when we expect nested exception in EL3.
The scenarios where we would expect nested EL3 execution are related with FFH_SUPPORT, namely 1.Handling pending async EAs at EL3 boundry - It uses CTX_SAVED_ESR_EL3 to preserve origins esr_el3 2.Double fault handling - Introduce an explicit storage (CTX_DOUBLE_FAULT_ESR) for esr_el3 to take care of DobuleFault.
As the ESR context has been removed, read the register directly instead of its context value in RD platform.
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: I7720c5f03903f894a77413a235e3cc05c86f9c17
show more ...
|
| #
021cdbfb |
| 21-Aug-2024 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "jc/refact_el1_ctx" into integration
* changes: feat(cm): enhance the cpu_context memory report refactor(cm): remove el1 context when SPMD_SPM_AT_SEL2=1
|
| #
a0674ab0 |
| 07-May-2024 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
refactor(cm): remove el1 context when SPMD_SPM_AT_SEL2=1
* Currently, EL1 context is included in cpu_context_t by default for all the build configurations. As part of the cpu context structure,
refactor(cm): remove el1 context when SPMD_SPM_AT_SEL2=1
* Currently, EL1 context is included in cpu_context_t by default for all the build configurations. As part of the cpu context structure, we hold a copy of EL1, EL2 system registers, per world per PE. This context structure is enormous and will continue to grow bigger with the addition of new features incorporating new registers.
* Ideally, EL3 should save and restore the system registers at its next lower exception level, which is EL2 in majority of the configurations.
* This patch aims at optimising the memory allocation in cases, when the members from the context structure are unused. So el1 system register context must be omitted when lower EL is always x-EL2.
* "CTX_INCLUDE_EL2_REGS" is the internal build flag which gets set, when SPD=spmd and SPMD_SPM_AT_SEL2=1 or ENABLE_RME=1. It indicates, the system registers at EL2 are context switched for the respective build configuration. Here, there is no need to save and restore EL1 system registers, while x-EL2 is enabled.
Henceforth, this patch addresses this issue, by taking out the EL1 context at all possible places, while EL2 (CTX_INCLUDE_EL2_REGS) is enabled, there by saving memory.
Change-Id: Ifddc497d3c810e22a15b1c227a731bcc133c2f4a Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| #
5fba09cc |
| 21-Aug-2024 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "chore(cm): reorganise sctlr_el1 and tcr_el1 ctx code" into integration
|
| #
a0d9a973 |
| 30-Jul-2024 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
chore(cm): reorganise sctlr_el1 and tcr_el1 ctx code
SCTLR_EL1 and TCR_EL1 regs are included either as part of errata "ERRATA_SPECULATIVE_AT" or under el1_sysregs_t context structure. The code to wr
chore(cm): reorganise sctlr_el1 and tcr_el1 ctx code
SCTLR_EL1 and TCR_EL1 regs are included either as part of errata "ERRATA_SPECULATIVE_AT" or under el1_sysregs_t context structure. The code to write and read into these context entries, looks repetitive and is invoked at most places. This section is refactored to bring them under a static procedure, keeping the code neat and easier to maintain.
Change-Id: Ib0d8c51bee09e1600c5baaa7f9745083dca9fee1 Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| #
4bcf5b84 |
| 29-Jul-2024 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "jc/refact_el1_ctx" into integration
* changes: refactor(cm): convert el1-ctx assembly offset entries to c structure feat(cm): add explicit context entries for ERRATA_SP
Merge changes from topic "jc/refact_el1_ctx" into integration
* changes: refactor(cm): convert el1-ctx assembly offset entries to c structure feat(cm): add explicit context entries for ERRATA_SPECULATIVE_AT
show more ...
|
| #
42e35d2f |
| 11-Apr-2024 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
refactor(cm): convert el1-ctx assembly offset entries to c structure
Currently the EL1 part of the context structure (el1_sysregs_t), is coupled with feature flags reducing the context memory alloca
refactor(cm): convert el1-ctx assembly offset entries to c structure
Currently the EL1 part of the context structure (el1_sysregs_t), is coupled with feature flags reducing the context memory allocation for platforms, that don't enable/support all the architectural features at once.
Similar to the el2 context optimization commit-"d6af234" this patch further improves this section by converting the assembly context-offset entries into a c structure. It relies on garbage collection of the linker removing unreferenced structures from memory, as well as aiding in readability and future maintenance. Additionally, it eliminates the #ifs usage in 'context_mgmt.c' source file.
Change-Id: If6075931cec994bc89231241337eccc7042c5ede Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| #
59b7c0a0 |
| 05-Jun-2024 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
feat(cm): add explicit context entries for ERRATA_SPECULATIVE_AT
* Currently, "ERRATA_SPECUALTIVE_AT" errata is enabled by default for few cores and they need context entries for saving and rest
feat(cm): add explicit context entries for ERRATA_SPECULATIVE_AT
* Currently, "ERRATA_SPECUALTIVE_AT" errata is enabled by default for few cores and they need context entries for saving and restoring EL1 regs "SCTLR_EL1 and TCR_EL1" registers at all times.
* This prevents the mechanism of decoupling EL1 and EL2 registers, as EL3 firmware shouldn't be handling both simultaneously.
* Depending on the build configuration either EL1 or EL2 context structures need to included, which would result in saving a good amount of context memory.
* In order to achieve this it's essential to have explicit context entries for registers supporting "ERRATA_SPECULATIVE_AT".
* This patch adds two context entries under "errata_speculative_at" structure to assist this errata and thereby allows decoupling EL1 and EL2 context structures.
Change-Id: Ia50626eea8fb64899a2e2d81622adbe07fe77d65 Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| #
e8090ce2 |
| 08-Mar-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "refactor(cm): couple el2 registers with dependent feature flags" into integration
|
| #
d6af2344 |
| 24-Jan-2024 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
refactor(cm): couple el2 registers with dependent feature flags
Currently the EL2 part of the context structure (el2_sysregs_t), is mostly feature dependent.
For instance, CTX_HCRX_EL2 is only need
refactor(cm): couple el2 registers with dependent feature flags
Currently the EL2 part of the context structure (el2_sysregs_t), is mostly feature dependent.
For instance, CTX_HCRX_EL2 is only needed when FEAT_HCX (ENABLE_FEAT_HCX=1) is set, but the entry is unconditionally added in the EL2 context structure and thereby consuming memory even in build configurations where FEAT_HCX is disabled.
Henceforth, all such context entries should be coupled/tied with their respective feature enables and be optimized away when unused. This would reduce the context memory allocation for platforms, that dont enable/support all the architectural features at once.
Further, converting the assembly context-offset entries into a c structure relies on garbage collection of the linker removing unreferenced structures from memory, as well as aiding in readability and future maintenance.
Change-Id: I0cf49498ee3033cb6f3ee3810331121b26627783 Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| #
27b0440a |
| 02-Mar-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "sgi_to_nrd" into integration
* changes: refactor(sgi): replace references to "SGI"/"sgi" for neoverse_rd refactor(sgi): rename "CSS_SGI"" macro prefixes to "NRD" refa
Merge changes from topic "sgi_to_nrd" into integration
* changes: refactor(sgi): replace references to "SGI"/"sgi" for neoverse_rd refactor(sgi): rename "CSS_SGI"" macro prefixes to "NRD" refactor(sgi): move apis and types to "nrd" prefix refactor(sgi): replace build-option prefix to "NRD" refactor(sgi): move neoverse_rd out of css refactor(sgi): move from "sgi" to "neoverse_rd" feat(sgi): remove unused SGI_PLAT build-option fix(sgi): align to misra rule for braces feat(rde1edge): remove support for RD-E1-Edge fix(rdn2): populate TOS_CONFIG only when SPMC_AT_EL3 is enabled fix(board): update spi_id max for sgi multichip platforms
show more ...
|
| #
75414f71 |
| 03-Feb-2024 |
Rohit Mathew <Rohit.Mathew@arm.com> |
refactor(sgi): replace references to "SGI"/"sgi" for neoverse_rd
Currently, there are several reference to "SGI" or "sgi" in comments or as macro prefix within the neoverse_rd directory. As part of
refactor(sgi): replace references to "SGI"/"sgi" for neoverse_rd
Currently, there are several reference to "SGI" or "sgi" in comments or as macro prefix within the neoverse_rd directory. As part of the migration to neoverse_rd, rename all occurences of "SGI/sgi" to "Neoverse-RD" or the "NRD" prefix accordingly. All references in comments are rephrased as "Neoverse RD platforms". References in code are renamed as "NRD"/"nrd" accordingly.
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: Iec195427ff2bee565cb4a325a1a22892be95ae16
show more ...
|
| #
40ea4208 |
| 03-Feb-2024 |
Rohit Mathew <Rohit.Mathew@arm.com> |
refactor(sgi): move apis and types to "nrd" prefix
Currently, functions and types internal to "neoverse_rd" platforms are named with "sgi" as the prefix. Since common code and platforms are no longe
refactor(sgi): move apis and types to "nrd" prefix
Currently, functions and types internal to "neoverse_rd" platforms are named with "sgi" as the prefix. Since common code and platforms are no longer under the "sgi" umbrella, move the prefix to "nrd". This change would amend the prefixes for functions, types and objects.
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: I706a82bddf55c3be7cf9cef9aaa5df6d420098ca
show more ...
|
| #
4ced5956 |
| 03-Feb-2024 |
Rohit Mathew <Rohit.Mathew@arm.com> |
refactor(sgi): move neoverse_rd out of css
Currently, neoverse_rd is hosted under the "css" directory. However, "css" directory is more relevant for hosting css definitions and corresponding sources
refactor(sgi): move neoverse_rd out of css
Currently, neoverse_rd is hosted under the "css" directory. However, "css" directory is more relevant for hosting css definitions and corresponding sources. Since neoverse_rd hosts source and header for css and soc, move neoverse_rd from css to board folder. Consolidate common sources and headers under neoverse_rd/common. Additionally, group RD-V1, RD-V1-MC, RD-N2, RD-N1-Edgex2 and SGI-575 within neoverse_rd/platform. With the changes in this commit, the tree view would look as follows:
plat/arm/board/neoverse_rd/ ├── common │ ├── arch │ ├── include │ └── ras └── platform ├── rdn1edge ├── rdn2 ├── rdv1 ├── rdv1mc └── sgi575
Signed-off-by: Rohit Mathew <Rohit.Mathew@arm.com> Change-Id: Iaccc86bc9d415f5c045c834902241fcf3c00277b
show more ...
|