diff --git a/services/std_svc/spm/sp_setup.c b/services/std_svc/spm/sp_setup.c
index de031d8..de27e3e 100644
--- a/services/std_svc/spm/sp_setup.c
+++ b/services/std_svc/spm/sp_setup.c
@@ -21,7 +21,7 @@
 #include "spm_shim_private.h"
 
 /* Setup context of the Secure Partition */
-void secure_partition_setup(secure_partition_context_t *sp_ctx)
+void spm_sp_setup(sp_context_t *sp_ctx)
 {
 	cpu_context_t *ctx = &(sp_ctx->cpu_ctx);
 
diff --git a/services/std_svc/spm/sp_xlat.c b/services/std_svc/spm/sp_xlat.c
index b192b0c..2aa2fa1 100644
--- a/services/std_svc/spm/sp_xlat.c
+++ b/services/std_svc/spm/sp_xlat.c
@@ -105,7 +105,7 @@
 	return smc_attr;
 }
 
-int32_t spm_memory_attributes_get_smc_handler(secure_partition_context_t *sp_ctx,
+int32_t spm_memory_attributes_get_smc_handler(sp_context_t *sp_ctx,
 					      uintptr_t base_va)
 {
 	uint32_t attributes;
@@ -127,7 +127,7 @@
 	}
 }
 
-int spm_memory_attributes_set_smc_handler(secure_partition_context_t *sp_ctx,
+int spm_memory_attributes_set_smc_handler(sp_context_t *sp_ctx,
 					  u_register_t page_address,
 					  u_register_t pages_count,
 					  u_register_t smc_attributes)
diff --git a/services/std_svc/spm/spm_main.c b/services/std_svc/spm/spm_main.c
index 133eea2..a72407e 100644
--- a/services/std_svc/spm/spm_main.c
+++ b/services/std_svc/spm/spm_main.c
@@ -26,12 +26,12 @@
 /*******************************************************************************
  * Secure Partition context information.
  ******************************************************************************/
-static secure_partition_context_t sp_ctx;
+static sp_context_t sp_ctx;
 
 /*******************************************************************************
  * This function takes an SP context pointer and prepares the CPU to enter.
  ******************************************************************************/
-static void spm_sp_prepare_enter(secure_partition_context_t *sp_ctx)
+static void spm_sp_prepare_enter(sp_context_t *sp_ctx)
 {
 	assert(sp_ctx != NULL);
 
@@ -50,7 +50,7 @@
 /*******************************************************************************
  * Enter SP after preparing it with spm_sp_prepare_enter().
  ******************************************************************************/
-static uint64_t spm_sp_enter(secure_partition_context_t *sp_ctx)
+static uint64_t spm_sp_enter(sp_context_t *sp_ctx)
 {
 	/* Enter Secure Partition */
 	return spm_secure_partition_enter(&sp_ctx->c_rt_ctx);
@@ -62,7 +62,7 @@
 static int32_t spm_init(void)
 {
 	uint64_t rc = 0;
-	secure_partition_context_t *ctx;
+	sp_context_t *ctx;
 
 	INFO("Secure Partition init...\n");
 
@@ -86,7 +86,7 @@
  ******************************************************************************/
 int32_t spm_setup(void)
 {
-	secure_partition_context_t *ctx;
+	sp_context_t *ctx;
 
 	/* Disable MMU at EL1 (initialized by BL2) */
 	disable_mmu_icache_el1();
@@ -99,7 +99,7 @@
 	/* Assign translation tables context. */
 	ctx->xlat_ctx_handle = spm_get_sp_xlat_context();
 
-	secure_partition_setup(ctx);
+	spm_sp_setup(ctx);
 
 	/* Register init function for deferred init.  */
 	bl31_register_bl32_init(&spm_init);
diff --git a/services/std_svc/spm/spm_private.h b/services/std_svc/spm/spm_private.h
index 28bf6f1..598762e 100644
--- a/services/std_svc/spm/spm_private.h
+++ b/services/std_svc/spm/spm_private.h
@@ -35,25 +35,25 @@
 #include <stdint.h>
 #include <xlat_tables_v2.h>
 
-typedef struct secure_partition_context {
+typedef struct sp_context {
 	uint64_t c_rt_ctx;
 	cpu_context_t cpu_ctx;
 	xlat_ctx_t *xlat_ctx_handle;
 	unsigned int sp_init_in_progress;
 	spinlock_t lock;
-} secure_partition_context_t;
+} sp_context_t;
 
 /* Assembly helpers */
 uint64_t spm_secure_partition_enter(uint64_t *c_rt_ctx);
 void __dead2 spm_secure_partition_exit(uint64_t c_rt_ctx, uint64_t ret);
 
-void secure_partition_setup(secure_partition_context_t *sp_ctx);
+void spm_sp_setup(sp_context_t *sp_ctx);
 
 xlat_ctx_t *spm_get_sp_xlat_context(void);
 
-int32_t spm_memory_attributes_get_smc_handler(secure_partition_context_t *sp_ctx,
+int32_t spm_memory_attributes_get_smc_handler(sp_context_t *sp_ctx,
 					      uintptr_t base_va);
-int spm_memory_attributes_set_smc_handler(secure_partition_context_t *sp_ctx,
+int spm_memory_attributes_set_smc_handler(sp_context_t *sp_ctx,
 					  u_register_t page_address,
 					  u_register_t pages_count,
 					  u_register_t smc_attributes);
