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.