diff --git a/services/std_svc/spm/sp_setup.c b/services/std_svc/spm/sp_setup.c
index b1f651f068debfa39d00df9f9e21d21889bfbcee..ecb8bd363c8ea023df11b266b3adcd2ccbe75aad 100644
--- a/services/std_svc/spm/sp_setup.c
+++ b/services/std_svc/spm/sp_setup.c
@@ -13,6 +13,7 @@
 #include <debug.h>
 #include <platform_def.h>
 #include <platform.h>
+#include <sp_res_desc.h>
 #include <string.h>
 #include <xlat_tables_v2.h>
 
@@ -34,7 +35,7 @@ void spm_sp_setup(sp_context_t *sp_ctx)
 	SET_PARAM_HEAD(&ep_info, PARAM_EP, VERSION_1, SECURE | EP_ST_ENABLE);
 
 	/* Setup entrypoint and SPSR */
-	ep_info.pc = BL32_BASE;
+	ep_info.pc = sp_ctx->rd.attribute.entrypoint;
 	ep_info.spsr = SPSR_64(MODE_EL0, MODE_SP_EL0, DISABLE_ALL_EXCEPTIONS);
 
 	/*