diff options
author | Mark Dykes <mark.dykes@arm.com> | 2023-09-07 23:05:48 +0200 |
---|---|---|
committer | TrustedFirmware Code Review <review@review.trustedfirmware.org> | 2023-09-07 23:05:48 +0200 |
commit | d2b66cc87e1f5507d309c973de4bd2100cac532c (patch) | |
tree | bcfc0ae665f815bbd564dd18ad2595058f2bd19d /lib/cpus/aarch64 | |
parent | 8e790490e3e3563d555b0b321338c9d01aa75fc3 (diff) | |
parent | 74bfe31fd2c992d8e1e13bf396a9d5c136967ca5 (diff) |
Merge "fix(cpus): workaround for Neoverse N2 erratum 2009478" into integration
Diffstat (limited to 'lib/cpus/aarch64')
-rw-r--r-- | lib/cpus/aarch64/neoverse_n2.S | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/cpus/aarch64/neoverse_n2.S b/lib/cpus/aarch64/neoverse_n2.S index acf8deeb5..ead390800 100644 --- a/lib/cpus/aarch64/neoverse_n2.S +++ b/lib/cpus/aarch64/neoverse_n2.S @@ -68,6 +68,22 @@ workaround_reset_end neoverse_n2, ERRATUM(2067956) check_erratum_ls neoverse_n2, ERRATUM(2067956), CPU_REV(0, 0) +workaround_runtime_start neoverse_n2, ERRATUM(2009478), ERRATA_N2_2009478 + /* Stash ERRSELR_EL1 in x2 */ + mrs x2, ERRSELR_EL1 + + /* Select error record 0 and clear ED bit */ + msr ERRSELR_EL1, xzr + mrs x1, ERXCTLR_EL1 + bfi x1, xzr, #ERXCTLR_ED_SHIFT, #1 + msr ERXCTLR_EL1, x1 + + /* Restore ERRSELR_EL1 from x2 */ + msr ERRSELR_EL1, x2 +workaround_runtime_end neoverse_n2, ERRATUM(2009478), NO_ISB + +check_erratum_ls neoverse_n2, ERRATUM(2009478), CPU_REV(0, 0) + workaround_reset_start neoverse_n2, ERRATUM(2138953), ERRATA_N2_2138953 /* Apply instruction patching sequence */ mrs x1, NEOVERSE_N2_CPUECTLR2_EL1 @@ -233,7 +249,9 @@ cpu_reset_func_end neoverse_n2 func neoverse_n2_core_pwr_dwn - apply_erratum neoverse_n2, ERRATUM(2326639), ERRATA_N2_2326639 + apply_erratum neoverse_n2, ERRATUM(2009478), ERRATA_N2_2009478 + apply_erratum neoverse_n2, ERRATUM(2326639), ERRATA_N2_2326639, NO_GET_CPU_REV + /* --------------------------------------------------- * Enable CPU power down bit in power control register * No need to do cache maintenance here. |