Skip to content

Commit 56b77ce

Browse files
shanmugapriyal03chetan-rathore
authored andcommitted
feat(pcie): Consolidate power mgmt test under RI_PWR_1
- Merge RCiEP and iEP/RP power management checks into single test RI_PWR_1 - Remove deprecated P034 entry and associated IE_PWR_1 and RE_PWR_1 rule mappings - Update rule metadata and string maps to use RI_PWR_1 - Add S_PCIe_10 alias rule grouping B_PCIe_10 and B_PCIe_11 - Update SBSA checklist to reflect RI_PWR_1 coverage and new PCIe rule mappings Signed-off-by: Shanmuga Priya L <shanmuga.priyal@arm.com> Change-Id: I95b0f29a2564c6d336ff4f9c6aaa4be59d763757
1 parent ee4bc3f commit 56b77ce

File tree

8 files changed

+70
-94
lines changed

8 files changed

+70
-94
lines changed

docs/bsa/arm_bsa_testcase_checklist.md

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2150,12 +2150,12 @@ The checklist provides information about:
21502150
</tr>
21512151
<tr>
21522152
<td>RI_PWR_1</td>
2153-
<td>Not Covered</td>
2154-
<td></td>
2155-
<td></td>
2156-
<td></td>
2157-
<td></td>
2158-
<td></td>
2153+
<td>870</td>
2154+
<td>Check Power Mgmt rules: RCiEP/iEP/RP</td>
2155+
<td>Yes</td>
2156+
<td>Yes</td>
2157+
<td>No</td>
2158+
<td>RCiEP, iEP RP, iEP EP</td>
21592159
</tr>
21602160
<tr>
21612161
<td>PCI_IN_01</td>
@@ -3043,12 +3043,12 @@ The checklist provides information about:
30433043
</tr>
30443044
<tr>
30453045
<td>RI_PWR_1</td>
3046-
<td>Not Covered</td>
3047-
<td></td>
3048-
<td></td>
3049-
<td></td>
3050-
<td></td>
3051-
<td></td>
3046+
<td>870</td>
3047+
<td>Check Power Mgmt rules: RCiEP/iEP/RP</td>
3048+
<td>Yes</td>
3049+
<td>Yes</td>
3050+
<td>No</td>
3051+
<td>RCiEP, iEP RP, iEP EP</td>
30523052
</tr>
30533053
<tr>
30543054
<td>PCI_IN_01</td>
@@ -3735,6 +3735,9 @@ The checklist provides information about:
37353735
</table>
37363736

37373737
## Latest Checklist Changes
3738+
- **RI_ Added:** RI_PWR_1
3739+
3740+
### v25.12_BSA_1.2.0
37383741
- Updated Rule Checklist as per BSA 1.2 Specification
37393742
- **B_ Added:** B_SEC_01–05, B_IEP_1, B_REP_1
37403743
- **B_ Removed:** B_MEM_04, B_PE_15, B_WAK_09

docs/sbsa/arm_sbsa_testcase_checklist.md

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -888,12 +888,12 @@ The checklist provides information about:
888888
</tr>
889889
<tr>
890890
<td>RI_PWR_1</td>
891-
<td>Not Covered</td>
892-
<td></td>
893-
<td></td>
894-
<td></td>
895-
<td></td>
896-
<td></td>
891+
<td>870</td>
892+
<td>Check Power Mgmt rules: RCiEP/iEP/RP</td>
893+
<td>Yes</td>
894+
<td>Yes</td>
895+
<td>No</td>
896+
<td>RCiEP, iEP RP, iEP EP</td>
897897
</tr>
898898
<tr>
899899
<td>PCI_IN_01</td>
@@ -1780,13 +1780,13 @@ The checklist provides information about:
17801780
<td>RCiEP, iEP EP</td>
17811781
</tr>
17821782
<tr>
1783-
<td>RI_PWR_1</td>
1784-
<td>Not Covered</td>
1785-
<td></td>
1786-
<td></td>
1787-
<td></td>
1788-
<td></td>
1789-
<td></td>
1783+
<<td>RI_PWR_1</td>
1784+
<td>870</td>
1785+
<td>Check Power Mgmt rules: RCiEP/iEP/RP</td>
1786+
<td>Yes</td>
1787+
<td>Yes</td>
1788+
<td>No</td>
1789+
<td>RCiEP, iEP RP, iEP EP</td>
17901790
</tr>
17911791
<tr>
17921792
<td>PCI_IN_01</td>
@@ -3370,16 +3370,25 @@ The checklist provides information about:
33703370
<td>Exerciser VIP required</td>
33713371
</tr>
33723372
<tr>
3373-
<td>Version 8.0</td>
3374-
<td>S_PCIe_10</td>
3375-
<td>S_PCIe_10</td>
3373+
<td rowspan="2">Version 8.0</td>
3374+
<td rowspan="2">S_PCIe_10</td>
3375+
<td>B_PCIe_10</td>
33763376
<td>1530</td>
33773377
<td>Enable and disable STE.DCP bit</td>
33783378
<td>Yes</td>
33793379
<td>Yes</td>
33803380
<td>No</td>
33813381
<td>Exerciser VIP required</td>
33823382
</tr>
3383+
<tr>
3384+
<td>B_PCIe_11</td>
3385+
<td>891</td>
3386+
<td>Steering Tag value properties</td>
3387+
<td>No</td>
3388+
<td>Yes</td>
3389+
<td>Yes</td>
3390+
<td></td>
3391+
</tr>
33833392
<tr>
33843393
<td rowspan="5">Version 8.0</td>
33853394
<td rowspan="5">XDGKZ</td>
@@ -3620,6 +3629,8 @@ The checklist provides information about:
36203629

36213630
## Latest Checklist Changes
36223631
- **FR Added:** LVQBC, KBRZG
3632+
- **RI_ Added:** RI_PWR_1
3633+
- B_PCIe_10 and B_PCIe_11 mapped to S_PCIe_10
36233634

36243635
### v25.12_SBSA_8.0.0
36253636
- Updated checklist as per SBSA 8.0 specification.

test_pool/pcie/p070.c

Lines changed: 13 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/** @file
2-
* Copyright (c) 2020-2025, Arm Limited or its affiliates. All rights reserved.
2+
* Copyright (c) 2020-2026, Arm Limited or its affiliates. All rights reserved.
33
* SPDX-License-Identifier : Apache-2.0
44
55
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,22 +21,13 @@
2121
#include "val/include/acs_pe.h"
2222
#include "val/include/acs_memory.h"
2323

24-
static const
25-
test_config_t test_entries[] = {
26-
{ ACS_PCIE_TEST_NUM_BASE + 70, "Check Power Management rules: RCiEP ", "RE_PWR_1"},
27-
{ ACS_PCIE_TEST_NUM_BASE + 34, "Check Power Management rules: iEP/RP ", "IE_PWR_1"}
28-
};
29-
30-
/* Declare and define struct - passed as argument to payload */
31-
typedef struct {
32-
uint32_t test_num;
33-
uint32_t dev_type1;
34-
uint32_t dev_type2;
35-
} test_data_t;
24+
#define TEST_NUM (ACS_PCIE_TEST_NUM_BASE + 70)
25+
#define TEST_RULE "RI_PWR_1"
26+
#define TEST_DESC "Check Power Mgmt rules: RCiEP/iEP/RP "
3627

3728
static
3829
void
39-
payload(void *arg)
30+
payload(void)
4031
{
4132

4233
uint32_t bdf;
@@ -47,7 +38,6 @@ payload(void *arg)
4738
uint32_t test_fails;
4839
bool test_skip = 1;
4940
pcie_device_bdf_table *bdf_tbl_ptr;
50-
test_data_t *test_data = (test_data_t *)arg;
5141

5242
pe_index = val_pe_get_index_mpid(val_pe_get_mpid());
5343
bdf_tbl_ptr = val_pcie_bdf_table_ptr();
@@ -61,7 +51,7 @@ payload(void *arg)
6151
dp_type = val_pcie_device_port_type(bdf);
6252

6353
/* Check entry is onchip peripherals */
64-
if ((dp_type == test_data->dev_type1) || (dp_type == test_data->dev_type2))
54+
if (dp_type == RCiEP || dp_type == iEP_EP || dp_type == iEP_RP)
6555
{
6656
val_print(ACS_PRINT_DEBUG, "\n BDF - 0x%x", bdf);
6757

@@ -80,52 +70,29 @@ payload(void *arg)
8070
if (test_skip == 1) {
8171
val_print(ACS_PRINT_DEBUG,
8272
"\n No target device type found. Skipping test", bdf);
83-
val_set_status(pe_index, RESULT_SKIP(test_data->test_num, 01));
73+
val_set_status(pe_index, RESULT_SKIP(TEST_NUM, 01));
8474
}
8575
else if (test_fails)
86-
val_set_status(pe_index, RESULT_FAIL(test_data->test_num, test_fails));
76+
val_set_status(pe_index, RESULT_FAIL(TEST_NUM, test_fails));
8777
else
88-
val_set_status(pe_index, RESULT_PASS(test_data->test_num, 01));
78+
val_set_status(pe_index, RESULT_PASS(TEST_NUM, 01));
8979
}
9080

9181
uint32_t
9282
p070_entry(uint32_t num_pe)
9383
{
9484
uint32_t status = ACS_STATUS_FAIL;
95-
test_data_t data = {.test_num = test_entries[0].test_num, .dev_type1 = (uint32_t)RCiEP};
96-
97-
num_pe = 1; //This test is run on single processor
98-
99-
val_log_context((char8_t *)__FILE__, (char8_t *)__func__, __LINE__);
100-
status = val_initialize_test(test_entries[0].test_num, test_entries[0].desc, num_pe);
101-
if (status != ACS_STATUS_SKIP)
102-
val_run_test_configurable_payload(&data, payload);
103-
104-
/* get the result from all PE and check for failure */
105-
status = val_check_for_error(test_entries[0].test_num, num_pe, test_entries[0].rule);
106-
107-
val_report_status(0, ACS_END(test_entries[0].test_num), test_entries[0].rule);
108-
return status;
109-
}
110-
111-
uint32_t
112-
p034_entry(uint32_t num_pe)
113-
{
114-
uint32_t status = ACS_STATUS_FAIL;
115-
test_data_t data = {.test_num = test_entries[1].test_num,
116-
.dev_type1 = (uint32_t)iEP_EP,
117-
.dev_type2 = (uint32_t)iEP_RP};
11885

11986
num_pe = 1; //This test is run on single processor
12087

12188
val_log_context((char8_t *)__FILE__, (char8_t *)__func__, __LINE__);
122-
status = val_initialize_test(test_entries[1].test_num, test_entries[1].desc, num_pe);
89+
status = val_initialize_test(TEST_NUM, TEST_DESC, num_pe);
12390
if (status != ACS_STATUS_SKIP)
124-
val_run_test_configurable_payload(&data, payload);
91+
val_run_test_payload(TEST_NUM, num_pe, payload, 0);
12592

12693
/* get the result from all PE and check for failure */
127-
status = val_check_for_error(test_entries[1].test_num, num_pe, test_entries[1].rule);
94+
status = val_check_for_error(TEST_NUM, num_pe, TEST_RULE);
12895

129-
val_report_status(0, ACS_END(test_entries[1].test_num), test_entries[1].rule);
96+
val_report_status(0, ACS_END(TEST_NUM), NULL);
13097
return status;
13198
}

val/include/acs_pcie.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/** @file
2-
* Copyright (c) 2016-2025, Arm Limited or its affiliates. All rights reserved.
2+
* Copyright (c) 2016-2026, Arm Limited or its affiliates. All rights reserved.
33
* SPDX-License-Identifier : Apache-2.0
44
55
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -235,7 +235,6 @@ uint32_t p030_entry(uint32_t num_pe);
235235
uint32_t p031_entry(uint32_t num_pe);
236236
uint32_t p032_entry(uint32_t num_pe);
237237
uint32_t p033_entry(uint32_t num_pe);
238-
uint32_t p034_entry(uint32_t num_pe);
239238
uint32_t p035_entry(uint32_t num_pe);
240239
uint32_t p036_entry(uint32_t num_pe);
241240
uint32_t p037_entry(uint32_t num_pe);

val/include/rule_based_execution_enum.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,6 @@ typedef enum {
353353
IE_BAR_1,
354354
IE_BAR_3,
355355
IE_ORD_4,
356-
IE_PWR_1,
357356
IE_PWR_2,
358357
IE_PWR_3,
359358
IE_REG_1,
@@ -455,7 +454,6 @@ typedef enum {
455454
RE_ORD_4,
456455
RE_PCI_1,
457456
RE_PCI_2,
458-
RE_PWR_1,
459457
RE_PWR_2,
460458
RE_PWR_3,
461459
RE_REC_1,

val/src/rule_enum_string_map.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,6 @@ char *rule_id_string[RULE_ID_SENTINEL] = {
302302
[IE_ACS_1] = "IE_ACS_1",
303303
[IE_ACS_2] = "IE_ACS_2",
304304
[IE_ORD_4] = "IE_ORD_4",
305-
[IE_PWR_1] = "IE_PWR_1",
306305
[IE_PWR_2] = "IE_PWR_2",
307306
[IE_PWR_3] = "IE_PWR_3",
308307
[IE_REG_1] = "IE_REG_1",
@@ -408,7 +407,6 @@ char *rule_id_string[RULE_ID_SENTINEL] = {
408407
[RE_ORD_4] = "RE_ORD_4",
409408
[RE_PCI_1] = "RE_PCI_1",
410409
[RE_PCI_2] = "RE_PCI_2",
411-
[RE_PWR_1] = "RE_PWR_1",
412410
[RE_PWR_2] = "RE_PWR_2",
413411
[RE_PWR_3] = "RE_PWR_3",
414412
[RE_REC_1] = "RE_REC_1",

val/src/rule_metadata.c

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1530,14 +1530,6 @@ rule_test_map_t rule_test_map[RULE_ID_SENTINEL] = {
15301530
.flag = BASE_RULE,
15311531
.test_num = ACS_EXERCISER_TEST_NUM_BASE + 38,
15321532
},
1533-
[IE_PWR_1] = {
1534-
.test_entry_id = P034_ENTRY,
1535-
.module_id = PCIE,
1536-
.rule_desc = "Check Power Management rules: iEP/RP",
1537-
.platform_bitmask = PLATFORM_BAREMETAL | PLATFORM_UEFI,
1538-
.flag = BASE_RULE,
1539-
.test_num = ACS_PCIE_TEST_NUM_BASE + 34,
1540-
},
15411533
[IE_REG_1] = {
15421534
.test_entry_id = IE_REG_1_ENTRY,
15431535
.module_id = PCIE,
@@ -2040,10 +2032,10 @@ rule_test_map_t rule_test_map[RULE_ID_SENTINEL] = {
20402032
.flag = BASE_RULE,
20412033
.test_num = ACS_PCIE_TEST_NUM_BASE + 84,
20422034
},
2043-
[RE_PWR_1] = {
2035+
[RI_PWR_1] = {
20442036
.test_entry_id = P070_ENTRY,
20452037
.module_id = PCIE,
2046-
.rule_desc = "Check Power Management rules: RCiEP",
2038+
.rule_desc = "Check Power Mgmt rules: RCiEP/iEP/RP",
20472039
.platform_bitmask = PLATFORM_BAREMETAL | PLATFORM_UEFI,
20482040
.flag = BASE_RULE,
20492041
.test_num = ACS_PCIE_TEST_NUM_BASE + 70,
@@ -2173,6 +2165,13 @@ rule_test_map_t rule_test_map[RULE_ID_SENTINEL] = {
21732165
.flag = BASE_RULE,
21742166
.test_num = ACS_PCIE_TEST_NUM_BASE + 100,
21752167
},
2168+
[S_PCIe_10] = {
2169+
.test_entry_id = NULL_ENTRY,
2170+
.module_id = PCIE,
2171+
.rule_desc = "STE.DCP control & Steering Tag properties",
2172+
.platform_bitmask = PLATFORM_BAREMETAL | PLATFORM_UEFI | PLATFORM_LINUX,
2173+
.flag = ALIAS_RULE,
2174+
},
21762175
/* MPAM */
21772176
[S_L7MP_01] = {
21782177
.test_entry_id = MPAM001_ENTRY,
@@ -3059,7 +3058,6 @@ test_entry_fn_t test_entry_func_table[TEST_ENTRY_SENTINEL] = {
30593058
[P031_ENTRY] = p031_entry, // used in wrapper.
30603059
[P032_ENTRY] = p032_entry, // used in wrapper.
30613060
[P033_ENTRY] = p033_entry, // used in wrapper.
3062-
[P034_ENTRY] = p034_entry,
30633061
[P035_ENTRY] = p035_entry,
30643062
[P036_ENTRY] = p036_entry, // used in wrapper.
30653063
[P037_ENTRY] = p037_entry,
@@ -3570,7 +3568,6 @@ test_entry_fn_t test_entry_func_table[TEST_ENTRY_SENTINEL] = {
35703568
[P015_ENTRY] = p015_entry,
35713569
[P016_ENTRY] = p016_entry,
35723570
[P027_ENTRY] = p027_entry, // used in wrapper.
3573-
[P034_ENTRY] = p034_entry,
35743571
[P047_ENTRY] = p047_entry,
35753572
[P048_ENTRY] = p048_entry, // used in wrapper.
35763573
[P049_ENTRY] = p049_entry, // used in wrapper.
@@ -4122,6 +4119,9 @@ RULE_ID_e sys_ras_rule_list[] = {
41224119
RULE_ID_SENTINEL
41234120
};
41244121

4122+
/* S_PCIe_10 */
4123+
RULE_ID_e s_pcie_10_rule_list[] = {B_PCIe_10, B_PCIe_11, RULE_ID_SENTINEL};
4124+
41254125
/* PCBSA alias lists */
41264126
/* P_L2WD_01 */
41274127
RULE_ID_e p_l2wd_01_rule_list[] = {B_WD_01, B_WD_02, B_WD_03, B_WD_04, B_WD_05,
@@ -4207,6 +4207,7 @@ alias_rule_map_t alias_rule_map[] = {
42074207
{S_L3WD_01, s_l3wd_01_rule_list},
42084208
{S_L6PCI_1, s_l6pci_1_rule_list},
42094209
{S_L6PE_01, s_l6pe_01_rule_list},
4210+
{S_PCIe_10, s_pcie_10_rule_list},
42104211
{SYS_RAS, sys_ras_rule_list},
42114212
{LVQBC, lvqbc_rule_list},
42124213

val/src/sbsa_execute_test.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/** @file
2-
* Copyright (c) 2024-2025, Arm Limited or its affiliates. All rights reserved.
2+
* Copyright (c) 2024-2026, Arm Limited or its affiliates. All rights reserved.
33
* SPDX-License-Identifier : Apache-2.0
44
55
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -390,7 +390,6 @@ val_sbsa_pcie_execute_tests(uint32_t level, uint32_t num_pe)
390390
status |= p015_entry(num_pe);
391391
status |= p016_entry(num_pe); /* Depends on p015; run it prior to this test */
392392
status |= p027_entry(num_pe);
393-
status |= p034_entry(num_pe);
394393
status |= p037_entry(num_pe);
395394
status |= p038_entry(num_pe);
396395
status |= p047_entry(num_pe);

0 commit comments

Comments
 (0)