From 0c77c1149543e775fe0168e9e99947a33d16f6d3 Mon Sep 17 00:00:00 2001 From: Mike Jones Date: Tue, 25 Feb 2014 11:31:25 -0600 Subject: 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 Reviewed-by: William H. Schwartz Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III --- src/include/usr/hwpf/fapi/fapiErrorInfo.H | 35 ++++++++++++++-------- src/include/usr/hwpf/fapi/fapiTarget.H | 48 ++++++++++++++++++++++++++++--- 2 files changed, 67 insertions(+), 16 deletions(-) (limited to 'src/include/usr') 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_ @@ -198,12 +200,33 @@ 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 -- cgit v1.2.1