diff options
author | Bipin Ravi <bipin.ravi@arm.com> | 2023-08-29 13:59:09 -0500 |
---|---|---|
committer | Bipin Ravi <bipin.ravi@arm.com> | 2023-08-29 15:05:56 -0500 |
commit | 74bfe31fd2c992d8e1e13bf396a9d5c136967ca5 (patch) | |
tree | f8a33b7a08d4041cfa5a27d287629243b9a10cab /services/std_svc/errata_abi/errata_abi_main.c | |
parent | 5f01b0b116629646dcd5aaf62e94b260c6da08f1 (diff) |
fix(cpus): workaround for Neoverse N2 erratum 2009478
Neoverse N2 erratum 2009478 is a Cat B erratum that applies to
revision r0p0 and is fixed in r0p1. The workaround is to clear
the ED bit for all core error records before setting the PWRDN_EN
bit in CPUPWRCTLR_EL1 to request a power down.
SDEN documentation:
https://developer.arm.com/documentation/SDEN1982442/latest
Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
Change-Id: Ic5ef58c9e795b90026af1d2b09edc0eea3ceee51
Diffstat (limited to 'services/std_svc/errata_abi/errata_abi_main.c')
-rw-r--r-- | services/std_svc/errata_abi/errata_abi_main.c | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/services/std_svc/errata_abi/errata_abi_main.c b/services/std_svc/errata_abi/errata_abi_main.c index 71a907b75..559351679 100644 --- a/services/std_svc/errata_abi/errata_abi_main.c +++ b/services/std_svc/errata_abi/errata_abi_main.c @@ -332,24 +332,25 @@ struct em_cpu_list cpu_list[] = { .cpu_partnumber = NEOVERSE_N2_MIDR, .cpu_errata_list = { [0] = {2002655, 0x00, 0x00, ERRATA_N2_2002655}, - [1] = {2025414, 0x00, 0x00, ERRATA_N2_2025414}, - [2] = {2067956, 0x00, 0x00, ERRATA_N2_2067956}, - [3] = {2138953, 0x00, 0x00, ERRATA_N2_2138953}, - [4] = {2138956, 0x00, 0x00, ERRATA_N2_2138956}, - [5] = {2138958, 0x00, 0x00, ERRATA_N2_2138958}, - [6] = {2189731, 0x00, 0x00, ERRATA_N2_2189731}, - [7] = {2242400, 0x00, 0x00, ERRATA_N2_2242400}, - [8] = {2242415, 0x00, 0x00, ERRATA_N2_2242415}, - [9] = {2280757, 0x00, 0x00, ERRATA_N2_2280757}, - [10] = {2326639, 0x00, 0x00, ERRATA_N2_2326639}, - [11] = {2376738, 0x00, 0x00, ERRATA_N2_2376738}, - [12] = {2388450, 0x00, 0x00, ERRATA_N2_2388450}, - [13] = {2728475, 0x00, 0x02, ERRATA_N2_2728475, \ + [1] = {2009478, 0x00, 0x00, ERRATA_N2_2009478}, + [2] = {2025414, 0x00, 0x00, ERRATA_N2_2025414}, + [3] = {2067956, 0x00, 0x00, ERRATA_N2_2067956}, + [4] = {2138953, 0x00, 0x00, ERRATA_N2_2138953}, + [5] = {2138956, 0x00, 0x00, ERRATA_N2_2138956}, + [6] = {2138958, 0x00, 0x00, ERRATA_N2_2138958}, + [7] = {2189731, 0x00, 0x00, ERRATA_N2_2189731}, + [8] = {2242400, 0x00, 0x00, ERRATA_N2_2242400}, + [9] = {2242415, 0x00, 0x00, ERRATA_N2_2242415}, + [10] = {2280757, 0x00, 0x00, ERRATA_N2_2280757}, + [11] = {2326639, 0x00, 0x00, ERRATA_N2_2326639}, + [12] = {2376738, 0x00, 0x00, ERRATA_N2_2376738}, + [13] = {2388450, 0x00, 0x00, ERRATA_N2_2388450}, + [14] = {2728475, 0x00, 0x02, ERRATA_N2_2728475, \ ERRATA_NON_ARM_INTERCONNECT}, - [14] = {2743014, 0x00, 0x02, ERRATA_N2_2743014}, - [15] = {2743089, 0x00, 0x02, ERRATA_N2_2743089}, - [16] = {2779511, 0x00, 0x02, ERRATA_N2_2779511}, - [17 ... ERRATA_LIST_END] = UNDEF_ERRATA, + [15] = {2743014, 0x00, 0x02, ERRATA_N2_2743014}, + [16] = {2743089, 0x00, 0x02, ERRATA_N2_2743089}, + [17] = {2779511, 0x00, 0x02, ERRATA_N2_2779511}, + [18 ... ERRATA_LIST_END] = UNDEF_ERRATA, } }, #endif /* NEOVERSE_N2_H_INC */ |