diff options
author | Doug Gilbert <dgilbert@us.ibm.com> | 2013-11-15 12:45:52 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-01-10 18:06:54 -0600 |
commit | effa0e2c6eccb199caa6179a0618c75c6182aa4b (patch) | |
tree | cfbd0f070ad74eaf3a08f6f545de8fc633efc688 /src/include/kernel/ipc.H | |
parent | 613d36e02e5ce4e5b69cbb02483e9fa352666ecd (diff) | |
download | talos-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.H | 24 |
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 |