Merge "fix: add split workaround check in Errata ABI test"
diff --git a/include/runtime_services/errata_abi.h b/include/runtime_services/errata_abi.h
index dc50113..78c739f 100644
--- a/include/runtime_services/errata_abi.h
+++ b/include/runtime_services/errata_abi.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2023, Arm Limited. All rights reserved.
+ * Copyright (c) 2025, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -49,6 +49,7 @@
int em_errata_id;
unsigned int rxpx_low;
unsigned int rxpx_high;
+ unsigned int split_wa;
} em_cpu_errata_t;
typedef struct em_cpu{
diff --git a/tftf/tests/runtime_services/standard_service/errata_abi/api_tests/test_errata_abi_functionality.c b/tftf/tests/runtime_services/standard_service/errata_abi/api_tests/test_errata_abi_functionality.c
index 91e5307..98c567d 100644
--- a/tftf/tests/runtime_services/standard_service/errata_abi/api_tests/test_errata_abi_functionality.c
+++ b/tftf/tests/runtime_services/standard_service/errata_abi/api_tests/test_errata_abi_functionality.c
@@ -44,8 +44,8 @@
em_cpu_t cortex_A15_errata_list = {
.cpu_pn = 0xC0F,
.cpu_errata = {
- {816470, 0x30, 0xFF},
- {827671, 0x30, 0xFF},
+ {816470, 0x30, 0xFF, 0x00},
+ {827671, 0x30, 0xFF, 0x00},
{-1}
},
};
@@ -53,8 +53,8 @@
em_cpu_t cortex_A17_errata_list = {
.cpu_pn = 0xC0E,
.cpu_errata = {
- {852421, 0x00, 0x12},
- {852423, 0x00, 0x12},
+ {852421, 0x00, 0x12, 0x00},
+ {852423, 0x00, 0x12, 0x00},
{-1}
},
};
@@ -62,7 +62,7 @@
em_cpu_t cortex_A9_errata_list = {
.cpu_pn = 0xC09,
.cpu_errata = {
- {790473, 0x00, 0xFF},
+ {790473, 0x00, 0xFF, 0x00},
{-1}
},
};
@@ -70,8 +70,8 @@
em_cpu_t cortex_A35_errata_list = {
.cpu_pn = 0xD04,
.cpu_errata = {
- {855472, 0x00, 0x00},
- {1234567, 0x00, 0x00},
+ {855472, 0x00, 0x00, 0x00},
+ {1234567, 0x00, 0x00, 0x00},
{-1}
},
};
@@ -79,15 +79,15 @@
em_cpu_t cortex_A53_errata_list = {
.cpu_pn = 0xD03,
.cpu_errata = {
- {819472, 0x00, 0x01},
- {824069, 0x00, 0x02},
- {826319, 0x00, 0x02},
- {827319, 0x00, 0x02},
- {835769, 0x00, 0x04},
- {836870, 0x00, 0x03},
- {843419, 0x00, 0x04},
- {855873, 0x03, 0xFF},
- {1530924, 0x00, 0xFF},
+ {819472, 0x00, 0x01, 0x00},
+ {824069, 0x00, 0x02, 0x00},
+ {826319, 0x00, 0x02, 0x00},
+ {827319, 0x00, 0x02, 0x00},
+ {835769, 0x00, 0x04, 0x00},
+ {836870, 0x00, 0x03, 0x00},
+ {843419, 0x00, 0x04, 0x00},
+ {855873, 0x03, 0xFF, 0x00},
+ {1530924, 0x00, 0xFF, 0x00},
{-1}
},
};
@@ -95,13 +95,13 @@
em_cpu_t cortex_A55_errata_list = {
.cpu_pn = 0xD05,
.cpu_errata = {
- {768277, 0x00, 0x00},
- {778703, 0x00, 0x00},
- {798797, 0x00, 0x00},
- {846532, 0x00, 0x01},
- {903758, 0x00, 0x01},
- {1221012, 0x00, 0x10},
- {1530923, 0x00, 0xFF},
+ {768277, 0x00, 0x00, 0x00},
+ {778703, 0x00, 0x00, 0x00},
+ {798797, 0x00, 0x00, 0x00},
+ {846532, 0x00, 0x01, 0x00},
+ {903758, 0x00, 0x01, 0x00},
+ {1221012, 0x00, 0x10, 0x00},
+ {1530923, 0x00, 0xFF, 0x00},
{-1}
},
};
@@ -109,18 +109,18 @@
em_cpu_t cortex_A57_errata_list = {
.cpu_pn = 0xD07,
.cpu_errata = {
- {806969, 0x00, 0x00},
- {813419, 0x00, 0x00},
- {813420, 0x00, 0x00},
- {814670, 0x00, 0x00},
- {817169, 0x00, 0x01},
- {826974, 0x00, 0x11},
- {826977, 0x00, 0x11},
- {828024, 0x00, 0x11},
- {829520, 0x00, 0x12},
- {833471, 0x00, 0x12},
- {859972, 0x00, 0x13},
- {1319537, 0x00, 0xFF},
+ {806969, 0x00, 0x00, 0x00},
+ {813419, 0x00, 0x00, 0x00},
+ {813420, 0x00, 0x00, 0x00},
+ {814670, 0x00, 0x00, 0x00},
+ {817169, 0x00, 0x01, 0x00},
+ {826974, 0x00, 0x11, 0x00},
+ {826977, 0x00, 0x11, 0x00},
+ {828024, 0x00, 0x11, 0x00},
+ {829520, 0x00, 0x12, 0x00},
+ {833471, 0x00, 0x12, 0x00},
+ {859972, 0x00, 0x13, 0x00},
+ {1319537, 0x00, 0xFF, 0x00},
{-1}
},
};
@@ -128,10 +128,10 @@
em_cpu_t cortex_A72_errata_list = {
.cpu_pn = 0xD08,
.cpu_errata = {
- {859971, 0x00, 0x03},
- {1234567, 0x00, 0xFF},
- {1319367, 0x00, 0xFF},
- {9876543, 0x00, 0xFF},
+ {859971, 0x00, 0x03, 0x00},
+ {1234567, 0x00, 0xFF, 0x00},
+ {1319367, 0x00, 0xFF, 0x00},
+ {9876543, 0x00, 0xFF, 0x00},
{-1}
},
};
@@ -139,8 +139,8 @@
em_cpu_t cortex_A73_errata_list = {
.cpu_pn = 0xD09,
.cpu_errata = {
- {852427, 0x00, 0x00},
- {855423, 0x00, 0x01},
+ {852427, 0x00, 0x00, 0x00},
+ {855423, 0x00, 0x01, 0x00},
{-1}
},
};
@@ -148,8 +148,8 @@
em_cpu_t cortex_A75_errata_list = {
.cpu_pn = 0xD0A,
.cpu_errata = {
- {764081, 0x00, 0x00},
- {790748, 0x00, 0x00},
+ {764081, 0x00, 0x00, 0x00},
+ {790748, 0x00, 0x00, 0x00},
{-1}
},
};
@@ -157,19 +157,19 @@
em_cpu_t cortex_A76_errata_list = {
.cpu_pn = 0xD0B,
.cpu_errata = {
- {1073348, 0x00, 0x10},
- {1130799, 0x00, 0x20},
- {1165522, 0x00, 0xFF},
- {1220197, 0x00, 0x20},
- {1257314, 0x00, 0x30},
- {1262606, 0x00, 0x30},
- {1262888, 0x00, 0x30},
- {1275112, 0x00, 0x30},
- {1286807, 0x00, 0x30},
- {1791580, 0x00, 0x40},
- {1868343, 0x00, 0x40},
- {1946160, 0x30, 0x41},
- {2743102, 0x00, 0x41},
+ {1073348, 0x00, 0x10, 0x00},
+ {1130799, 0x00, 0x20, 0x00},
+ {1165522, 0x00, 0xFF, 0x00},
+ {1220197, 0x00, 0x20, 0x00},
+ {1257314, 0x00, 0x30, 0x00},
+ {1262606, 0x00, 0x30, 0x00},
+ {1262888, 0x00, 0x30, 0x00},
+ {1275112, 0x00, 0x30, 0x00},
+ {1286807, 0x00, 0x30, 0x00},
+ {1791580, 0x00, 0x40, 0x00},
+ {1868343, 0x00, 0x40, 0x00},
+ {1946160, 0x30, 0x41, 0x00},
+ {2743102, 0x00, 0x41, 0x00},
{-1}
},
};
@@ -177,13 +177,13 @@
em_cpu_t cortex_A77_errata_list = {
.cpu_pn = 0xD0D,
.cpu_errata = {
- {1508412, 0x00, 0x10},
- {1791578, 0x00, 0x11},
- {1800714, 0x00, 0x11},
- {1925769, 0x00, 0x11},
- {1946167, 0x00, 0x11},
- {2356587, 0x00, 0x11},
- {2743100, 0x00, 0x11},
+ {1508412, 0x00, 0x10, 0x00},
+ {1791578, 0x00, 0x11, 0x00},
+ {1800714, 0x00, 0x11, 0x00},
+ {1925769, 0x00, 0x11, 0x00},
+ {1946167, 0x00, 0x11, 0x00},
+ {2356587, 0x00, 0x11, 0x00},
+ {2743100, 0x00, 0x11, 0x00},
{-1}
},
};
@@ -191,11 +191,11 @@
em_cpu_t cortex_A78_AE_errata_list = {
.cpu_pn = 0xD42,
.cpu_errata = {
- {1941500, 0x00, 0x01},
- {1951502, 0x00, 0x01},
- {2376748, 0x00, 0x01},
- {2712574, 0x00, 0x02},
- {2395408, 0x00, 0x01},
+ {1941500, 0x00, 0x01, 0x00},
+ {1951502, 0x00, 0x01, 0x00},
+ {2376748, 0x00, 0x01, 0x00},
+ {2712574, 0x00, 0x02, 0x00},
+ {2395408, 0x00, 0x01, 0x00},
{-1}
},
};
@@ -203,19 +203,19 @@
em_cpu_t cortex_A78_errata_list = {
.cpu_pn = 0xD41,
.cpu_errata = {
- {1688305, 0x00, 0x10},
- {1821534, 0x00, 0x10},
- {1941498, 0x00, 0x11},
- {1951500, 0x10, 0x11},
- {1952683, 0x00, 0x00},
- {2132060, 0x00, 0x12},
- {2242635, 0x10, 0x12},
- {2376745, 0x00, 0x12},
- {2395406, 0x00, 0x12},
- {2712571, 0x00, 0x12},
- {2742426, 0x00, 0x12},
- {2772019, 0x00, 0x12},
- {2779479, 0x00, 0x12},
+ {1688305, 0x00, 0x10, 0x00},
+ {1821534, 0x00, 0x10, 0x00},
+ {1941498, 0x00, 0x11, 0x00},
+ {1951500, 0x10, 0x11, 0x00},
+ {1952683, 0x00, 0x00, 0x00},
+ {2132060, 0x00, 0x12, 0x00},
+ {2242635, 0x10, 0x12, 0x00},
+ {2376745, 0x00, 0x12, 0x00},
+ {2395406, 0x00, 0x12, 0x00},
+ {2712571, 0x00, 0x12, 0x00},
+ {2742426, 0x00, 0x12, 0x00},
+ {2772019, 0x00, 0x12, 0x00},
+ {2779479, 0x00, 0x12, 0x00},
{-1}
},
};
@@ -223,17 +223,17 @@
em_cpu_t cortex_A78C_errata_list = {
.cpu_pn = 0xD4B,
.cpu_errata = {
- {1827430, 0x00, 0x00},
- {1827440, 0x00, 0x00},
- {2132064, 0x01, 0x02},
- {2242638, 0x01, 0x02},
- {2376749, 0x01, 0x02},
- {2395411, 0x01, 0x02},
- {2683027, 0x01, 0x02},
- {2712575, 0x01, 0x02},
- {2743232, 0x01, 0x02},
- {2772121, 0x00, 0x02},
- {2779484, 0x01, 0x02},
+ {1827430, 0x00, 0x00, 0x00},
+ {1827440, 0x00, 0x00, 0x00},
+ {2132064, 0x01, 0x02, 0x00},
+ {2242638, 0x01, 0x02, 0x00},
+ {2376749, 0x01, 0x02, 0x00},
+ {2395411, 0x01, 0x02, 0x00},
+ {2683027, 0x01, 0x02, 0x00},
+ {2712575, 0x01, 0x02, 0x00},
+ {2743232, 0x01, 0x02, 0x00},
+ {2772121, 0x00, 0x02, 0x00},
+ {2779484, 0x01, 0x02, 0x00},
{-1}
},
};
@@ -242,9 +242,9 @@
em_cpu_t cortex_X1_errata_list = {
.cpu_pn = 0xD44,
.cpu_errata = {
- {1688305, 0x00, 0x10},
- {1821534, 0x00, 0x10},
- {1827429, 0x00, 0x10},
+ {1688305, 0x00, 0x10, 0x00},
+ {1821534, 0x00, 0x10, 0x00},
+ {1827429, 0x00, 0x10, 0x00},
{-1}
},
@@ -253,21 +253,21 @@
em_cpu_t neoverse_N1_errata_list = {
.cpu_pn = 0xD0C,
.cpu_errata = {
- {1043202, 0x00, 0x10},
- {1073348, 0x00, 0x10},
- {1130799, 0x00, 0x20},
- {1165347, 0x00, 0x20},
- {1207823, 0x00, 0x20},
- {1220197, 0x00, 0x20},
- {1257314, 0x00, 0x30},
- {1262606, 0x00, 0x30},
- {1262888, 0x00, 0x30},
- {1275112, 0x00, 0x30},
- {1315703, 0x00, 0x30},
- {1542419, 0x30, 0x40},
- {1868343, 0x00, 0x40},
- {1946160, 0x30, 0x41},
- {2743102, 0x00, 0x41},
+ {1043202, 0x00, 0x10, 0x00},
+ {1073348, 0x00, 0x10, 0x00},
+ {1130799, 0x00, 0x20, 0x00},
+ {1165347, 0x00, 0x20, 0x00},
+ {1207823, 0x00, 0x20, 0x00},
+ {1220197, 0x00, 0x20, 0x00},
+ {1257314, 0x00, 0x30, 0x00},
+ {1262606, 0x00, 0x30, 0x00},
+ {1262888, 0x00, 0x30, 0x00},
+ {1275112, 0x00, 0x30, 0x00},
+ {1315703, 0x00, 0x30, 0x00},
+ {1542419, 0x30, 0x40, 0x01},
+ {1868343, 0x00, 0x40, 0x00},
+ {1946160, 0x30, 0x41, 0x00},
+ {2743102, 0x00, 0x41, 0x00},
{-1}
},
};
@@ -275,23 +275,23 @@
em_cpu_t neoverse_V1_errata_list = {
.cpu_pn = 0xD40,
.cpu_errata = {
- {1618635, 0x00, 0x0F},
- {1774420, 0x00, 0x10},
- {1791573, 0x00, 0x10},
- {1852267, 0x00, 0x10},
- {1925756, 0x00, 0x11},
- {1940577, 0x10, 0x11},
- {1966096, 0x10, 0x11},
- {2108267, 0x00, 0x11},
- {2139242, 0x00, 0x11},
- {2216392, 0x10, 0x11},
- {2294912, 0x00, 0x11},
- {2348377, 0x00, 0x11},
- {2372203, 0x00, 0x11},
- {2701953, 0x00, 0x11},
- {2743093, 0x00, 0x12},
- {2743233, 0x00, 0x12},
- {2779461, 0x00, 0x12},
+ {1618635, 0x00, 0x0F, 0x00},
+ {1774420, 0x00, 0x10, 0x00},
+ {1791573, 0x00, 0x10, 0x00},
+ {1852267, 0x00, 0x10, 0x00},
+ {1925756, 0x00, 0x11, 0x00},
+ {1940577, 0x10, 0x11, 0x00},
+ {1966096, 0x10, 0x11, 0x00},
+ {2108267, 0x00, 0x11, 0x00},
+ {2139242, 0x00, 0x11, 0x00},
+ {2216392, 0x10, 0x11, 0x00},
+ {2294912, 0x00, 0x11, 0x00},
+ {2348377, 0x00, 0x11, 0x00},
+ {2372203, 0x00, 0x11, 0x00},
+ {2701953, 0x00, 0x11, 0x00},
+ {2743093, 0x00, 0x12, 0x00},
+ {2743233, 0x00, 0x12, 0x00},
+ {2779461, 0x00, 0x12, 0x00},
{-1}
},
};
@@ -299,24 +299,24 @@
em_cpu_t cortex_A710_errata_list = {
.cpu_pn = 0xD47,
.cpu_errata = {
- {1987031, 0x00, 0x20},
- {2008768, 0x00, 0x20},
- {2017096, 0x00, 0x20},
- {2055002, 0x10, 0x20},
- {2058056, 0x00, 0x10},
- {2081180, 0x00, 0x20},
- {2083908, 0x20, 0x20},
- {2136059, 0x00, 0x20},
- {2147715, 0x20, 0x20},
- {2216384, 0x00, 0x20},
- {2267065, 0x00, 0x20},
- {2282622, 0x00, 0x21},
- {2291219, 0x00, 0x20},
- {2371105, 0x00, 0x20},
- {2701952, 0x00, 0x21},
- {2742423, 0x00, 0x21},
- {2768515, 0x00, 0x21},
- {2778471, 0x00, 0x21},
+ {1987031, 0x00, 0x20, 0x00},
+ {2008768, 0x00, 0x20, 0x00},
+ {2017096, 0x00, 0x20, 0x00},
+ {2055002, 0x10, 0x20, 0x00},
+ {2058056, 0x00, 0x10, 0x00},
+ {2081180, 0x00, 0x20, 0x00},
+ {2083908, 0x20, 0x20, 0x00},
+ {2136059, 0x00, 0x20, 0x00},
+ {2147715, 0x20, 0x20, 0x00},
+ {2216384, 0x00, 0x20, 0x00},
+ {2267065, 0x00, 0x20, 0x00},
+ {2282622, 0x00, 0x21, 0x00},
+ {2291219, 0x00, 0x20, 0x00},
+ {2371105, 0x00, 0x20, 0x00},
+ {2701952, 0x00, 0x21, 0x00},
+ {2742423, 0x00, 0x21, 0x00},
+ {2768515, 0x00, 0x21, 0x00},
+ {2778471, 0x00, 0x21, 0x00},
{-1}
},
};
@@ -324,22 +324,22 @@
em_cpu_t neoverse_N2_errata_list = {
.cpu_pn = 0xD49,
.cpu_errata = {
- {2002655, 0x00, 0x00},
- {2025414, 0x00, 0x00},
- {2067956, 0x00, 0x00},
- {2138953, 0x00, 0x00},
- {2138956, 0x00, 0x00},
- {2138958, 0x00, 0x00},
- {2189731, 0x00, 0x00},
- {2242400, 0x00, 0x00},
- {2242415, 0x00, 0x00},
- {2280757, 0x00, 0x00},
- {2326639, 0x00, 0x00},
- {2376738, 0x00, 0x00},
- {2388450, 0x00, 0x00},
- {2728475, 0x00, 0x02},
- {2743089, 0x00, 0x02},
- {2779511, 0x00, 0x02},
+ {2002655, 0x00, 0x00, 0x00},
+ {2025414, 0x00, 0x00, 0x00},
+ {2067956, 0x00, 0x00, 0x00},
+ {2138953, 0x00, 0x00, 0x00},
+ {2138956, 0x00, 0x00, 0x00},
+ {2138958, 0x00, 0x00, 0x00},
+ {2189731, 0x00, 0x00, 0x00},
+ {2242400, 0x00, 0x00, 0x00},
+ {2242415, 0x00, 0x00, 0x00},
+ {2280757, 0x00, 0x00, 0x00},
+ {2326639, 0x00, 0x00, 0x00},
+ {2376738, 0x00, 0x00, 0x00},
+ {2388450, 0x00, 0x00, 0x00},
+ {2728475, 0x00, 0x02, 0x00},
+ {2743089, 0x00, 0x02, 0x00},
+ {2779511, 0x00, 0x02, 0x00},
{-1}
},
};
@@ -347,19 +347,19 @@
em_cpu_t cortex_X2_errata_list = {
.cpu_pn = 0xD48,
.cpu_errata = {
- {2002765, 0x00, 0x20},
- {2017096, 0x00, 0x20},
- {2058056, 0x00, 0x20},
- {2081180, 0x00, 0x20},
- {2083908, 0x00, 0x20},
- {2147715, 0x20, 0x20},
- {2216384, 0x00, 0x20},
- {2282622, 0x00, 0x21},
- {2371105, 0x00, 0x21},
- {2701952, 0x00, 0x21},
- {2742423, 0x00, 0x21},
- {2768515, 0x00, 0x21},
- {2778471, 0x00, 0x21},
+ {2002765, 0x00, 0x20, 0x00},
+ {2017096, 0x00, 0x20, 0x00},
+ {2058056, 0x00, 0x20, 0x00},
+ {2081180, 0x00, 0x20, 0x00},
+ {2083908, 0x00, 0x20, 0x00},
+ {2147715, 0x20, 0x20, 0x00},
+ {2216384, 0x00, 0x20, 0x00},
+ {2282622, 0x00, 0x21, 0x00},
+ {2371105, 0x00, 0x21, 0x00},
+ {2701952, 0x00, 0x21, 0x00},
+ {2742423, 0x00, 0x21, 0x00},
+ {2768515, 0x00, 0x21, 0x00},
+ {2778471, 0x00, 0x21, 0x00},
{-1}
},
};
@@ -367,19 +367,19 @@
em_cpu_t cortex_A510_errata_list = {
.cpu_pn = 0xD46,
.cpu_errata = {
- {1922240, 0x00, 0x00},
- {2041909, 0x02, 0x02},
- {2042739, 0x00, 0x02},
- {2080326, 0x02, 0x02},
- {2172148, 0x00, 0x10},
- {2218950, 0x00, 0x10},
- {2250311, 0x00, 0x10},
- {2288014, 0x00, 0x10},
- {2347730, 0x00, 0x11},
- {2371937, 0x00, 0x11},
- {2666669, 0x00, 0x11},
- {2684597, 0x00, 0x12},
- {1234567, 0x00, 0x12},
+ {1922240, 0x00, 0x00, 0x00},
+ {2041909, 0x02, 0x02, 0x00},
+ {2042739, 0x00, 0x02, 0x00},
+ {2080326, 0x02, 0x02, 0x00},
+ {2172148, 0x00, 0x10, 0x00},
+ {2218950, 0x00, 0x10, 0x00},
+ {2250311, 0x00, 0x10, 0x00},
+ {2288014, 0x00, 0x10, 0x00},
+ {2347730, 0x00, 0x11, 0x00},
+ {2371937, 0x00, 0x11, 0x00},
+ {2666669, 0x00, 0x11, 0x00},
+ {2684597, 0x00, 0x12, 0x00},
+ {1234567, 0x00, 0x12, 0x00},
{-1}
},
};
@@ -387,14 +387,14 @@
em_cpu_t cortex_X4_errata_list = {
.cpu_pn = 0xD82,
.cpu_errata = {
- {2726228, 0x00, 0x01},
- {2740089, 0x00, 0x01},
- {2763018, 0x00, 0x01},
- {2816013, 0x00, 0x01},
- {2897503, 0x00, 0x01},
- {2923985, 0x00, 0x01},
- {2957258, 0x00, 0x01},
- {3076789, 0x00, 0x01},
+ {2726228, 0x00, 0x01, 0x00},
+ {2740089, 0x00, 0x01, 0x00},
+ {2763018, 0x00, 0x01, 0x00},
+ {2816013, 0x00, 0x01, 0x00},
+ {2897503, 0x00, 0x01, 0x00},
+ {2923985, 0x00, 0x01, 0x00},
+ {2957258, 0x00, 0x01, 0x00},
+ {3076789, 0x00, 0x01, 0x00},
{-1}
},
};
@@ -402,8 +402,8 @@
em_cpu_t cortex_X925_errata_list = {
.cpu_pn = 0xD85,
.cpu_errata = {
- {2963999, 0x00, 0x00},
- {3701747, 0x00, 0x01},
+ {2963999, 0x00, 0x00, 0x00},
+ {3701747, 0x00, 0x01, 0x00},
{-1}
},
};
@@ -411,7 +411,7 @@
em_cpu_t cortex_A715_errata_list = {
.cpu_pn = 0xD4D,
.cpu_errata = {
- {2561034, 0x10, 0x10},
+ {2561034, 0x10, 0x10, 0x00},
{-1}
},
};
@@ -419,15 +419,15 @@
em_cpu_t neoverse_V2_errata_list = {
.cpu_pn = 0xD4F,
.cpu_errata = {
- {2331132, 0x00, 0x02},
- {2618597, 0x00, 0x01},
- {2662553, 0x00, 0x01},
- {2719103, 0x00, 0x01},
- {2719103, 0x00, 0x01},
- {2719105, 0x00, 0x01},
- {2743011, 0x00, 0x01},
- {2779510, 0x00, 0x01},
- {2801372, 0x00, 0x01},
+ {2331132, 0x00, 0x02, 0x00},
+ {2618597, 0x00, 0x01, 0x00},
+ {2662553, 0x00, 0x01, 0x00},
+ {2719103, 0x00, 0x01, 0x00},
+ {2719103, 0x00, 0x01, 0x00},
+ {2719105, 0x00, 0x01, 0x00},
+ {2743011, 0x00, 0x01, 0x00},
+ {2779510, 0x00, 0x01, 0x00},
+ {2801372, 0x00, 0x01, 0x00},
{-1}
},
};
@@ -435,16 +435,16 @@
em_cpu_t cortex_X3_errata_list = {
.cpu_pn = 0xD4E,
.cpu_errata = {
- {2070301, 0x00, 0x12},
- {2266875, 0x00, 0x10},
- {2302506, 0x00, 0x11},
- {2313909, 0x00, 0x10},
- {2615812, 0x00, 0x11},
- {2641945, 0x00, 0x10},
- {2701951, 0x00, 0x11},
- {2742421, 0x00, 0x11},
- {2743088, 0x00, 0x11},
- {2779509, 0x00, 0x11},
+ {2070301, 0x00, 0x12, 0x00},
+ {2266875, 0x00, 0x10, 0x00},
+ {2302506, 0x00, 0x11, 0x00},
+ {2313909, 0x00, 0x10, 0x00},
+ {2615812, 0x00, 0x11, 0x00},
+ {2641945, 0x00, 0x10, 0x00},
+ {2701951, 0x00, 0x11, 0x00},
+ {2742421, 0x00, 0x11, 0x00},
+ {2743088, 0x00, 0x11, 0x00},
+ {2779509, 0x00, 0x11, 0x00},
{-1}
},
};
@@ -452,8 +452,8 @@
em_cpu_t cortex_A520_errata_list = {
.cpu_pn = 0xD80,
.cpu_errata = {
- {2630792, 0x00, 0x01},
- {2858100, 0x00, 0x01},
+ {2630792, 0x00, 0x01, 0x00},
+ {2858100, 0x00, 0x01, 0x00},
{-1}
},
};
@@ -514,6 +514,10 @@
INFO("Partnum extracted = %x and rxpx extracted val = %x\n\n", midr_val, \
rxpx_val_extracted);
+
+ /* Signal to the lead CPU that the calling CPU has entered the test */
+ tftf_send_event(&cpu_has_entered_test[core_pos]);
+
switch (midr_val) {
case 0xD09:
{
@@ -695,9 +699,11 @@
}
case EM_HIGHER_EL_MITIGATION:
{
- return_val = (RXPX_RANGE(rxpx_val_extracted, \
+ return_val = ((RXPX_RANGE(rxpx_val_extracted, \
cpu_ptr->cpu_errata[i].rxpx_low, cpu_ptr->cpu_errata[i].rxpx_high) \
- == true) ? TEST_RESULT_SUCCESS : TEST_RESULT_FAIL;
+ == true) && (!cpu_ptr->cpu_errata[i].split_wa)) ? \
+ TEST_RESULT_SUCCESS : TEST_RESULT_FAIL;
+
break;
}
case EM_UNKNOWN_ERRATUM:
@@ -714,9 +720,11 @@
}
INFO("errata_id = %d and test_em_cpu_erratum_features = %ld\n",\
cpu_ptr->cpu_errata[i].em_errata_id, ret_val.ret0);
+
+ if(return_val == TEST_RESULT_FAIL)
+ return TEST_RESULT_FAIL;
}
- /* Signal to the lead CPU that the calling CPU has entered the test */
- tftf_send_event(&cpu_has_entered_test[core_pos]);
+
return return_val;
}
@@ -728,6 +736,8 @@
int32_t version_return = tftf_em_abi_version();
+ test_result_t return_val = TEST_RESULT_FAIL;
+
SKIP_TEST_IF_LESS_THAN_N_CPUS(1);
if (version_return == EM_NOT_SUPPORTED) {
@@ -738,6 +748,9 @@
return TEST_RESULT_FAIL;
}
+ /* Run test on lead cpu */
+ return_val = test_em_cpu_features();
+
lead_mpid = read_mpidr_el1() & MPID_MASK;
/* Power on all CPUs */
for_each_cpu(cpu_node) {
@@ -757,5 +770,5 @@
core_pos = platform_get_core_pos(cpu_mpid);
tftf_wait_for_event(&cpu_has_entered_test[core_pos]);
}
- return TEST_RESULT_SUCCESS;
+ return return_val;
}