summaryrefslogtreecommitdiffstats
path: root/src/include/usr/hwpf
diff options
context:
space:
mode:
authorMike Jones <mjjones@us.ibm.com>2013-06-25 17:07:46 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-07-02 14:57:29 -0500
commit4c3292e066ded88bb475db3339ae0b98c976768e (patch)
treea8e06fc1921a73d318c48ebbc5c98bac2c45e94d /src/include/usr/hwpf
parentfdd698d541e219dbbb57d4d248dd15ef08be564a (diff)
downloadblackbird-hostboot-4c3292e066ded88bb475db3339ae0b98c976768e.tar.gz
blackbird-hostboot-4c3292e066ded88bb475db3339ae0b98c976768e.zip
HWPF: Support Children callout/deconfigure/GARD in FAPI Error XML
Change-Id: I72584c095e8c15a56e84cca67260935ac875b7fb RTC: 69794 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/5187 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr/hwpf')
-rw-r--r--src/include/usr/hwpf/fapi/fapiErrorInfo.H51
-rw-r--r--src/include/usr/hwpf/fapi/fapiReturnCode.H33
2 files changed, 83 insertions, 1 deletions
diff --git a/src/include/usr/hwpf/fapi/fapiErrorInfo.H b/src/include/usr/hwpf/fapi/fapiErrorInfo.H
index e3570a92d..336552957 100644
--- a/src/include/usr/hwpf/fapi/fapiErrorInfo.H
+++ b/src/include/usr/hwpf/fapi/fapiErrorInfo.H
@@ -40,6 +40,7 @@
* mjjones 09/19/2012 Replace FFDC type with ID
* mjjones 03/22/2013 Support Procedure Callouts
* mjjones 05/20/2013 Support Bus Callouts
+ * mjjones 06/24/2013 Support Children CDGs
*/
#ifndef FAPIERRORINFO_H_
@@ -209,7 +210,7 @@ struct ErrorInfoCDG
/**
* @brief Constructor.
*
- * @param[in] i_target Reference to the target to callout/deconfigure/GARD
+ * @param[in] i_target Reference to the target to c/d/g
* @param[in] i_callout True if Target should be called out
* @param[in] i_deconfigure True if Target should be deconfigured
* @param[in] i_gard True if Target should be GARDed
@@ -236,6 +237,47 @@ struct ErrorInfoCDG
};
/**
+ * @struct ErrorInfoChildrenCDG
+ *
+ * This struct contains children targets to callout/deconfigure/GARD
+ */
+struct ErrorInfoChildrenCDG
+{
+ /**
+ * @brief Constructor.
+ *
+ * @param[in] i_parentChip Reference to the parent chip
+ * @oaram[in] i_childType Child target types to c/d/g
+ * @param[in] i_callout True if Target should be called out
+ * @param[in] i_deconfigure True if Target should be deconfigured
+ * @param[in] i_gard True if Target should be GARDed
+ * @param[in] i_priority The priority of any callout
+ */
+ ErrorInfoChildrenCDG(const Target & i_parentChip,
+ const TargetType i_childType,
+ const bool i_callout,
+ const bool i_deconfigure,
+ const bool i_gard,
+ const CalloutPriorities::CalloutPriority i_priority);
+
+ // The parent chip
+ Target iv_parentChip;
+
+ // The child target types to c/d/g
+ TargetType iv_childType;
+
+ // Callout Information
+ bool iv_callout;
+ CalloutPriorities::CalloutPriority iv_calloutPriority;
+
+ // Deconfigure Information
+ bool iv_deconfigure;
+
+ // GARD Information
+ bool iv_gard;
+};
+
+/**
* @struct ErrorInfo
*
* This struct defines the error information associated with a fapi::ReturnCode
@@ -271,6 +313,13 @@ struct ErrorInfo
std::vector<ErrorInfoCDG *> iv_CDGs;
typedef std::vector<ErrorInfoCDG *>::iterator ErrorInfoCDGItr_t;
typedef std::vector<ErrorInfoCDG *>::const_iterator ErrorInfoCDGCItr_t;
+
+ // Vector of children targets to callout/deconfigure/GARD
+ std::vector<ErrorInfoChildrenCDG *> iv_childrenCDGs;
+ typedef std::vector<ErrorInfoChildrenCDG *>::iterator
+ ErrorInfoChildrenCDGItr_t;
+ typedef std::vector<ErrorInfoChildrenCDG *>::const_iterator
+ ErrorInfoChildrenCDGCItr_t;
};
}
diff --git a/src/include/usr/hwpf/fapi/fapiReturnCode.H b/src/include/usr/hwpf/fapi/fapiReturnCode.H
index 2986412d3..957aee200 100644
--- a/src/include/usr/hwpf/fapi/fapiReturnCode.H
+++ b/src/include/usr/hwpf/fapi/fapiReturnCode.H
@@ -48,6 +48,7 @@
* mjjones 03/22/2013 Support Procedure Callouts
* mjjones 05/20/2013 Support Bus Callouts
* mjjones 06/06/2013 Check FFDC size at compile time
+ * mjjones 06/24/2013 Support Children CDGs
*/
#ifndef FAPIRETURNCODE_H_
@@ -284,6 +285,7 @@ public:
EI_TYPE_PROCEDURE_CALLOUT = 2,
EI_TYPE_BUS_CALLOUT = 3,
EI_TYPE_CDG = 4, // Target Callout/Deconfig/GARD
+ EI_TYPE_CHILDREN_CDG = 5, // Children Callout/Deconfig/GARD
};
/**
@@ -325,6 +327,16 @@ public:
uint8_t iv_gard;
uint8_t iv_calloutPriority;
} target_cdg;
+
+ struct
+ {
+ uint8_t iv_parentChipObjIndex;
+ uint8_t iv_callout;
+ uint8_t iv_deconfigure;
+ uint32_t iv_childType;
+ uint8_t iv_gard;
+ uint8_t iv_calloutPriority;
+ } children_cdg;
};
};
@@ -448,6 +460,27 @@ private:
const bool i_gard,
const CalloutPriorities::CalloutPriority i_priority);
+ /**
+ * @brief Add children target callout/deconfigure/GARDs to the ErrorInfo
+ *
+ * This is called by addErrorInfo to c/d/g all child Targets of a specified
+ * type.
+ *
+ * @param[in] i_parentChip Reference to the parent chip
+ * @param[in] i_childType Child target types to c/d/g
+ * @param[in] i_callout True if Target should be called out
+ * @param[in] i_deconfigure True if Target should be deconfigured
+ * @param[in] i_gard True if Target should be GARDed
+ * @param[in] i_priority The priority of any callout
+ */
+ void addEIChildrenCdg(
+ const Target & i_parentChip,
+ const TargetType i_childType,
+ const bool i_callout,
+ const bool i_deconfigure,
+ const bool i_gard,
+ const CalloutPriorities::CalloutPriority i_priority);
+
// The rcValue
uint32_t iv_rcValue;
OpenPOWER on IntegriCloud