Add context management library
This patch adds support for a cpu context management library. This
library will be used to:
1. Share pointers to secure and non-secure state cpu contexts between
runtime services e.g. PSCI and Secure Payload Dispatcher services
2. Set SP_EL3 to a context structure which will be used for
programming an ERET into a lower EL
3. Provide wrapper functions to save and restore EL3 & EL1
state. These functions will in turn use the helper functions in
context.S
Change-Id: I655eeef83dcd2a0c6f2eb2ac23efab866ac83ca0
diff --git a/bl31/bl31_main.c b/bl31/bl31_main.c
index 538280a..fb69718 100644
--- a/bl31/bl31_main.c
+++ b/bl31/bl31_main.c
@@ -38,6 +38,15 @@
#include <bl_common.h>
#include <bl31.h>
#include <runtime_svc.h>
+#include <context_mgmt.h>
+
+/*******************************************************************************
+ * Simple function to initialise all BL31 helper libraries.
+ ******************************************************************************/
+void bl31_lib_init()
+{
+ cm_init();
+}
void bl31_arch_next_el_setup(void);
@@ -59,7 +68,8 @@
#if defined (__GNUC__)
printf("BL31 Built : %s, %s\n\r", __TIME__, __DATE__);
#endif
-
+ /* Initialise helper libraries */
+ bl31_lib_init();
/* Initialize the runtime services e.g. psci */
runtime_svc_init(mpidr);