diff --git a/spm/cactus/cactus_main.c b/spm/cactus/cactus_main.c
index 59cd7e7..78bb8fc 100644
--- a/spm/cactus/cactus_main.c
+++ b/spm/cactus/cactus_main.c
@@ -181,6 +181,7 @@
 	assert(IS_IN_EL1() != 0);
 
 	struct mailbox_buffers mb;
+	smc_ret_values ret;
 
 	/* Get current FFA id */
 	smc_ret_values ffa_id_ret = ffa_id_get();
@@ -225,28 +226,25 @@
 
 		set_putc_impl(PL011_AS_STDOUT);
 
-		NOTICE("Booting Primary Cactus Secure Partition\n%s\n%s\n",
-			build_message, version_string);
 	} else {
-		smc_ret_values ret;
 		set_putc_impl(HVC_CALL_AS_STDOUT);
+	}
 
-		NOTICE("Booting Secondary Cactus Secure Partition (ID: %x)\n%s\n%s\n",
-			ffa_id, build_message, version_string);
+	/* Below string is monitored by CI expect script. */
+	NOTICE("Booting Secure Partition (ID: %x)\n%s\n%s\n",
+		ffa_id, build_message, version_string);
 
-		if (ffa_id == (SPM_VM_ID_FIRST + 2)) {
-			VERBOSE("Mapping RXTX Region\n");
-			CONFIGURE_AND_MAP_MAILBOX(mb, PAGE_SIZE, ret);
-			if (ffa_func_id(ret) != FFA_SUCCESS_SMC32) {
-				ERROR(
-				    "Failed to map RXTX buffers. Error: %x\n",
-				    ffa_error_code(ret));
-				panic();
-			}
+	if (ffa_id == (SPM_VM_ID_FIRST + 2)) {
+		VERBOSE("Mapping RXTX Region\n");
+		CONFIGURE_AND_MAP_MAILBOX(mb, PAGE_SIZE, ret);
+		if (ffa_func_id(ret) != FFA_SUCCESS_SMC32) {
+			ERROR(
+			    "Failed to map RXTX buffers. Error: %x\n",
+			    ffa_error_code(ret));
+			panic();
 		}
 	}
 
-	INFO("FF-A id: %x\n", ffa_id);
 	cactus_print_memory_layout(ffa_id);
 
 	register_secondary_entrypoint();
diff --git a/spm/cactus/cactus_tests/cactus_test_ffa.c b/spm/cactus/cactus_tests/cactus_test_ffa.c
index ba069d0..2dc264e 100644
--- a/spm/cactus/cactus_tests/cactus_test_ffa.c
+++ b/spm/cactus/cactus_tests/cactus_test_ffa.c
@@ -141,7 +141,7 @@
 		((spm_version >> FFA_VERSION_MAJOR_SHIFT) == FFA_MAJOR &&
 		 (spm_version & FFA_VERSION_MINOR_MASK) >= FFA_MINOR);
 
-	NOTICE("FFA_VERSION returned %u.%u; Compatible: %i\n",
+	VERBOSE("FFA_VERSION returned %u.%u; Compatible: %i\n",
 		spm_version >> FFA_VERSION_MAJOR_SHIFT,
 		spm_version & FFA_VERSION_MINOR_MASK,
 		(int)ffa_version_compatible);
diff --git a/spm/ivy/app/ivy_main.c b/spm/ivy/app/ivy_main.c
index 28f93ab..777ef82 100644
--- a/spm/ivy/app/ivy_main.c
+++ b/spm/ivy/app/ivy_main.c
@@ -24,12 +24,16 @@
 
 	set_putc_impl(SVC_CALL_AS_STDOUT);
 
-	NOTICE("Entering S-EL0 Secure Partition\n");
+	args = (svc_args) {.fid = FFA_ID_GET};
+	ret = sp_svc(&args);
+
+	NOTICE("Booting Secure Partition (ID: %x)\n",
+		(unsigned int)args.arg2);
 	NOTICE("%s\n", build_message);
 	NOTICE("%s\n", version_string);
 
 init:
-	args = (svc_args){.fid = FFA_MSG_WAIT};
+	args = (svc_args) {.fid = FFA_MSG_WAIT};
 	ret = sp_svc(&args);
 
 	while (1) {
diff --git a/spm/ivy/shim/shim_main.c b/spm/ivy/shim/shim_main.c
index 97df1cc..f03a52f 100644
--- a/spm/ivy/shim/shim_main.c
+++ b/spm/ivy/shim/shim_main.c
@@ -25,25 +25,25 @@
 
 static void shim_print_memory_layout(void)
 {
-	NOTICE("Secure Partition memory layout:\n");
+	INFO("Secure Partition memory layout:\n");
 
-	NOTICE("  Image regions\n");
-	NOTICE("    Text region            : %p - %p\n",
+	INFO("  Image regions\n");
+	INFO("    Text region            : %p - %p\n",
 		(void *)IVY_TEXT_START, (void *)IVY_TEXT_END);
-	NOTICE("    Read-only data region  : %p - %p\n",
+	INFO("    Read-only data region  : %p - %p\n",
 		(void *)IVY_RODATA_START, (void *)IVY_RODATA_END);
-	NOTICE("    Data region            : %p - %p\n",
+	INFO("    Data region            : %p - %p\n",
 		(void *)IVY_DATA_START, (void *)IVY_DATA_END);
-	NOTICE("    BSS region             : %p - %p\n",
+	INFO("    BSS region             : %p - %p\n",
 		(void *)IVY_BSS_START, (void *)IVY_BSS_END);
-	NOTICE("    Total image memory     : %p - %p\n",
+	INFO("    Total image memory     : %p - %p\n",
 		(void *)IVY_IMAGE_BASE,
 		(void *)(IVY_IMAGE_BASE + IVY_IMAGE_SIZE));
-	NOTICE("  SPM regions\n");
-	NOTICE("    SPM <-> SP buffer      : %p - %p\n",
+	INFO("  SPM regions\n");
+	INFO("    SPM <-> SP buffer      : %p - %p\n",
 		(void *)IVY_SPM_BUF_BASE,
 		(void *)(IVY_SPM_BUF_BASE + IVY_SPM_BUF_SIZE));
-	NOTICE("    NS <-> SP buffer       : %p - %p\n",
+	INFO("    NS <-> SP buffer       : %p - %p\n",
 		(void *)IVY_NS_BUF_BASE,
 		(void *)(IVY_NS_BUF_BASE + IVY_NS_BUF_SIZE));
 }
@@ -93,7 +93,7 @@
 	/* Initialise console */
 	set_putc_impl(HVC_CALL_AS_STDOUT);
 
-	NOTICE("Booting S-EL1 Shim\n");
+	INFO("Booting S-EL1 Shim\n");
 
 	/* Configure and enable Stage-1 MMU, enable D-Cache */
 	shim_plat_configure_mmu();
