summaryrefslogtreecommitdiffstats
path: root/src/include/kernel/ipc.H
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert@us.ibm.com>2013-11-15 12:45:52 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-01-10 18:06:54 -0600
commiteffa0e2c6eccb199caa6179a0618c75c6182aa4b (patch)
treecfbd0f070ad74eaf3a08f6f545de8fc633efc688 /src/include/kernel/ipc.H
parent613d36e02e5ce4e5b69cbb02483e9fa352666ecd (diff)
downloadtalos-hostboot-effa0e2c6eccb199caa6179a0618c75c6182aa4b.tar.gz
talos-hostboot-effa0e2c6eccb199caa6179a0618c75c6182aa4b.zip
implement start_payload for multi-drawer
RTC: 71994 Change-Id: I422f349d5588731a5e7cfc504d96e497958d6b95 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7426 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/kernel/ipc.H')
-rw-r--r--src/include/kernel/ipc.H24
1 files changed, 24 insertions, 0 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
OpenPOWER on IntegriCloud