| 7e84f3cf | 15-Mar-2024 |
Tushar Khandelwal <tushar.khandelwal@.com> |
feat(rmmd): add FEAT_MEC support
This patch provides architectural support for further use of Memory Encryption Contexts (MEC) by declaring the necessary registers, bits, masks, helpers and values a
feat(rmmd): add FEAT_MEC support
This patch provides architectural support for further use of Memory Encryption Contexts (MEC) by declaring the necessary registers, bits, masks, helpers and values and modifying the necessary registers to enable FEAT_MEC.
Signed-off-by: Tushar Khandelwal <tushar.khandelwal@arm.com> Signed-off-by: Juan Pablo Conde <juanpablo.conde@arm.com> Change-Id: I670dbfcef46e131dcbf3a0b927467ebf6f438fa4
show more ...
|
| 472cccb5 | 19-Apr-2024 |
Maheedhar Bollapalli <maheedharsai.bollapalli@amd.com> |
fix(delay-timer): create unique variable name
This corrects the MISRA violation C2012-5.7: A tag name shall be a unique identifier. Renamed the variable to ensure uniqueness.
Change-Id: Ibadebf8fd5
fix(delay-timer): create unique variable name
This corrects the MISRA violation C2012-5.7: A tag name shall be a unique identifier. Renamed the variable to ensure uniqueness.
Change-Id: Ibadebf8fd5206eb079535d2775d1877b42f1eab7 Signed-off-by: Nithin G <nithing@amd.com> Signed-off-by: Maheedhar Bollapalli <maheedharsai.bollapalli@amd.com>
show more ...
|
| 97eefd99 | 23-Apr-2024 |
Nithin G <nithing@amd.com> |
fix(console): typecast expressions to match data type
This corrects the MISRA violation C2012-10.4: Both operands of an operator in which the usual arithmetic conversions are performed shall have th
fix(console): typecast expressions to match data type
This corrects the MISRA violation C2012-10.4: Both operands of an operator in which the usual arithmetic conversions are performed shall have the same essential type category. The condition is explicitly checked against 0U, appending 'U' and typecasting for unsigned comparison.
Change-Id: I4276035b3e7a223e80712e023457662689a011a1 Signed-off-by: Nithin G <nithing@amd.com> Signed-off-by: Maheedhar Bollapalli <maheedharsai.bollapalli@amd.com>
show more ...
|
| 8666bcfa | 06-Mar-2025 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(drtm): validate launch features in DRTM parameters
Perform sanity checks on the launch features received via DRTM parameters. Return INVALID_PARAMETERS if they are incorrect.
Change-Id: I7e806
feat(drtm): validate launch features in DRTM parameters
Perform sanity checks on the launch features received via DRTM parameters. Return INVALID_PARAMETERS if they are incorrect.
Change-Id: I7e8068154028d1c8f6b6b45449616bb5711ea76e Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| af1dd6e1 | 09-Mar-2025 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(lib): add EXTRACT_FIELD macro for field extraction
Introduce a new EXTRACT_FIELD macro to simplify the extraction of specific fields from a value by shifting the value right and applying the ma
feat(lib): add EXTRACT_FIELD macro for field extraction
Introduce a new EXTRACT_FIELD macro to simplify the extraction of specific fields from a value by shifting the value right and applying the mask.
Change-Id: Iae9573d6d23067bbde13253e264e4f6f18b806c2 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| 8656bdab | 07-Feb-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(cpufeat): include FEAT_MOPS declaration in aarch32 header
This patch adds the missing is_feat_mops_supported() declaration in aarch32 header.
Signed-off-by: Arvind Ram Prakash <arvind.ramprakas
fix(cpufeat): include FEAT_MOPS declaration in aarch32 header
This patch adds the missing is_feat_mops_supported() declaration in aarch32 header.
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: I875f65defe23912351f9ef18555a5b0a0e53717d
show more ...
|
| 7aa73612 | 07-Mar-2025 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "fix(cpufeat): avoid using mrrs/msrr for tspd" into integration |
| f3e2b499 | 07-Mar-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
fix(cpufeat): avoid using mrrs/msrr for tspd
tspd compiles with `arch_helpers.h` and when FEAT_D128 is enabled read/writes to D128 impacted registers will provide 128-bit mrrs/msrr read/write implem
fix(cpufeat): avoid using mrrs/msrr for tspd
tspd compiles with `arch_helpers.h` and when FEAT_D128 is enabled read/writes to D128 impacted registers will provide 128-bit mrrs/msrr read/write implementation.
However FEAT_D128 implementation with SCR_EL3.D128en is set only for lower-EL Non-Secure world. When tspd is chosen as the SPD target, it builds tsp as well. This S-EL1 payload, used for testing, inadvertently uses mrrs/msrr read/write implementation in `modify_el1_common_regs` helper function. This eventually leads to a panic.
Group all D128 impacted registers and avoid using mrrs/msrr read/write implementation for tspd builds.
Change-Id: Ic0ed3a901ffa65f9447cae08951defbadee3e02a Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| bbff267b | 24-Feb-2025 |
Arvind Ram Prakash <arvind.ramprakash@arm.com> |
fix(errata-abi): add support for handling split workarounds
Certain erratum workarounds like Neoverse N1 1542419, need a part of their mitigation done in EL3 and the rest in lower EL. But currently
fix(errata-abi): add support for handling split workarounds
Certain erratum workarounds like Neoverse N1 1542419, need a part of their mitigation done in EL3 and the rest in lower EL. But currently such workarounds return HIGHER_EL_MITIGATION which indicates that the erratum has already been mitigated by a higher EL(EL3 in this case) which causes the lower EL to not apply it's part of the mitigation.
This patch fixes this issue by adding support for split workarounds so that on certain errata we return AFFECTED even though EL3 has applied it's workaround. This is done by reusing the chosen field of erratum_entry structure into a bitfield that has two bitfields - Bit 0 indicates that the erratum has been enabled in build, Bit 1 indicates that the erratum is a split workaround and should return AFFECTED instead of HIGHER_EL_MITIGATION.
SDEN documentation: https://developer.arm.com/documentation/SDEN885747/latest
Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com> Change-Id: Iec94d665b5f55609507a219a7d1771eb75e7f4a7
show more ...
|
| 2bec665f | 27-Feb-2025 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(smccc): register PMUv3p5 and PMUv3p7 bits with the FEATURE_AVAILABILITY call
These bits were missed with the original implementation. They are set if supported, so we need to ignore them.
Chang
fix(smccc): register PMUv3p5 and PMUv3p7 bits with the FEATURE_AVAILABILITY call
These bits were missed with the original implementation. They are set if supported, so we need to ignore them.
Change-Id: I3a94017bacdc54bfc14f0add972240148da3b41d Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| d153bcf4 | 06-Mar-2025 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(spm_mm): move mm_communication header define to general header" into integration |
| ec6f49c2 | 01-Aug-2024 |
Vinoj Soundararajan <vinojs@google.com> |
feat(ras): add eabort get helper function
Add EABORT get field helper function to obtain SET, AET (UET) values from esr_el3/disr_el1 based on PE error state recording in the exception syndrome refer
feat(ras): add eabort get helper function
Add EABORT get field helper function to obtain SET, AET (UET) values from esr_el3/disr_el1 based on PE error state recording in the exception syndrome refer to RAS PE architecture in https://developer.arm.com/documentation/ddi0487/latest/
Change-Id: I0011f041a3089c9bbf670275687ad7c3362a07f9 Signed-off-by: Vinoj Soundararajan <vinojs@google.com>
show more ...
|
| daeae495 | 01-Aug-2024 |
Vinoj Soundararajan <vinojs@google.com> |
feat(ras): add asynchronous error type corrected
Add asynchronous error type Corrected (CE) to error status AET based on PE error state recording in the exception syndrome Refer to https://developer
feat(ras): add asynchronous error type corrected
Add asynchronous error type Corrected (CE) to error status AET based on PE error state recording in the exception syndrome Refer to https://developer.arm.com/documentation/ddi0487/latest/ RAS PE architecture.
Change-Id: I9f2525411b94c8fd397b4a0b8cf5dc47457a2771 Signed-off-by: Vinoj Soundararajan <vinojs@google.com>
show more ...
|
| e5cd3e81 | 01-Aug-2024 |
Vinoj Soundararajan <vinojs@google.com> |
fix(ras): fix typo in uncorrectable error type UEO
Fix spelling for UEO from restable to restartable based on PE error state recording in the exception syndrome Refer to https://developer.arm.com/do
fix(ras): fix typo in uncorrectable error type UEO
Fix spelling for UEO from restable to restartable based on PE error state recording in the exception syndrome Refer to https://developer.arm.com/documentation/ddi0487/latest/ RAS PE architecture.
Change-Id: I4da419f2120a7385853d4da78b409c675cdfe1c8 Signed-off-by: Vinoj Soundararajan <vinojs@google.com>
show more ...
|
| 9c17687a | 01-Aug-2024 |
Vinoj Soundararajan <vinojs@google.com> |
fix(ras): fix status synchronous error type fields
Based on SET bits of ISS encoding for an exception from Data or Instruction Abort. (Refer to ESR_EL3) 1. Fix Synchronous error type restartable val
fix(ras): fix status synchronous error type fields
Based on SET bits of ISS encoding for an exception from Data or Instruction Abort. (Refer to ESR_EL3) 1. Fix Synchronous error type restartable value from 1 to 3 2. Remove corrected CE field which is not applicable to SET
Change-Id: If357da9881bee962825bc3b9423ba7fc107f9b1d Signed-off-by: Vinoj Soundararajan <vinojs@google.com>
show more ...
|
| 7990cc80 | 28-Feb-2025 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "feat(handoff): add transfer entry printer" 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 ...
|
| 70b5967e | 27-Feb-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge changes from topic "mb/drtm" into integration
* changes: feat(drtm): retrieve DLME image authentication features feat(drtm): log No-Action Event in Event Log for DRTM measurements feat(f
Merge changes from topic "mb/drtm" into integration
* changes: feat(drtm): retrieve DLME image authentication features feat(drtm): log No-Action Event in Event Log for DRTM measurements feat(fvp): add stub function to retrieve DLME image auth features feat(drtm): introduce plat API for DLME authentication features feat(drtm): ensure event types aligns with DRTM specification v1.1 fix(drtm): add missing DLME data regions for min size requirement feat(fvp): add stub platform function to get ACPI table region size feat(drtm): add platform API to retrieve ACPI tables region size
show more ...
|
| 98c65165 | 26-Feb-2025 |
Govindraj Raja <govindraj.raja@arm.com> |
chore: rename arcadia to Cortex-A320
Cortex-A320 has been announced, rename arcadia to Cortex-A320.
Ref: https://newsroom.arm.com/blog/introducing-arm-cortex-a320-cpu https://www.arm.com/products/s
chore: rename arcadia to Cortex-A320
Cortex-A320 has been announced, rename arcadia to Cortex-A320.
Ref: https://newsroom.arm.com/blog/introducing-arm-cortex-a320-cpu https://www.arm.com/products/silicon-ip-cpu/cortex-a/cortex-a320
Change-Id: Ifb3743d43dca3d8caaf1e7416715ccca4fdf195f Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
show more ...
|
| 94127ae2 | 25-Feb-2025 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(drtm): retrieve DLME image authentication features
Retrieve DLME image authentication features and report them back to the DCE preamble. Currently, this value is always set to 0, as no platform
feat(drtm): retrieve DLME image authentication features
Retrieve DLME image authentication features and report them back to the DCE preamble. Currently, this value is always set to 0, as no platform supports DLME authentication.
Additionally, the default schema is always used instead of the DLME PCR schema since DLME authentication is not currently supported.
This change primarily upgrades the DRTM parameters version to V2, aligning with DRTM spec v1.1 [1].
[1]: https://developer.arm.com/documentation/den0113/c/?lang=en
Change-Id: Ie2ceb0d2ff49465643597e8725710a93d89e74a2 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| 0f7ebef7 | 26-Feb-2025 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(drtm): introduce plat API for DLME authentication features
This patch introduces a platform-specific function to provide DLME authentication features. While no platforms currently support DLME
feat(drtm): introduce plat API for DLME authentication features
This patch introduces a platform-specific function to provide DLME authentication features. While no platforms currently support DLME authentication, this change offers a structured way for platforms to define and expose their DLME authentication features, with the flexibility to extend support in the future if needed.
Change-Id: Ia708914477c4d8cfee4809a9daade9a3e91ed073 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| 7792bdbd | 24-Feb-2025 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
feat(drtm): add platform API to retrieve ACPI tables region size
Introduces a platform-specific API to retrieve the ACPI table region size. This will be used in a subsequent patch to specify the min
feat(drtm): add platform API to retrieve ACPI tables region size
Introduces a platform-specific API to retrieve the ACPI table region size. This will be used in a subsequent patch to specify the minimum DLME size requirement for the DCE preamble.
Change-Id: I44ce9241733b22fea3cbce9d42f1c2cc5ef20852 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| 937c513d | 13-Dec-2024 |
Harrison Mutai <harrison.mutai@arm.com> |
feat(handoff): add transfer entry printer
Change-Id: Ib7d370b023f92f2fffbd341bcf874914fcc1bac2 Signed-off-by: Harrison Mutai <harrison.mutai@arm.com> |
| 0a580b51 | 15-Nov-2024 |
Boyan Karatotev <boyan.karatotev@arm.com> |
perf(cm): drop ZCR_EL3 saving and some ISBs and replace them with root context
SVE and SME aren't enabled symmetrically for all worlds, but EL3 needs to context switch them nonetheless. Previously,
perf(cm): drop ZCR_EL3 saving and some ISBs and replace them with root context
SVE and SME aren't enabled symmetrically for all worlds, but EL3 needs to context switch them nonetheless. Previously, this had to happen by writing the enable bits just before reading/writing the relevant context. But since the introduction of root context, this need not be the case. We can have these enables always be present for EL3 and save on some work (and ISBs!) on every context switch.
We can also hoist ZCR_EL3 to a never changing register, as we set its value to be identical for every world, which happens to be the one we want for EL3 too.
Change-Id: I3d950e72049a298008205ba32f230d5a5c02f8b0 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| 83ec7e45 | 06-Nov-2024 |
Boyan Karatotev <boyan.karatotev@arm.com> |
perf(amu): greatly simplify AMU context management
The current code is incredibly resilient to updates to the spec and has worked quite well so far. However, recent implementations expose a weakness
perf(amu): greatly simplify AMU context management
The current code is incredibly resilient to updates to the spec and has worked quite well so far. However, recent implementations expose a weakness in that this is rather slow. A large part of it is written in assembly, making it opaque to the compiler for optimisations. The future proofness requires reading registers that are effectively `volatile`, making it even harder for the compiler, as well as adding lots of implicit barriers, making it hard for the microarchitecutre to optimise as well.
We can make a few assumptions, checked by a few well placed asserts, and remove a lot of this burden. For a start, at the moment there are 4 group 0 counters with static assignments. Contexting them is a trivial affair that doesn't need a loop. Similarly, there can only be up to 16 group 1 counters. Contexting them is a bit harder, but we can do with a single branch with a falling through switch. If/when both of these change, we have a pair of asserts and the feature detection mechanism to guard us against pretending that we support something we don't.
We can drop contexting of the offset registers. They are fully accessible by EL2 and as such are its responsibility to preserve on powerdown.
Another small thing we can do, is pass the core_pos into the hook. The caller already knows which core we're running on, we don't need to call this non-trivial function again.
Finally, knowing this, we don't really need the auxiliary AMUs to be described by the device tree. Linux doesn't care at the moment, and any information we need for EL3 can be neatly placed in a simple array.
All of this, combined with lifting the actual saving out of assembly, reduces the instructions to save the context from 180 to 40, including a lot fewer branches. The code is also much shorter and easier to read.
Also propagate to aarch32 so that the two don't diverge too much.
Change-Id: Ib62e6e9ba5be7fb9fb8965c8eee148d5598a5361 Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|