Add runtime services framework

This patch introduces the framework to enable registration and
initialisation of runtime services. PSCI is registered and initialised
as a runtime service. Handling of runtime service requests will be
implemented in subsequent patches.

Change-Id: Id21e7ddc5a33d42b7d6e455b41155fc5441a9547
diff --git a/bl31/bl31.ld.S b/bl31/bl31.ld.S
index 2583c9a..859ccfe 100644
--- a/bl31/bl31.ld.S
+++ b/bl31/bl31.ld.S
@@ -50,6 +50,13 @@
         *bl31_entrypoint.o(.text)
         *(.text)
         *(.rodata*)
+
+        /* Ensure 8-byte alignment for descriptors */
+        . = ALIGN(8);
+        __RT_SVC_DESCS_START__ = .;
+        *(rt_svc_descs)
+        __RT_SVC_DESCS_END__ = .;
+
         *(.vectors)
         __RO_END_UNALIGNED__ = .;
         /*
diff --git a/bl31/bl31_main.c b/bl31/bl31_main.c
index fb69718..dc65b60 100644
--- a/bl31/bl31_main.c
+++ b/bl31/bl31_main.c
@@ -57,7 +57,6 @@
 void bl31_main(void)
 {
 	el_change_info *image_info;
-	unsigned long mpidr = read_mpidr();
 
 	/* Perform remaining generic architectural setup from EL3 */
 	bl31_arch_setup();
@@ -72,7 +71,7 @@
 	bl31_lib_init();
 
 	/* Initialize the runtime services e.g. psci */
-	runtime_svc_init(mpidr);
+	runtime_svc_init();
 
 	/* Clean caches before re-entering normal world */
 	dcsw_op_all(DCCSW);