diff --git a/docs/pc_bsa/arm_pc-bsa_testcase_checklist.md b/docs/pc_bsa/arm_pc-bsa_testcase_checklist.md index 4599c02c..228beea5 100644 --- a/docs/pc_bsa/arm_pc-bsa_testcase_checklist.md +++ b/docs/pc_bsa/arm_pc-bsa_testcase_checklist.md @@ -105,6 +105,16 @@ The checklist provides information about: Yes No + + 32 + Check for addr authentication support + 2 + MHCBW + Yes + Yes + Yes + No + 36 Check for nested virtualization diff --git a/test_pool/pe/pe032.c b/test_pool/pe/pe032.c index d30090f3..ca8d9d31 100644 --- a/test_pool/pe/pe032.c +++ b/test_pool/pe/pe032.c @@ -19,7 +19,11 @@ #include "val_interface.h" #define TEST_NUM (ACS_PE_TEST_NUM_BASE + 32) +#ifdef PC_BSA +#define TEST_RULE "MHCBW" +#else #define TEST_RULE "S_L5PE_02" +#endif #define TEST_DESC "Check for addr authentication support " static void payload(void) diff --git a/tools/cmake/infra/pc_bsa_test.txt b/tools/cmake/infra/pc_bsa_test.txt index 7fcbdea6..91b1b139 100644 --- a/tools/cmake/infra/pc_bsa_test.txt +++ b/tools/cmake/infra/pc_bsa_test.txt @@ -24,6 +24,7 @@ pe026.c pe028.c pe029.c pe030.c +pe032.c pe036.c pe040.c pe048.c diff --git a/val/include/rule_based_execution_enum.h b/val/include/rule_based_execution_enum.h index 53d1bfa6..212d63c0 100644 --- a/val/include/rule_based_execution_enum.h +++ b/val/include/rule_based_execution_enum.h @@ -107,6 +107,7 @@ typedef enum { P_L1PE_06, P_L1PE_07, P_L1PE_08, + MHCBW, YKRHG, CNBRV, PBCRQ, diff --git a/val/src/rule_enum_string_map.c b/val/src/rule_enum_string_map.c index 27aa54d8..29d738fd 100644 --- a/val/src/rule_enum_string_map.c +++ b/val/src/rule_enum_string_map.c @@ -483,6 +483,7 @@ char *rule_id_string[RULE_ID_SENTINEL] = { [P_L1PE_06] = "P_L1PE_06", [P_L1PE_07] = "P_L1PE_07", [P_L1PE_08] = "P_L1PE_08", + [MHCBW] = "MHCBW", [YKRHG] = "YKRHG", [CNBRV] = "CNBRV", [PBCRQ] = "PBCRQ", diff --git a/val/src/rule_lookup.c b/val/src/rule_lookup.c index 14187265..cdaf5921 100644 --- a/val/src/rule_lookup.c +++ b/val/src/rule_lookup.c @@ -32,6 +32,7 @@ const pcbsa_rule_entry_t pcbsa_rule_list[] = { { P_L1PE_06, PCBSA_LEVEL_1 }, { P_L1PE_07, PCBSA_LEVEL_1 }, { P_L1PE_08, PCBSA_LEVEL_1 }, + { MHCBW, PCBSA_LEVEL_2}, { YKRHG, PCBSA_LEVEL_2 }, { CNBRV, PCBSA_LEVEL_2 }, { PBCRQ, PCBSA_LEVEL_2 }, diff --git a/val/src/rule_metadata.c b/val/src/rule_metadata.c index 73e76558..569fdebf 100644 --- a/val/src/rule_metadata.c +++ b/val/src/rule_metadata.c @@ -2531,6 +2531,14 @@ rule_test_map_t rule_test_map[RULE_ID_SENTINEL] = { .flag = BASE_RULE, .test_num = ACS_PE_TEST_NUM_BASE + 30, }, + [MHCBW] = { + .test_entry_id = PE032_ENTRY, + .module_id = PE, + .rule_desc = "Check for addr and generic auth", + .platform_bitmask = PLATFORM_BAREMETAL | PLATFORM_UEFI, + .flag = BASE_RULE, + .test_num = ACS_PE_TEST_NUM_BASE + 32, + }, [YKRHG] = { .test_entry_id = PE036_ENTRY, .module_id = PE, @@ -3981,6 +3989,7 @@ test_entry_fn_t test_entry_func_table[TEST_ENTRY_SENTINEL] = { [PE028_ENTRY] = pe028_entry, [PE029_ENTRY] = pe029_entry, [PE030_ENTRY] = pe030_entry, + [PE032_ENTRY] = pe032_entry, [PE036_ENTRY] = pe036_entry, [PE040_ENTRY] = pe040_entry, [PE048_ENTRY] = pe048_entry,