diff --git a/docs/design/cpu-specific-build-macros.rst b/docs/design/cpu-specific-build-macros.rst index 0cdcc200a..e6ca54225 100644 --- a/docs/design/cpu-specific-build-macros.rst +++ b/docs/design/cpu-specific-build-macros.rst @@ -940,6 +940,10 @@ For Cortex-A715, the following errata build flags are defined : For Cortex-A720, the following errata build flags are defined : +- ``ERRATA_A720_2792132``: This applies errata 2792132 workaround to + Cortex-A720 CPU. This needs to be enabled for revisions r0p0 and r0p1. + It is fixed in r0p2. + - ``ERRATA_A720_2844092``: This applies errata 2844092 workaround to Cortex-A720 CPU. This needs to be enabled for revisions r0p0 and r0p1. It is fixed in r0p2. diff --git a/lib/cpus/aarch64/cortex_a720.S b/lib/cpus/aarch64/cortex_a720.S index 3e2927bb8..9cc3cbc91 100644 --- a/lib/cpus/aarch64/cortex_a720.S +++ b/lib/cpus/aarch64/cortex_a720.S @@ -26,6 +26,12 @@ wa_cve_2022_23960_bhb_vector_table CORTEX_A720_BHB_LOOP_COUNT, cortex_a720 #endif /* WORKAROUND_CVE_2022_23960 */ +workaround_reset_start cortex_a720, ERRATUM(2792132), ERRATA_A720_2792132 + sysreg_bit_set CORTEX_A720_CPUACTLR2_EL1, BIT(26) +workaround_reset_end cortex_a720, ERRATUM(2792132) + +check_erratum_ls cortex_a720, ERRATUM(2792132), CPU_REV(0, 1) + workaround_reset_start cortex_a720, ERRATUM(2844092), ERRATA_A720_2844092 sysreg_bit_set CORTEX_A720_CPUACTLR4_EL1, BIT(11) workaround_reset_end cortex_a720, ERRATUM(2844092) diff --git a/lib/cpus/cpu-ops.mk b/lib/cpus/cpu-ops.mk index 1a9ee72a4..c55597ae9 100644 --- a/lib/cpus/cpu-ops.mk +++ b/lib/cpus/cpu-ops.mk @@ -964,6 +964,10 @@ CPU_FLAG_LIST += ERRATA_A715_2561034 # only to revision r0p0, r1p0 and r1p1. It is fixed in r1p2. CPU_FLAG_LIST += ERRATA_A715_2728106 +# Flag to apply erratum 2792132 workaround during reset. This erratum applies +# to revisions r0p0 and r0p1. It is fixed in r0p2. +CPU_FLAG_LIST += ERRATA_A720_2792132 + # Flag to apply erratum 2844092 workaround during reset. This erratum applies # to revisions r0p0 and r0p1. It is fixed in r0p2. CPU_FLAG_LIST += ERRATA_A720_2844092