diff --git a/docs/bsa/arm_bsa_testcase_checklist.md b/docs/bsa/arm_bsa_testcase_checklist.md index fbe71f90..2ddaa196 100644 --- a/docs/bsa/arm_bsa_testcase_checklist.md +++ b/docs/bsa/arm_bsa_testcase_checklist.md @@ -1252,11 +1252,11 @@ The checklist provides information about: PCI_IN_07 - Not Covered - - - - + 828 + Check all 1's for out of range + Yes + Yes + No @@ -2373,11 +2373,11 @@ The checklist provides information about: PCI_IN_07 - Not Covered - - - - + 828 + Check all 1's for out of range + Yes + Yes + No @@ -3132,11 +3132,11 @@ The checklist provides information about: PCI_IN_07 - Not Covered - - - - + 828 + Check all 1's for out of range + Yes + Yes + No diff --git a/docs/sbsa/arm_sbsa_testcase_checklist.md b/docs/sbsa/arm_sbsa_testcase_checklist.md index def77164..bcfb2343 100644 --- a/docs/sbsa/arm_sbsa_testcase_checklist.md +++ b/docs/sbsa/arm_sbsa_testcase_checklist.md @@ -945,11 +945,11 @@ The checklist provides information about: PCI_IN_07 - Not Covered - - - - + 828 + Check all 1's for out of range + Yes + Yes + No @@ -1704,11 +1704,11 @@ The checklist provides information about: PCI_IN_07 - Not Covered - - - - + 828 + Check all 1's for out of range + Yes + Yes + No diff --git a/docs/vbsa/arm_vbsa_testcase_checklist.md b/docs/vbsa/arm_vbsa_testcase_checklist.md index 56b9dbbc..e5a16d02 100644 --- a/docs/vbsa/arm_vbsa_testcase_checklist.md +++ b/docs/vbsa/arm_vbsa_testcase_checklist.md @@ -722,10 +722,10 @@ The checklist provides information about: PCI_IN_07 - Not covered - - - + 828 + Check all 1's for out of range + ✅ + ❌ diff --git a/test_pool/pcie/p008.c b/test_pool/pcie/p008.c index 71f3f804..27397e76 100644 --- a/test_pool/pcie/p008.c +++ b/test_pool/pcie/p008.c @@ -24,6 +24,10 @@ #define TEST_RULE "PCI_IN_16" #define TEST_DESC "Check all 1's for out of range " +#define TEST_NUM1 (ACS_PCIE_TEST_NUM_BASE + 28) +#define TEST_RULE1 "PCI_IN_07" +#define TEST_DESC1 "Check all 1's for out of range " + static void *branch_to_test; static @@ -144,3 +148,24 @@ p008_entry(uint32_t num_pe) return status; } + +uint32_t +p028_entry(uint32_t num_pe) +{ + + uint32_t status = ACS_STATUS_FAIL; + + num_pe = 1; //This test is run on single processor + + val_log_context((char8_t *)__FILE__, (char8_t *)__func__, __LINE__); + status = val_initialize_test(TEST_NUM1, TEST_DESC1, num_pe); + if (status != ACS_STATUS_SKIP) + val_run_test_payload(TEST_NUM1, num_pe, payload, 0); + + /* get the result from single PE and check for failure */ + status = val_check_for_error(TEST_NUM1, num_pe, TEST_RULE1); + + val_report_status(0, ACS_END(TEST_NUM1), NULL); + + return status; +} diff --git a/val/include/acs_pcie.h b/val/include/acs_pcie.h index 533aba6e..56a5d6cb 100644 --- a/val/include/acs_pcie.h +++ b/val/include/acs_pcie.h @@ -236,6 +236,7 @@ uint32_t p024_entry(uint32_t num_pe); uint32_t p025_entry(uint32_t num_pe); uint32_t p026_entry(uint32_t num_pe); uint32_t p027_entry(uint32_t num_pe); +uint32_t p028_entry(uint32_t num_pe); uint32_t p030_entry(uint32_t num_pe); uint32_t p031_entry(uint32_t num_pe); uint32_t p032_entry(uint32_t num_pe); diff --git a/val/include/rule_based_execution_enum.h b/val/include/rule_based_execution_enum.h index b81dae91..abbfc6de 100644 --- a/val/include/rule_based_execution_enum.h +++ b/val/include/rule_based_execution_enum.h @@ -827,6 +827,7 @@ typedef enum { P018_ENTRY, P023_ENTRY, P027_ENTRY, + P028_ENTRY, P030_ENTRY, P031_ENTRY, P032_ENTRY, diff --git a/val/src/rule_metadata.c b/val/src/rule_metadata.c index 3122d24b..a635083d 100644 --- a/val/src/rule_metadata.c +++ b/val/src/rule_metadata.c @@ -1874,6 +1874,14 @@ rule_test_map_t rule_test_map[RULE_ID_SENTINEL] = { .flag = BASE_RULE, .test_num = ACS_PCIE_TEST_NUM_BASE + 101, }, + [PCI_IN_07] = { + .test_entry_id = P028_ENTRY, + .module_id = PCIE, + .rule_desc = "Check all 1's for out of range", + .platform_bitmask = PLATFORM_BAREMETAL | PLATFORM_UEFI, + .flag = BASE_RULE, + .test_num = ACS_PCIE_TEST_NUM_BASE + 28, + }, [PCI_IN_11] = { .test_entry_id = E010_ENTRY, .module_id = PCIE, @@ -3283,9 +3291,6 @@ rule_test_map_t rule_test_map[RULE_ID_SENTINEL] = { [PCI_IC_18] = { .module_id = PCIE, }, - [PCI_IN_07] = { - .module_id = PCIE, - }, [PCI_IN_08] = { .module_id = PCIE, }, @@ -3649,6 +3654,7 @@ test_entry_fn_t test_entry_func_table[TEST_ENTRY_SENTINEL] = { [P006_ENTRY] = p006_entry, // used in wrapper. [P007_ENTRY] = p007_entry, [P008_ENTRY] = p008_entry, + [P028_ENTRY] = p028_entry, [P009_ENTRY] = p009_entry, [P010_ENTRY] = p010_entry, [P011_ENTRY] = p011_entry, @@ -3996,6 +4002,7 @@ test_entry_fn_t test_entry_func_table[TEST_ENTRY_SENTINEL] = { [P005_ENTRY] = p005_entry, // used in wrapper. [P006_ENTRY] = p006_entry, // used in wrapper. [P008_ENTRY] = p008_entry, + [P028_ENTRY] = p028_entry, [P009_ENTRY] = p009_entry, [P011_ENTRY] = p011_entry, [P017_ENTRY] = p017_entry, @@ -4418,6 +4425,7 @@ test_entry_fn_t test_entry_func_table[TEST_ENTRY_SENTINEL] = { [P035_ENTRY] = p035_entry, [P024_ENTRY] = p024_entry, // used in wrapper. [P008_ENTRY] = p008_entry, + [P028_ENTRY] = p028_entry, [P006_ENTRY] = p006_entry, // used in wrapper. [P001_ENTRY] = p001_entry, [P003_ENTRY] = p003_entry, // used in wrapper.