diff options
author | Doug Gilbert <dgilbert@us.ibm.com> | 2014-01-22 14:46:04 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-03-02 13:21:47 -0600 |
commit | 8e4ae1fa8e7378af70d0927068b5d27d3f3c8c68 (patch) | |
tree | 1a5c793c7951734662a15c1a71e4c0606e4a5295 /src/include/sys | |
parent | ef737aaa136524bcc9fc9145a294bdea50d56fce (diff) | |
download | talos-hostboot-8e4ae1fa8e7378af70d0927068b5d27d3f3c8c68.tar.gz talos-hostboot-8e4ae1fa8e7378af70d0927068b5d27d3f3c8c68.zip |
Handle pending interrupts across nodes in mpipl
RTC: 80988
Change-Id: I7ef9feaa3d163d6956576f30538e2fe001e892a1
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/8441
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/sys')
-rw-r--r-- | src/include/sys/internode.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/include/sys/internode.h b/src/include/sys/internode.h new file mode 100644 index 000000000..3d4c6bf65 --- /dev/null +++ b/src/include/sys/internode.h @@ -0,0 +1,58 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/include/sys/internode.h $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2014 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ +#ifndef __INTERNODE_H +#define __INTERNODE_H +// Memory area preserved on MPIPL + +#include <vmmconst.h> + +enum internode_info_vals_t +{ + MAX_NODES_PER_SYS = 8, +}; + +enum intr_mpipl_sync_t +{ + INTR_MPIPL_SYNC_CLEAR = 0, + INTR_MPIPL_UPSTREAM_DISABLED = 1, + INTR_MPIPL_DRAINED = 2, +}; + + +/** + * Node information needed across MPIPLs + */ +struct internode_info_t +{ + uint64_t eye_catcher; + uint64_t version; + bool exist[ MAX_NODES_PER_SYS ]; //!< true if HB node exists + volatile intr_mpipl_sync_t mpipl_intr_sync; //!< at sync point +}; + +#define NODE_INFO_EYE_CATCHER 0x4e4f444544415441ul // "NODEDATA" +#define NODE_INFO_VERSION 1 + +#define INTERNODE_INFO_SIZE (sizeof(internode_info_t)) + +#endif |