| #
878464f0 |
| 21-May-2024 |
Sona Mathew <sonarebecca.mathew@arm.com> |
fix(cpus): workaround for CVE-2024-5660 for Neoverse-V2
Implements mitigation for CVE-2024-5660 that affects Neoverse-V2 revisions r0p0, r0p1, r0p2. The workaround is to disable the hardware page ag
fix(cpus): workaround for CVE-2024-5660 for Neoverse-V2
Implements mitigation for CVE-2024-5660 that affects Neoverse-V2 revisions r0p0, r0p1, r0p2. The workaround is to disable the hardware page aggregation at EL3 by setting CPUECTLR_EL1[46] = 1'b1.
Public Documentation: https://developer.arm.com/Arm%20Security%20Center/Arm%20CPU%20Vulnerability%20CVE-2024-5660
Change-Id: If66687add52d16f68ce54fe5433dd3b3f067ee04 Signed-off-by: Sona Mathew <sonarebecca.mathew@arm.com>
show more ...
|
| #
034b9197 |
| 21-Oct-2024 |
Govindraj Raja <govindraj.raja@arm.com> |
Merge "chore(cpus): optimise runtime errata applications" into integration
|
| #
db9ee834 |
| 26-Sep-2024 |
Boyan Karatotev <boyan.karatotev@arm.com> |
chore(cpus): optimise runtime errata applications
The errata framework has a helper to invoke workarounds, complete with a cpu rev_var check. We can use that directly instead of the apply_cpu_pwr_dw
chore(cpus): optimise runtime errata applications
The errata framework has a helper to invoke workarounds, complete with a cpu rev_var check. We can use that directly instead of the apply_cpu_pwr_dwn_errata to save on some code, as well as an extra branch. It's also more readable.
Also, apply_erratum invocation in cpu files don't need to check the rev_var as that was already done by the cpu_ops dispatcher for us to end up in the file.
Finally, X2 erratum 2768515 only applies in the powerdown sequence, i.e. at runtime. It doesn't achieve anything at reset, so we can label it accordingly.
Change-Id: I02f9dd7d0619feb54c870938ea186be5e3a6ca7b Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
|
| #
cc4f3838 |
| 27-Aug-2024 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "clean-up-errata-compatibility" into integration
* changes: refactor(cpus): remove cpu specific errata funcs refactor(cpus): directly invoke errata reporter
|
| #
3fb52e41 |
| 14-May-2024 |
Ryan Everett <ryan.everett@arm.com> |
refactor(cpus): remove cpu specific errata funcs
Errata printing is done directly via generic_errata_report. This commit removes the unused \_cpu\()_errata_report functions for all cores, and remove
refactor(cpus): remove cpu specific errata funcs
Errata printing is done directly via generic_errata_report. This commit removes the unused \_cpu\()_errata_report functions for all cores, and removes errata_func from cpu_ops.
Change-Id: I04fefbde5f0ff63b1f1cd17c864557a14070d68c Signed-off-by: Ryan Everett <ryan.everett@arm.com>
show more ...
|
| #
421f3e3e |
| 09-May-2024 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "feat(cpus): support to update External LLC presence in Neoverse V2" into integration
|
| #
6aa5d1b3 |
| 07-May-2024 |
Younghyun Park <younghyunpark@google.com> |
feat(cpus): support to update External LLC presence in Neoverse V2
The CPUECTLR_EL1.EXTLLC bit indicates that an external last level cache(LLC) is present in the system. The default value is interna
feat(cpus): support to update External LLC presence in Neoverse V2
The CPUECTLR_EL1.EXTLLC bit indicates that an external last level cache(LLC) is present in the system. The default value is internal LLC. Some systems which may have External LLC can enable the External LLC presece with new build option 'NEOVERSE_Vx_EXTERNAL_LLC'.
Change-Id: I740947f1ef78e31626dc5b96f6d6dc6658d0120f Signed-off-by: Younghyun Park <younghyunpark@google.com>
show more ...
|
| #
2e1e1664 |
| 29-Nov-2023 |
Lauren Wehrmeister <lauren.wehrmeister@arm.com> |
Merge "fix(cpus): workaround for Neoverse V2 erratum 2618597" into integration
|
| #
c0f8ce53 |
| 18-Oct-2023 |
Bipin Ravi <bipin.ravi@arm.com> |
fix(cpus): workaround for Neoverse V2 erratum 2618597
Neoverse V2 erratum 2618597 is a Cat B erratum that applies to all revisions <= r0p1 and is fixed in r0p2. The workaround is to disable the use
fix(cpus): workaround for Neoverse V2 erratum 2618597
Neoverse V2 erratum 2618597 is a Cat B erratum that applies to all revisions <= r0p1 and is fixed in r0p2. The workaround is to disable the use of the Full Retention power mode in the core (setting WFI_RET_CTRL and WFE_RET_CTRL in IMP_CPUPWRCTLR_EL1 to 0b000).
SDEN can be found here: https://developer.arm.com/documentation/SDEN-2332927/latest
Change-Id: I23a81275d1e40cae39e6897093d6cdd3e11c08ea Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
show more ...
|
| #
9d4819a0 |
| 29-Nov-2023 |
Lauren Wehrmeister <lauren.wehrmeister@arm.com> |
Merge "fix(cpus): workaround for Neoverse V2 erratum 2662553" into integration
|
| #
912c4090 |
| 17-Oct-2023 |
Bipin Ravi <bipin.ravi@arm.com> |
fix(cpus): workaround for Neoverse V2 erratum 2662553
Neoverse V2 erratum 2662553 is a Cat B erratum that applies to all revisions <= r0p1 and is fixed in r0p2. The workaround is to set L2 TQ size s
fix(cpus): workaround for Neoverse V2 erratum 2662553
Neoverse V2 erratum 2662553 is a Cat B erratum that applies to all revisions <= r0p1 and is fixed in r0p2. The workaround is to set L2 TQ size statically to it's full size.
SDEN documentation: https://developer.arm.com/documentation/SDEN-2332927/latest
Change-Id: I3bc43e7299c17db8a6771a547515ffb2a172fa0f Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
show more ...
|
| #
fcfa15d4 |
| 22-Sep-2023 |
Lauren Wehrmeister <lauren.wehrmeister@arm.com> |
Merge changes from topic "errata" into integration
* changes: fix(cpus): workaround for Neoverse V2 erratum 2743011 fix(cpus): workaround for Neoverse V2 erratum 2779510 fix(cpus): workaround
Merge changes from topic "errata" into integration
* changes: fix(cpus): workaround for Neoverse V2 erratum 2743011 fix(cpus): workaround for Neoverse V2 erratum 2779510 fix(cpus): workaround for Neoverse V2 erratum 2719105 fix(cpus): workaround for Neoverse V2 erratum 2331132
show more ...
|
| #
58dd153c |
| 19-Sep-2023 |
Bipin Ravi <bipin.ravi@arm.com> |
fix(cpus): workaround for Neoverse V2 erratum 2743011
Neoverse V2 erratum 2743011 is a Cat B erratum that applies to all revisions <= r0p1 and is fixed in r0p2. The workaround is to set CPUACTLR5_EL
fix(cpus): workaround for Neoverse V2 erratum 2743011
Neoverse V2 erratum 2743011 is a Cat B erratum that applies to all revisions <= r0p1 and is fixed in r0p2. The workaround is to set CPUACTLR5_EL1[56:55] to 2'b01.
SDEN documentation: https://developer.arm.com/documentation/SDEN2332927/latest
Signed-off-by: Bipin Ravi <bipin.ravi@arm.com> Change-Id: I0e06ca723a1cce51fb027b7160f3dd06a4c93e64
show more ...
|
| #
ff342643 |
| 19-Sep-2023 |
Bipin Ravi <bipin.ravi@arm.com> |
fix(cpus): workaround for Neoverse V2 erratum 2779510
Neoverse V2 erratum 2779510 is a Cat B erratum that applies to all revisions <= r0p1 and is fixed in r0p2. The workaround is to set bit[47] of C
fix(cpus): workaround for Neoverse V2 erratum 2779510
Neoverse V2 erratum 2779510 is a Cat B erratum that applies to all revisions <= r0p1 and is fixed in r0p2. The workaround is to set bit[47] of CPUACTLR3_EL1 which might have a small impact on power and negligible impact on performance.
SDEN documentation: https://developer.arm.com/documentation/SDEN2332927/latest
Signed-off-by: Bipin Ravi <bipin.ravi@arm.com> Change-Id: I6d937747bdcbf2913a64c4037f99918cbc466e80
show more ...
|
| #
b0114025 |
| 18-Sep-2023 |
Bipin Ravi <bipin.ravi@arm.com> |
fix(cpus): workaround for Neoverse V2 erratum 2719105
Neoverse V2 erratum 2719105 is a Cat B erratum that applies to all revisions <= r0p1 and is fixed in r0p2.
The erratum is avoided by setting CP
fix(cpus): workaround for Neoverse V2 erratum 2719105
Neoverse V2 erratum 2719105 is a Cat B erratum that applies to all revisions <= r0p1 and is fixed in r0p2.
The erratum is avoided by setting CPUACTLR2_EL1[0] to 1 to force PLDW/PFRM ST to behave like PLD/PRFM LD and not cause invalidations to other PE caches. There might be a small performance degradation to this workaround for certain workloads that share data.
SDEN documentation: https://developer.arm.com/documentation/SDEN2332927/latest
Signed-off-by: Bipin Ravi <bipin.ravi@arm.com> Change-Id: Id026edcb7ee1ca93371ce0001d18f5a8282c49ba
show more ...
|
| #
8852fb5b |
| 18-Sep-2023 |
Bipin Ravi <bipin.ravi@arm.com> |
fix(cpus): workaround for Neoverse V2 erratum 2331132
Neoverse V2 erratum 2331132 is a Cat B erratum that applies to all revisions <= r0p2 and is still open. The workaround is to write the value 4'b
fix(cpus): workaround for Neoverse V2 erratum 2331132
Neoverse V2 erratum 2331132 is a Cat B erratum that applies to all revisions <= r0p2 and is still open. The workaround is to write the value 4'b1001 to the PF_MODE bits in the IMP_CPUECTLR2_EL1 register which will place the data prefetcher in the most conservative mode instead of disabling it.
SDEN documentation: https://developer.arm.com/documentation/SDEN2332927/latest
Signed-off-by: Bipin Ravi <bipin.ravi@arm.com> Change-Id: Ic6c76375df465a4ad2e20dd7add7037477d973c1
show more ...
|
| #
50d89e30 |
| 11-Aug-2023 |
Lauren Wehrmeister <lauren.wehrmeister@arm.com> |
Merge changes from topic "ar/errata_refactor" into integration
* changes: refactor(cpus): convert Neoverse V2 to use CPU helpers refactor(cpus): convert Neoverse V2 to framework
|
| #
5039015a |
| 18-Jul-2023 |
Moritz Fischer <moritzf@google.com> |
refactor(cpus): convert Neoverse V2 to use CPU helpers
Convert Neoverse V2 to use CPU helpers, in this case that's only two spots.
Change-Id: Icd250f92974e8a50c459038de7644a2e68007589 Signed-off-by
refactor(cpus): convert Neoverse V2 to use CPU helpers
Convert Neoverse V2 to use CPU helpers, in this case that's only two spots.
Change-Id: Icd250f92974e8a50c459038de7644a2e68007589 Signed-off-by: Moritz Fischer <moritzf@google.com> Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
show more ...
|
| #
31a3da83 |
| 17-Jul-2023 |
Moritz Fischer <moritzf@google.com> |
refactor(cpus): convert Neoverse V2 to framework
For V2, this involves replacing: - The reset_func with the standard cpu_reset_func_{start,end} to apply errata automatically - The <cpu>_erra
refactor(cpus): convert Neoverse V2 to framework
For V2, this involves replacing: - The reset_func with the standard cpu_reset_func_{start,end} to apply errata automatically - The <cpu>_errata_report with the errata_report_shim to report errata automatically
And for each erratum: - The prologue with the workaround_<type>_start to do the checks and framework registration automatically at reset or runtime - The epilogue with the workaround_<type>_end - The checker function with the check_erratum_<type> to check whether the erratum applies on the revision of the CPU.
It is important to note that the errata workaround sequences remain unchanged and preserve their git blame.
Testing was conducted by:
* Manual comparison of disassembly of converted functions with non- converted functions
aarch64-none-elf-objdump -D <trusted-firmware-a with conversion>/build/fvp/release/bl31/bl31.elf vs aarch64-none-elf-objdump -D <trusted-firmware-a clean repo>/build/fvp/release/bl31/bl31.elf
* Build for release with all errata flags enabled and run default tftf tests
CROSS_COMPILE=aarch64-none-elf- make PLAT=fvp CTX_INCLUDE_AARCH32_REGS=0 \ HW_ASSISTED_COHERENCY=1 USE_COHERENT_MEM=0 \ BL33=./../tf-a-tests/build/fvp/debug/tftf.bin \ ERRATA_V2_2801372 WORKAROUND_CVE_2022_23960=1 ERRATA_ABI_SUPPORT=1 all fip
* Build for debug with all errata enabled and step through ArmDS at reset to ensure all functions are entered.
Change-Id: Ic968844d6aabea3867189d747769ced8faa87e56 Signed-off-by: Moritz Fischer <moritzf@google.com> Signed-off-by: Arvind Ram Prakash <arvind.ramprakash@arm.com>
show more ...
|
| #
fbc90e0f |
| 25-Jul-2023 |
Bipin Ravi <bipin.ravi@arm.com> |
Merge "fix(cpus): workaround for Neoverse V2 erratum 2801372" into integration
|
| #
40c81ed5 |
| 06-Jul-2023 |
Moritz Fischer <moritzf@google.com> |
fix(cpus): workaround for Neoverse V2 erratum 2801372
Neoverse V2 erratum 2801372 is a Cat B erratum that applies to all revisions <=r0p1 and is fixed in r0p2. The workaround is to insert a dsb befo
fix(cpus): workaround for Neoverse V2 erratum 2801372
Neoverse V2 erratum 2801372 is a Cat B erratum that applies to all revisions <=r0p1 and is fixed in r0p2. The workaround is to insert a dsb before the isb in the power down sequence.
This errata is explained in SDEN 2332927 available at: https://developer.arm.com/documentation/SDEN2332927
Change-Id: I8716b9785a67270a72ae329dc49a2f2239dfabff Signed-off-by: Moritz Fischer <moritzf@google.com>
show more ...
|
| #
252b2bd8 |
| 04-Oct-2022 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes I134f125f,Ia4bf45bf into integration
* changes: refactor(sgi): rename RD-Edmunds to RD-V2 refactor(cpu): use the updated IP name for Demeter CPU
|
| #
bd063a73 |
| 21-Sep-2022 |
Joel Goddard <joel.goddard@arm.com> |
refactor(cpu): use the updated IP name for Demeter CPU
Neoverse Demeter CPU has been renamed to Neoverse V2 CPU. Correspondingly, update the CPU library, file names and other references to use the u
refactor(cpu): use the updated IP name for Demeter CPU
Neoverse Demeter CPU has been renamed to Neoverse V2 CPU. Correspondingly, update the CPU library, file names and other references to use the updated IP name.
Signed-off-by: Joel Goddard <joel.goddard@arm.com> Change-Id: Ia4bf45bf47807c06f4c966861230faea420d088f
show more ...
|