v0.9 PSA APIs test suite update
This release includes the following major enhancements:
1. Enhanced Crypto and IPC suites for new tests
2. Added TFM-MUSCA_B support
3. Bug fixes, feature enhancement and documentation update
diff --git a/api-tests/val/common/val.h b/api-tests/val/common/val.h
index b3dbcd5..2af2858 100644
--- a/api-tests/val/common/val.h
+++ b/api-tests/val/common/val.h
@@ -178,12 +178,18 @@
} test_isolation_level_t;
typedef enum {
- BOOT_UNKNOWN = 0x1,
- BOOT_NOT_EXPECTED = 0x2,
- BOOT_EXPECTED_NS = 0x3,
- BOOT_EXPECTED_S = 0x4,
- BOOT_EXPECTED_BUT_FAILED = 0x5,
- BOOT_EXPECTED_CRYPTO = 0x6,
+ /* VAL uses this boot flag to mark first time boot of the system */
+ BOOT_UNKNOWN = 0x1,
+ /* VAL/Test uses this boot flag to catch any unwanted system reboot - SIM ERROR Cases*/
+ BOOT_NOT_EXPECTED = 0x2,
+ /* Test performs panic check for non-secure test run and expect reboot */
+ BOOT_EXPECTED_NS = 0x3,
+ /* Test performs panic check for secure test run and expect reboot */
+ BOOT_EXPECTED_S = 0x4,
+ /* Test expected reboot but it didn't happen */
+ BOOT_EXPECTED_BUT_FAILED = 0x5,
+ /* Test expect reboot for secure/non-secure test run. If reboot happens, re-enter same test */
+ BOOT_EXPECTED_REENTER_TEST = 0x6,
} boot_state_t;
typedef enum {
@@ -224,6 +230,7 @@
VAL_STATUS_INIT_ALREADY_DONE = 0x29,
VAL_STATUS_HEAP_NOT_AVAILABLE = 0x2A,
VAL_STATUS_UNSUPPORTED = 0x2B,
+ VAL_STATUS_DRIVER_FN_FAILED = 0x2C,
VAL_STATUS_ERROR_MAX = INT_MAX,
} val_status_t;
@@ -237,13 +244,21 @@
PRINT_ALWAYS = 9
} print_verbosity_t;
-/* Interrupt test function id enums */
+/* Driver test function id enums */
typedef enum {
TEST_PSA_EOI_WITH_NON_INTR_SIGNAL = 1,
TEST_PSA_EOI_WITH_MULTIPLE_SIGNALS = 2,
TEST_PSA_EOI_WITH_UNASSERTED_SIGNAL = 3,
TEST_INTR_SERVICE = 4,
-} test_intr_fn_id_t;
+ TEST_ISOLATION_PSA_ROT_DATA_RD = 5,
+ TEST_ISOLATION_PSA_ROT_DATA_WR = 6,
+ TEST_ISOLATION_PSA_ROT_STACK_RD = 7,
+ TEST_ISOLATION_PSA_ROT_STACK_WR = 8,
+ TEST_ISOLATION_PSA_ROT_HEAP_RD = 9,
+ TEST_ISOLATION_PSA_ROT_HEAP_WR = 10,
+ TEST_ISOLATION_PSA_ROT_MMIO_RD = 11,
+ TEST_ISOLATION_PSA_ROT_MMIO_WR = 12,
+} driver_test_fn_id_t;
/* typedef's */
typedef struct {
diff --git a/api-tests/val/common/val_target.c b/api-tests/val/common/val_target.c
index ae3c2f4..3564c7d 100644
--- a/api-tests/val/common/val_target.c
+++ b/api-tests/val/common/val_target.c
@@ -18,7 +18,8 @@
#include "val_target.h"
#include "target_database.h"
-#ifdef USE_RAW_PRINT_FOR_DRIVER_PARTITION
+/* Use raw print for driver partition */
+#ifdef DRIVER_PARTITION_INCLUDE
#define val_print(x, y, z) \
do { \
if (x >= VERBOSE) \
@@ -26,7 +27,7 @@
} while(0)
#else
__UNUSED STATIC_DECLARE val_status_t val_print
- (print_verbosity_t verbosity, char *string, uint32_t data);
+ (print_verbosity_t verbosity, char *string, int32_t data);
#endif
/**
@@ -52,7 +53,7 @@
/* Sanity check signature and version here */
if ((hdr->version != 1) || (hdr->size == 0))
{
- val_print(PRINT_ERROR, "Target config database Error. \n", 0);
+ val_print(PRINT_ERROR, "\tTarget config database Error. \n", 0);
return VAL_STATUS_ERROR;
}
hdr++;
@@ -82,7 +83,7 @@
val_status_t status;
void *config_blob = NULL;
- val_print(PRINT_INFO, "Input id is %x \n", cfg_id);
+ val_print(PRINT_INFO, "\tInput id is %x \n", cfg_id);
do
{
@@ -138,7 +139,7 @@
if ((cfg_id < TARGET_MIN_CFG_ID) || (cfg_id > TARGET_MAX_CFG_ID))
{
- val_print(PRINT_ERROR, "Invalid Target data config ID = %x \n", cfg_id);
+ val_print(PRINT_ERROR, "\tInvalid Target data config ID = %x \n", cfg_id);
return VAL_STATUS_INSUFFICIENT_SIZE;
}
@@ -146,8 +147,8 @@
if (VAL_ERROR(status))
{
- val_print(PRINT_ERROR, "\n Get Config failed with status = %x", status);
- val_print(PRINT_ERROR, " for cfg_id = %x", cfg_id);
+ val_print(PRINT_ERROR, "\tGet Config failed with status = %x", status);
+ val_print(PRINT_ERROR, " for cfg_id = %x\n", cfg_id);
return status;
}
return VAL_STATUS_SUCCESS;
diff --git a/api-tests/val/common/val_target.h b/api-tests/val/common/val_target.h
index c32f0a5..c8b1466 100644
--- a/api-tests/val/common/val_target.h
+++ b/api-tests/val/common/val_target.h
@@ -64,7 +64,7 @@
typedef enum _MEMORY_CONFIG_ID_ {
MEMORY_NVMEM = 0x2,
MEMORY_NSPE_MMIO = 0x3,
- MEMORY_CLIENT_PARTITION_MMIO = 0x4,
+ MEMORY_SERVER_PARTITION_MMIO = 0x4,
MEMORY_DRIVER_PARTITION_MMIO = 0x5,
} memory_cfg_id_t;
@@ -82,7 +82,7 @@
WATCHDOG = GROUP_SOC_PERIPHERAL,
NVMEM = GROUP_MEMORY,
NSPE_MMIO = GROUP_MEMORY,
- CLIENT_PARTITION_MMIO = GROUP_MEMORY,
+ SERVER_PARTITION_MMIO = GROUP_MEMORY,
DRIVER_PARTITION_MMIO = GROUP_MEMORY,
BOOT = GROUP_MISCELLANEOUS,
DUT = GROUP_MISCELLANEOUS,
@@ -195,11 +195,15 @@
addr_t ns_start_addr_of_combine_test_binary;
is_available_t combine_test_binary_in_ram;
addr_t ns_test_addr;
+ is_available_t sp_heap_mem_supp;
} miscellaneous_desc_t;
/*val target config read apis */
+#ifdef VAL_NSPE_BUILD
STATIC_DECLARE val_status_t val_target_get_config(cfg_id_t cfg_id, uint8_t **data, uint32_t *size);
STATIC_DECLARE val_status_t val_target_cfg_get_next(void **blob);
-STATIC_DECLARE val_status_t val_target_get_cfg_blob(cfg_id_t cfg_id, uint8_t **data, uint32_t *size);
+STATIC_DECLARE val_status_t val_target_get_cfg_blob(cfg_id_t cfg_id, uint8_t **data,
+ uint32_t *size);
STATIC_DECLARE val_status_t val_target_get_config(cfg_id_t cfg_id, uint8_t **data, uint32_t *size);
#endif
+#endif