summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/runtime/interface.h50
-rw-r--r--src/include/usr/htmgt/htmgt_reasoncodes.H5
2 files changed, 49 insertions, 6 deletions
diff --git a/src/include/runtime/interface.h b/src/include/runtime/interface.h
index da321e231..9f52c09c1 100644
--- a/src/include/runtime/interface.h
+++ b/src/include/runtime/interface.h
@@ -241,11 +241,16 @@ typedef struct runtimeInterfaces
int (*occ_stop)(uint64_t* i_chip,
size_t i_num_chips);
- /** Reset OCC upon failure
- * @param [in]: i_chipId: Id of processor with failing OCC
- * @return NONE
+ /**
+ * @brief Notify HTMGT that an OCC has an error to report
+ *
+ * @details When an OCC has encountered an error that it wants to
+ * be reported, this interface will be called to trigger
+ * HTMGT to collect and commit the error.
+ *
+ * @param[in] i_chipId ChipID which identifies the OCC reporting an error
*/
- void (*occ_error) (uint64_t i_chipId);
+ void (*process_occ_error)(uint64_t i_chipId);
/** Enable chip attentions
*
@@ -271,6 +276,43 @@ typedef struct runtimeInterfaces
uint64_t i_ipollStatus,
uint64_t i_ipollMask);
+ /**
+ * @brief Notify HTMGT that an OCC has failed and needs to be reset
+ *
+ * @details When BMC detects an OCC failure that requires a reset,
+ * this interface will be called to trigger the OCC reset.
+ * HTMGT maintains a reset count and if there are additional
+ * resets available, the OCCs get reset/reloaded.
+ * If the recovery attempts have been exhauseted or the OCC
+ * fails to go active, an unrecoverable error will be logged
+ * and the system will remain in safe mode.
+ *
+ * @param[in] i_chipId ChipID which identifies the failing OCC
+ */
+ void (*process_occ_reset)(uint64_t i_chipId);
+
+ /**
+ * @brief Change the OCC state
+ *
+ * @details This is a blocking call that will change the OCC state.
+ * The OCCs will only actuate (update processor frequency/
+ * voltages) when in Active state. The OCC will only be
+ * monitoring/observing when in Observation state.
+ *
+ * @note When the OCCs are initially started, the state will default
+ * to Active. If the state is changed to Observation, that
+ * state will be retained until the next IPL. (If the OCC would
+ * get reset, it would return to the last requested state)
+ *
+ *
+ * @param[in] i_occ_activation set to 0 to move OCC to Observation state
+ * or any other value to move OCC to Active state
+ *
+ * @returns 0 on success, or return code if the state did not
+ * change.
+ */
+ int (*enable_occ_actuation)(int i_occ_activation);
+
// Reserve some space for future growth.
void (*reserved[32])(void);
diff --git a/src/include/usr/htmgt/htmgt_reasoncodes.H b/src/include/usr/htmgt/htmgt_reasoncodes.H
index 1c374e3e1..98cdb5ecb 100644
--- a/src/include/usr/htmgt/htmgt_reasoncodes.H
+++ b/src/include/usr/htmgt/htmgt_reasoncodes.H
@@ -1,11 +1,11 @@
/* IBM_PROLOG_BEGIN_TAG */
/* This is an automatically generated prolog. */
/* */
-/* $Source: src/include/usr/htmgt/htmgtreasoncodes.H $ */
+/* $Source: src/include/usr/htmgt/htmgt_reasoncodes.H $ */
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2014 */
+/* Contributors Listed Below - COPYRIGHT 2014,2015 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -63,6 +63,7 @@ namespace HTMGT
HTMGT_RC_OCC_CMD_FAIL = HTMGT_COMP_ID | 0x1B,
HTMGT_RC_INVALID_LENGTH = HTMGT_COMP_ID | 0x1C,
HTMGT_RC_OCC_ERROR_LOG = HTMGT_COMP_ID | 0x1D,
+ HTMGT_RC_INVALID_ROLE = HTMGT_COMP_ID | 0x22,
HTMGT_RC_INVALID_DATA = HTMGT_COMP_ID | 0x23,
HTMGT_RC_OCC_UNAVAILABLE = HTMGT_COMP_ID | 0x24,
HTMGT_RC_OCC_START_FAIL = HTMGT_COMP_ID | 0x25,
OpenPOWER on IntegriCloud