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
