summaryrefslogtreecommitdiffstats
path: root/src/include/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/kernel')
-rw-r--r--src/include/kernel/ipc.H24
-rw-r--r--src/include/kernel/misc.H4
2 files changed, 27 insertions, 1 deletions
diff --git a/src/include/kernel/ipc.H b/src/include/kernel/ipc.H
index f411808c3..2350b6076 100644
--- a/src/include/kernel/ipc.H
+++ b/src/include/kernel/ipc.H
@@ -39,7 +39,31 @@ struct ipc_data_area_t
uint32_t pir;
};
+/**
+ * This stucture maps an IPC data area needed by start_payload that is common
+ * to all HB instances.
+ * @note Don't change the order or size of this stucture
+ * w/o also changing src/kernel/shutdown.S
+ */
+struct start_payload_data_area_t
+{
+ /** barriers needed in shutdown.S - see src/kernel/shutdown.S
+ * barrier[0] blocks until all nodes have reported cpu/node_count
+ * barrier[1] blocks until safe to update HRMOR on master
+ * barrier[2] blocks until HRMORs updated
+ * barrier[3] blocks until SLBs, ERATs etc. cleared
+ * barrier[4] blocks until all CPUs have jumpted to payload except the
+ * one with the lowest PIR
+ */
+ uint64_t barrier[5];
+ uint64_t lowest_PIR; //!< Lowest cpu PIR in entire system (all nodes)
+ uint64_t cpu_count; //!< Total number of cpu threads in entire system
+ uint64_t node_count; //!< Total number of nodes in entire system
+};
+
+
extern ipc_data_area_t ipc_data_area;
+extern start_payload_data_area_t start_payload_data_area;
};
#endif
diff --git a/src/include/kernel/misc.H b/src/include/kernel/misc.H
index 42cfd3fa0..a7e40356d 100644
--- a/src/include/kernel/misc.H
+++ b/src/include/kernel/misc.H
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2011,2013 */
+/* COPYRIGHT International Business Machines Corp. 2011,2014 */
/* */
/* p1 */
/* */
@@ -47,6 +47,8 @@ namespace KernelMisc
extern uint64_t g_payload_entry;
/** @brief Address from base of payload data pointer. */
extern uint64_t g_payload_data;
+ /** @brief master host boot instance number (node) */
+ extern uint64_t g_masterHBInstance;
/** @fn in_kernel_mode
* @brief Determine if the code is currently in kernel mode or not.
OpenPOWER on IntegriCloud