Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions apps/uefi/Bsa.inf
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
../../test_pool/gic/its003.c
../../test_pool/gic/its004.c
../../test_pool/gic/its005.c
../../test_pool/gic/its006.c
../../test_pool/timer/t001.c
../../test_pool/timer/t002.c
../../test_pool/timer/t003.c
Expand Down
1 change: 1 addition & 0 deletions apps/uefi/Mem.inf
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
../../test_pool/gic/its003.c
../../test_pool/gic/its004.c
../../test_pool/gic/its005.c
../../test_pool/gic/its006.c
../../test_pool/timer/t001.c
../../test_pool/timer/t002.c
../../test_pool/timer/t003.c
Expand Down
1 change: 1 addition & 0 deletions apps/uefi/Sbsa.inf
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@
../../test_pool/gic/its003.c
../../test_pool/gic/its004.c
../../test_pool/gic/its005.c
../../test_pool/gic/its006.c
../../test_pool/timer/t001.c
../../test_pool/timer/t002.c
../../test_pool/timer/t003.c
Expand Down
1 change: 1 addition & 0 deletions apps/uefi/Vbsa.inf
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
../../test_pool/gic/its003.c
../../test_pool/gic/its004.c
../../test_pool/gic/its005.c
../../test_pool/gic/its006.c
../../test_pool/timer/t001.c
../../test_pool/timer/t002.c
../../test_pool/timer/t003.c
Expand Down
1 change: 1 addition & 0 deletions apps/uefi/pc_bsa.inf
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@
../../test_pool/gic/its003.c
../../test_pool/gic/its004.c
../../test_pool/gic/its005.c
../../test_pool/gic/its006.c
../../test_pool/timer/t001.c
../../test_pool/timer/t002.c
../../test_pool/timer/t003.c
Expand Down
1 change: 1 addition & 0 deletions apps/uefi/xbsa_acpi.inf
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
../../test_pool/gic/its003.c
../../test_pool/gic/its004.c
../../test_pool/gic/its005.c
../../test_pool/gic/its006.c
../../test_pool/timer/t001.c
../../test_pool/timer/t002.c
../../test_pool/timer/t003.c
Expand Down
68 changes: 35 additions & 33 deletions docs/bsa/arm_bsa_testcase_checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -1686,12 +1686,12 @@ The checklist provides information about:
</tr>
<tr>
<td>ITS_08</td>
<td>Not Covered</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>1548</td>
<td>ITS blocks in group observe same DeviceID</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td>Exerciser VIP required</td>
</tr>
<tr>
<td>ITS_DEV_1</td>
Expand Down Expand Up @@ -1731,11 +1731,11 @@ The checklist provides information about:
</tr>
<tr>
<td>ITS_DEV_5</td>
<td>Not Covered</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>256</td>
<td>MSI-capable devices have DeviceID</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td></td>
</tr>
<tr>
Expand Down Expand Up @@ -2204,12 +2204,12 @@ The checklist provides information about:
</tr>
<tr>
<td>ITS_08</td>
<td>Not Covered</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>1548</td>
<td>ITS blocks in group observe same DeviceID</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td>Exerciser VIP required</td>
</tr>
<tr>
<td>ITS_DEV_1</td>
Expand Down Expand Up @@ -2249,11 +2249,11 @@ The checklist provides information about:
</tr>
<tr>
<td>ITS_DEV_5</td>
<td>Not Covered</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>256</td>
<td>MSI-capable devices have DeviceID</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td></td>
</tr>
<tr>
Expand Down Expand Up @@ -2980,12 +2980,12 @@ The checklist provides information about:
</tr>
<tr>
<td>ITS_08</td>
<td>Not Covered</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>1548</td>
<td>ITS blocks in group observe same DeviceID</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td>Exerciser VIP required</td>
</tr>
<tr>
<td>ITS_DEV_1</td>
Expand Down Expand Up @@ -3025,11 +3025,11 @@ The checklist provides information about:
</tr>
<tr>
<td>ITS_DEV_5</td>
<td>Not Covered</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>256</td>
<td>MSI-capable devices have DeviceID</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td></td>
</tr>
<tr>
Expand Down Expand Up @@ -3765,6 +3765,8 @@ The checklist provides information about:
- Updated PCI_MM_02 coverage with test 906.
- Added direct B_PER_07 UART Non-secure register access coverage (test 605).
- Updated B_PER_08 to include ITS Rules.
- Updated ITS_08, ITS_DEV_5

- **RI_ Added:** RI_PWR_1
- Updated B_WD_02.
- Updated checklist to be consistent with I-VGLFZ.
Expand Down
45 changes: 23 additions & 22 deletions docs/sbsa/arm_sbsa_testcase_checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -871,12 +871,12 @@ The checklist provides information about:
</tr>
<tr>
<td>ITS_08</td>
<td>Not Covered</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>1548</td>
<td>ITS blocks in group observe same DeviceID</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td>Exerciser VIP required</td>
</tr>
<tr>
<td>ITS_DEV_1</td>
Expand Down Expand Up @@ -916,11 +916,11 @@ The checklist provides information about:
</tr>
<tr>
<td>ITS_DEV_5</td>
<td>Not Covered</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>256</td>
<td>MSI-capable devices have DeviceID</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td></td>
</tr>
<tr>
Expand Down Expand Up @@ -1647,12 +1647,12 @@ The checklist provides information about:
</tr>
<tr>
<td>ITS_08</td>
<td>Not Covered</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>1548</td>
<td>ITS blocks in group observe same DeviceID</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td>Exerciser VIP required</td>
</tr>
<tr>
<td>ITS_DEV_1</td>
Expand Down Expand Up @@ -1692,11 +1692,11 @@ The checklist provides information about:
</tr>
<tr>
<td>ITS_DEV_5</td>
<td>Not Covered</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>256</td>
<td>MSI-capable devices have DeviceID</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
<td></td>
</tr>
<tr>
Expand Down Expand Up @@ -3678,6 +3678,7 @@ The checklist provides information about:
- Updated PCI_MM_02 coverage with test 907.
- Updated S_L5SM_04, S_L6PE_08, S_L6SM_04
- Added rule S_L5PE_03
- Updated ITS_08, ITS_DEV_5

### v26.03_SBSA_8.0.1
- **FR Added:** LVQBC, KBRZG
Expand Down
61 changes: 59 additions & 2 deletions test_pool/exerciser/e035.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,15 @@
#define TEST_RULE "ITS_04"
#define TEST_DESC "MSI-cap device can target any ITS blk "

#define TEST_NUM_2 (ACS_EXERCISER_TEST_NUM_BASE + 48)
#define TEST_RULE_2 "ITS_08"
#define TEST_DESC_2 "ITS blocks in group observe same DeviceID"

static uint32_t irq_pending;
static uint32_t base_lpi_id = 0x204C;
static uint32_t instance;
static uint32_t its_04_result = RESULT_SKIP(0);
static uint32_t its_04_result_valid;

static
void
Expand Down Expand Up @@ -191,23 +197,74 @@ payload (void)
uint32_t
e035_entry(uint32_t num_pe)
{
uint32_t index;
uint32_t status = ACS_STATUS_FAIL;

/* Run test on single PE */
num_pe = 1;
index = val_pe_get_index_mpid(val_pe_get_mpid());
its_04_result_valid = 0;

val_log_context((char8_t *)__FILE__, (char8_t *)__func__, __LINE__);
status = val_initialize_test(TEST_NUM, TEST_DESC, num_pe);
if (status != ACS_STATUS_SKIP) {
if (val_exerciser_test_init() != ACS_STATUS_PASS)
return val_exerciser_get_init_result(TEST_RULE);
if (val_exerciser_test_init() != ACS_STATUS_PASS) {
status = val_exerciser_get_init_result(TEST_RULE);
its_04_result = status;
its_04_result_valid = 1;
return status;
}
val_run_test_payload(TEST_NUM, num_pe, payload, 0);
}

its_04_result = val_get_status(index);
its_04_result_valid = 1;

/* get the result from all PE and check for failure */
status = val_check_for_error(TEST_NUM, num_pe, TEST_RULE);

val_report_status(0, ACS_END(TEST_NUM), NULL);

return status;
}

/* Entry for ITS_08 rule.
1. ITS_04 verifies that an MSI-capable device can target every ITS block in its ITS group.
2. The test programs each ITS block with the same DeviceID for the given device and then
triggers an MSI.
3. If any ITS block in the group does not observe that same DeviceID, the MSI mapping or
delivery through that ITS block is expected to fail.
4. Therefore, the ITS_04 runtime result also provides coverage for ITS_08.
*/
uint32_t
e048_entry(uint32_t num_pe)
{
uint32_t index;
uint32_t status = ACS_STATUS_FAIL;

/* Run test on single PE */
num_pe = 1;
index = val_pe_get_index_mpid(val_pe_get_mpid());

val_log_context((char8_t *)__FILE__, (char8_t *)__func__, __LINE__);
status = val_initialize_test(TEST_NUM_2, TEST_DESC_2, num_pe);
if (status != ACS_STATUS_SKIP) {
/* ITS_08 uses the test result already collected by e035/ITS_04.
If a valid result is not available, then run the payload for ITS_08 */
if (its_04_result_valid)
val_set_status(index, its_04_result);
else {
if (val_exerciser_test_init() != ACS_STATUS_PASS)
val_set_status(index, val_exerciser_get_init_result(TEST_RULE_2));
else
val_run_test_payload(TEST_NUM_2, num_pe, payload, 0);
}
}

/* get the result from all PE and check for failure */
status = val_check_for_error(TEST_NUM_2, num_pe, TEST_RULE_2);

val_report_status(0, ACS_END(TEST_NUM_2), NULL);

return status;
}
Loading
Loading