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);