summaryrefslogtreecommitdiffstats
path: root/src/include/usr
diff options
context:
space:
mode:
authorMike Jones <mjjones@us.ibm.com>2014-02-25 11:31:25 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-02-27 14:20:37 -0600
commit0c77c1149543e775fe0168e9e99947a33d16f6d3 (patch)
tree344b8f9d969db69c3b6fd660286df263b41365bc /src/include/usr
parentcfb19f068394a358ce21fa3976d0aca834bb3030 (diff)
downloadtalos-hostboot-0c77c1149543e775fe0168e9e99947a33d16f6d3.tar.gz
talos-hostboot-0c77c1149543e775fe0168e9e99947a33d16f6d3.zip
Extend FAPI Error XML to callout specific children by affinity and containment
Change-Id: Iedad86021ba4773b6cc0584dc2983b13b2b0af37 RTC: 98365 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/9141 Reviewed-by: STEPHEN M. CPREK <smcprek@us.ibm.com> Reviewed-by: William H. Schwartz <whs@us.ibm.com> Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r--src/include/usr/hwpf/fapi/fapiErrorInfo.H35
-rw-r--r--src/include/usr/hwpf/fapi/fapiTarget.H48
2 files changed, 67 insertions, 16 deletions
diff --git a/src/include/usr/hwpf/fapi/fapiErrorInfo.H b/src/include/usr/hwpf/fapi/fapiErrorInfo.H
index 23250aa51..b7818058b 100644
--- a/src/include/usr/hwpf/fapi/fapiErrorInfo.H
+++ b/src/include/usr/hwpf/fapi/fapiErrorInfo.H
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: fapiErrorInfo.H,v 1.11 2013/11/11 19:33:43 mjjones Exp $
+// $Id: fapiErrorInfo.H,v 1.12 2014/02/26 14:50:39 mjjones Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/hwpf/working/fapi/fapiErrorInfo.H,v $
/**
@@ -332,9 +332,7 @@ struct ErrorInfoBusCallout
// The callout priority
CalloutPriorities::CalloutPriority iv_calloutPriority;
};
-// defines used with MBA dimm callouts
-#define FAPI_ALL_MBA_PORTS 0xFF
-#define FAPI_ALL_MBA_DIMMS 0xFF
+
/**
* @struct ErrorInfoCDG
*
@@ -393,6 +391,17 @@ struct ErrorInfoCDG
* @struct ErrorInfoChildrenCDG
*
* This struct contains children targets to callout/deconfigure/GARD
+ *
+ * Children by containment can be CDG (chiplets belonging to a parent chip) e.g.
+ * - PROC_CHIP -> EX_CHIPLET
+ * - MEMBUF_CHIP -> MBA_CHIPLET
+ * Children by affinity can be CDG.
+ * Any from PROC_CHIP->MCS_CHIPLET->MEMBUF_CHIP->MBA_CHIPLET->DIMM e.g.
+ * - PROC_CHIP->MEMBUF_CHIP
+ * - MEMBUF_CHIP->DIMM
+ * - MBA_CHIPLET->DIMM
+ * Port and Number criteria can be applied to the child target as
+ * detailed in the constructor
*/
struct ErrorInfoChildrenCDG
{
@@ -405,12 +414,12 @@ struct ErrorInfoChildrenCDG
* @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
- * @param[in] i_childPort Parent port number where child is
- * connected
- * @param[in] i_childNum Chip number of child target
- *
- * @note i_childPort and i_childNum are valid only for MBA/DIMM
- * parent/child combination
+ * @param[in] i_childPort Child Port
+ * For DIMM children, the MBA port number
+ * @param[in] i_childNum Child Number
+ * For DIMM children, the dimm socket number
+ * For Chip children, the chip position
+ * For Chiplet children, the chiplet unit pos
*/
ErrorInfoChildrenCDG(const Target & i_parentChip,
const TargetType i_childType,
@@ -454,10 +463,12 @@ struct ErrorInfoChildrenCDG
// GARD Information
bool iv_gard;
- // For MBA/DIMM parent/child, the MBA port
+ // Child Port
+ static const uint8_t ALL_CHILD_PORTS = 0xff;
uint8_t iv_childPort;
- // For MBA/DIMM parent/child, the MBA dimm number
+ // Child Number
+ static const uint8_t ALL_CHILD_NUMBERS = 0xff;
uint8_t iv_childNumber;
};
diff --git a/src/include/usr/hwpf/fapi/fapiTarget.H b/src/include/usr/hwpf/fapi/fapiTarget.H
index b1c98efb0..ee5656d58 100644
--- a/src/include/usr/hwpf/fapi/fapiTarget.H
+++ b/src/include/usr/hwpf/fapi/fapiTarget.H
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: fapiTarget.H,v 1.8 2013/10/15 13:13:43 dcrowell Exp $
+// $Id: fapiTarget.H,v 1.9 2014/02/26 14:51:05 mjjones Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/hwpf/working/fapi/fapiTarget.H,v $
/**
@@ -42,6 +42,8 @@
* mjjones 02/07/2012 Remove MBS_CHIPLET
* Add XBUS_ENDPOINT ABUS_ENDPOINT
* mjjones 02/21/2012 Add high performance toEcmdString
+ * mjjones 02/24/2014 Add isChip/Chiplet using types
+ * Add isPhysParentChild
*/
#ifndef FAPITARGET_H_
@@ -199,11 +201,32 @@ public:
void setType(const TargetType i_type) { iv_type = i_type; }
/**
+ * @brief Returns if a target type is a chip
+ *
+ * @param[in] i_type Target Type
+ *
+ * @return boolean. true if chip else false
+ */
+ static bool isChip(const TargetType i_type);
+
+ /**
* @brief Returns if the target is a chip
*
- * @return boolean. true if chip else fase
+ * @return boolean. true if chip else false
+ */
+ bool isChip() const
+ {
+ return isChip(iv_type);
+ }
+
+ /**
+ * @brief Returns if a target type is a chiplet
+ *
+ * @param[in] i_type Target Type
+ *
+ * @return boolean. true if chip else false
*/
- bool isChip() const;
+ static bool isChiplet(const TargetType i_type);
/**
* @brief Returns if the target is a chiplet
@@ -212,7 +235,24 @@ public:
*
* @return boolean. true if chiplet else false
*/
- bool isChiplet() const;
+ bool isChiplet() const
+ {
+ return isChiplet(iv_type);
+ }
+
+ /**
+ * @brief Returns if a pair of target types is a physical parent/child
+ *
+ * This is true if the parent type is a chip and the child type is a
+ * chiplet that belongs to the chip (e.g. PROC_CHIP->EX_CHIPLET)
+ *
+ * @param[in] i_parentType Parent Target Type
+ * @param[in] i_childType Child Target Type
+ *
+ * @return boolean.
+ */
+ static bool isPhysParentChild(const TargetType i_parentType,
+ const TargetType i_childType);
/**
* @brief Convert a target to an ecmd-format target string
OpenPOWER on IntegriCloud