summaryrefslogtreecommitdiffstats
path: root/src/include/usr/hwas/common/deconfigGard.H
diff options
context:
space:
mode:
authorDhruvaraj S <dhruvaraj@in.ibm.com>2015-02-12 04:23:39 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2015-03-09 19:13:57 -0500
commit0481b521db49eb5161def9fe10824a07c9b5068b (patch)
tree95f0588b4045a77212e1a855d37d3d48ff1b83fb /src/include/usr/hwas/common/deconfigGard.H
parent8c22c53bfebf79a9e7548b9e32aad22901af3ca9 (diff)
downloadtalos-hostboot-0481b521db49eb5161def9fe10824a07c9b5068b.tar.gz
talos-hostboot-0481b521db49eb5161def9fe10824a07c9b5068b.zip
62392: HB Common Resource Recovery
HB Common resource recovery will recover any resources which is not garded by a FATAL error and try to use in the system for the current IPL Change-Id: I6ea4114ba19f47f062ec04449c3e0209d85a1faf RTC: 62392 CQ: SW291079 CMVC-Coreq: 948355 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/15678 Tested-by: Jenkins Server Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com> Reviewed-by: Brian H. Horton <brianh@linux.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr/hwas/common/deconfigGard.H')
-rw-r--r--src/include/usr/hwas/common/deconfigGard.H37
1 files changed, 29 insertions, 8 deletions
diff --git a/src/include/usr/hwas/common/deconfigGard.H b/src/include/usr/hwas/common/deconfigGard.H
index b9fd4a754..374b6b44f 100644
--- a/src/include/usr/hwas/common/deconfigGard.H
+++ b/src/include/usr/hwas/common/deconfigGard.H
@@ -88,10 +88,11 @@ public:
PREDICTIVE, // not applied due to predictive policy
PREDICATE, // not applied due to predicate
GARD_NOT_APPLIED, // not applied for other reason
+ RESOURCE_RECOVERED // Resource recovered
};
- // enums to indicate to deconfigureTarget() specific RUNTIME behaviors
- enum DeconfigureRuntime
+ // enums to indicate to deconfigureTarget() specific behaviors
+ enum DeconfigureFlags
{
NOT_AT_RUNTIME, // non-runtime behavior - if the system is at
// runtime, no deconfigs happen;
@@ -99,6 +100,7 @@ public:
// runtime behaviors:
FULLY_AT_RUNTIME, // - functional=false,dumpfunctional=false
DUMP_AT_RUNTIME, // - functional=false,dumpfunctional=true
+ SPEC_DECONFIG, //speculative deconfig
};
// enums to indicate non-error reason for a targets deconfiguration.
@@ -146,6 +148,8 @@ public:
// set by presentByAssoc() when a DIMM has no MBA
DECONFIGURED_BY_NO_PARENT_MBA, // BASE | 0x0D
+ CONFIGURED_BY_RESOURCE_RECOVERY, // BASE | 0x0E
+
// mask - these bits mean it's a PLID and not an enum
DECONFIGURED_BY_PLID_MASK = 0xFFFF0000,
};
@@ -194,6 +198,23 @@ public:
~DeconfigGard();
/**
+ * @brief Apply gard record for a specific target.
+ *
+ * Called by deconfigureTargetsFromGardRecordsForIpl.
+ *
+ * @param i_pTarget Target to be garded
+ *
+ * @param i_gardRecord gard record to be applied
+ *
+ * @param i_deconfigRule Options for deconfigure
+ *
+ * @return errlHndl_t. Error log handle.
+ */
+ errlHndl_t applyGardRecord(TARGETING::Target *i_pTarget,
+ GardRecord &i_gardRecord,
+ const DeconfigureFlags i_deconfigRule = NOT_AT_RUNTIME);
+
+ /**
* @brief Clears GARD Records for replaced Targets.
*
* Called by HWAS as part of initial IPL steps.
@@ -260,14 +281,14 @@ public:
* @param[in] i_errlEid Error log EID to store in Deconfigure Record.
* @param[out] o_targetDeconfigured - if pointer is valid, bool is set
* to true if target was deconfigured; NOT SET OTHERWISE
- * @param[in] i_runTimeDeconfigRule Deconfigure Runtime options -
+ * @param[in] i_deconfigRule Deconfigure options -
* default not at runtime
* @return errlHndl_t. Error log handle.
*/
errlHndl_t deconfigureTarget(TARGETING::Target & i_target,
const uint32_t i_errlEid,
bool *o_targetDeconfigured = NULL,
- const DeconfigureRuntime i_runTimeDeconfigRule =
+ const DeconfigureFlags i_deconfigRule =
NOT_AT_RUNTIME);
/**
@@ -433,12 +454,12 @@ private:
*
* @param[in] i_target Reference to base Target.
* @param[in] i_errlEid Error log EID to store in Deconfigure Record.
- * @param[in] i_runTimeDeconfigRule Deconfigure Runtime options -
+ * @param[in] i_deconfigRule Deconfigure Runtime options -
* default not at runtime
*/
void _deconfigureByAssoc(TARGETING::Target & i_target,
const uint32_t i_errlEid,
- const DeconfigureRuntime i_runTimeDeconfigRule =
+ const DeconfigureFlags i_deconfigRule =
NOT_AT_RUNTIME);
/**
@@ -451,13 +472,13 @@ private:
* @param[in] i_errlEid Error log EID to store in Deconfigure Record.
* @param[out] o_targetDeconfigured - if pointer is valid, bool is set
* to true if target was deconfigured; NOT SET OTHERWISE
- * @param[in] i_runTimeDeconfigRule Deconfigure Runtime options -
+ * @param[in] i_deconfigRule Deconfigure Runtime options -
* default not at runtime
*/
void _deconfigureTarget(TARGETING::Target & i_target,
const uint32_t i_errlEid,
bool *o_targetDeconfigured = NULL,
- const DeconfigureRuntime i_runTimeDeconfigRule =
+ const DeconfigureFlags i_deconfigRule =
NOT_AT_RUNTIME);
/**
OpenPOWER on IntegriCloud