diff --git a/spm/cactus/cactus_main.c b/spm/cactus/cactus_main.c
index 0518f1f..50219f3 100644
--- a/spm/cactus/cactus_main.c
+++ b/spm/cactus/cactus_main.c
@@ -295,7 +295,7 @@
 
 		cactus_print_boot_info(boot_info_header);
 	} else {
-		set_putc_impl(HVC_CALL_AS_STDOUT);
+		set_putc_impl(FFA_SVC_SMC_CALL_AS_STDOUT);
 	}
 
 	/* Below string is monitored by CI expect script. */
diff --git a/spm/common/sp_debug.c b/spm/common/sp_debug.c
index 2e67be3..9c91c56 100644
--- a/spm/common/sp_debug.c
+++ b/spm/common/sp_debug.c
@@ -7,6 +7,7 @@
 #include <drivers/arm/pl011.h>
 #include <drivers/console.h>
 #include <ffa_helpers.h>
+#include <ffa_svc.h>
 #include <sp_debug.h>
 #include <spm_helpers.h>
 
@@ -14,18 +15,24 @@
 
 static int putc_hypcall(int c)
 {
-	spm_debug_log((char)c);
+	hvc_args args = {
+		.fid = FFA_CONSOLE_LOG_SMC32,
+		.arg1 = 1,
+		.arg2 = c
+	};
 
+	(void)tftf_hvc(&args);
 	return c;
 }
-
-static int putc_svccall(int c)
+static int putc_ffacall(int c)
 {
 	struct ffa_value args = {
-		.fid = SPM_DEBUG_LOG,
-		.arg1 = c
+		.fid = FFA_CONSOLE_LOG_SMC32,
+		.arg1 = 1,
+		.arg2 = c
 	};
-	ffa_svc(&args);
+
+	ffa_service_call(&args);
 
 	return c;
 }
@@ -41,14 +48,12 @@
 {
 	switch (route) {
 
-	case HVC_CALL_AS_STDOUT:
+	case FFA_HVC_CALL_AS_STDOUT:
 		putc_impl = putc_hypcall;
 		return;
-
-	case SVC_CALL_AS_STDOUT:
-		putc_impl = putc_svccall;
+	case FFA_SVC_SMC_CALL_AS_STDOUT:
+		putc_impl = putc_ffacall;
 		return;
-
 	case PL011_AS_STDOUT:
 	default:
 		break;
diff --git a/spm/common/sp_debug.h b/spm/common/sp_debug.h
index e35c602..49bf5e7 100644
--- a/spm/common/sp_debug.h
+++ b/spm/common/sp_debug.h
@@ -6,8 +6,8 @@
 
 enum stdout_route {
 	PL011_AS_STDOUT = 0,
-	HVC_CALL_AS_STDOUT,
-	SVC_CALL_AS_STDOUT,
+	FFA_HVC_CALL_AS_STDOUT,
+	FFA_SVC_SMC_CALL_AS_STDOUT,
 };
 
 void set_putc_impl(enum stdout_route);
diff --git a/spm/common/sp_tests/sp_test_ffa.c b/spm/common/sp_tests/sp_test_ffa.c
index b130451..d992468 100644
--- a/spm/common/sp_tests/sp_test_ffa.c
+++ b/spm/common/sp_tests/sp_test_ffa.c
@@ -193,19 +193,6 @@
 	announce_test_end(test_spm_id_get);
 }
 
-void ffa_console_log_test(void)
-{
-	const char *test_name = "FFA_CONSOLE_LOG SMC Function";
-	announce_test_start(test_name);
-
-	const char test_string[] = "[FFA_CONSOLE_LOG]: Hello World!\n";
-	struct ffa_value ret = ffa_console_log(test_string, sizeof(test_string));
-
-	expect(ffa_func_id(ret), FFA_SUCCESS_SMC32);
-
-	announce_test_end(test_name);
-}
-
 void ffa_tests(struct mailbox_buffers *mb)
 {
 	const char *test_ffa = "FFA Interfaces";
@@ -215,7 +202,6 @@
 	ffa_features_test();
 	ffa_version_test();
 	ffa_spm_id_get_test();
-	ffa_console_log_test();
 	ffa_partition_info_get_test(mb);
 
 	announce_test_section_end(test_ffa);
diff --git a/spm/common/spm_helpers.c b/spm/common/spm_helpers.c
index 82fdae5..1cb5f4d 100644
--- a/spm/common/spm_helpers.c
+++ b/spm/common/spm_helpers.c
@@ -21,16 +21,6 @@
 	return ret.ret0;
 }
 
-void spm_debug_log(char c)
-{
-	hvc_args args = {
-		.fid = SPM_DEBUG_LOG,
-		.arg1 = c
-	};
-
-	(void)tftf_hvc(&args);
-}
-
 /**
  * Hypervisor call to enable/disable SP delivery of a virtual interrupt of
  * int_id value through the IRQ or FIQ vector (pin).
diff --git a/spm/common/spm_helpers.h b/spm/common/spm_helpers.h
index 25c6493..1d3ddc2 100644
--- a/spm/common/spm_helpers.h
+++ b/spm/common/spm_helpers.h
@@ -14,7 +14,6 @@
 #define SPM_INTERRUPT_ENABLE            (0xFF03)
 #define SPM_INTERRUPT_GET               (0xFF04)
 #define SPM_INTERRUPT_DEACTIVATE	(0xFF08)
-#define SPM_DEBUG_LOG                   (0xBD000000)
 
 /*
  * Hypervisor Calls Wrappers
@@ -23,6 +22,5 @@
 uint32_t spm_interrupt_get(void);
 int64_t spm_interrupt_enable(uint32_t int_id, bool enable, enum interrupt_pin pin);
 int64_t spm_interrupt_deactivate(uint32_t vint_id);
-void spm_debug_log(char c);
 
 #endif /* SPMC_H */
diff --git a/spm/ivy/app/ivy_main.c b/spm/ivy/app/ivy_main.c
index 0098809..1e2cd6a 100644
--- a/spm/ivy/app/ivy_main.c
+++ b/spm/ivy/app/ivy_main.c
@@ -24,7 +24,7 @@
 	ffa_id_t my_id;
 	struct mailbox_buffers mb;
 
-	set_putc_impl(SVC_CALL_AS_STDOUT);
+	set_putc_impl(FFA_SVC_SMC_CALL_AS_STDOUT);
 
 	/* Get FF-A id. */
 	ret = ffa_id_get();
diff --git a/spm/ivy/shim/shim_main.c b/spm/ivy/shim/shim_main.c
index 1d6c723..f6170a0 100644
--- a/spm/ivy/shim/shim_main.c
+++ b/spm/ivy/shim/shim_main.c
@@ -92,7 +92,7 @@
 	assert(IS_IN_EL1() != 0);
 
 	/* Initialise console */
-	set_putc_impl(HVC_CALL_AS_STDOUT);
+	set_putc_impl(FFA_HVC_CALL_AS_STDOUT);
 
 	/* Configure and enable Stage-1 MMU, enable D-Cache */
 	shim_plat_configure_mmu();
