Move CPU context pointers into cpu_data

Moving the context pointers for each CPU into the per-cpu data
allows for much more efficient access to the contexts for the
current CPU.

Change-Id: Id784e210d63cbdcddb44ac1591617ce668dbc29f
diff --git a/include/bl31/cpu_data.h b/include/bl31/cpu_data.h
index 2d256e4..5f45f14 100644
--- a/include/bl31/cpu_data.h
+++ b/include/bl31/cpu_data.h
@@ -32,7 +32,7 @@
 #define __CPU_DATA_H__
 
 /* Offsets for the cpu_data structure */
-#define CPU_DATA_CRASH_STACK_OFFSET	0x0
+#define CPU_DATA_CRASH_STACK_OFFSET	0x10
 #define CPU_DATA_LOG2SIZE		6
 
 #ifndef __ASSEMBLY__
@@ -47,6 +47,7 @@
 
 /*******************************************************************************
  * Cache of frequently used per-cpu data:
+ *   Pointers to non-secure and secure security state contexts
  *   Address of the crash stack
  * It is aligned to the cache line boundary to allow efficient concurrent
  * manipulation of these pointers on different cpus
@@ -59,6 +60,7 @@
  ******************************************************************************/
 
 typedef struct cpu_data {
+	void *cpu_context[2];
 	uint64_t crash_stack;
 } __aligned(CACHE_WRITEBACK_GRANULE) cpu_data_t;