From 4c3292e066ded88bb475db3339ae0b98c976768e Mon Sep 17 00:00:00 2001 From: Mike Jones Date: Tue, 25 Jun 2013 17:07:46 -0500 Subject: 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 --- src/include/usr/hwpf/fapi/fapiErrorInfo.H | 51 +++++++++++++++++++++++++++++- src/include/usr/hwpf/fapi/fapiReturnCode.H | 33 +++++++++++++++++++ 2 files changed, 83 insertions(+), 1 deletion(-) (limited to 'src/include/usr/hwpf') 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 @@ -235,6 +236,47 @@ struct ErrorInfoCDG bool iv_gard; }; +/** + * @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 * @@ -271,6 +313,13 @@ struct ErrorInfo std::vector iv_CDGs; typedef std::vector::iterator ErrorInfoCDGItr_t; typedef std::vector::const_iterator ErrorInfoCDGCItr_t; + + // Vector of children targets to callout/deconfigure/GARD + std::vector iv_childrenCDGs; + typedef std::vector::iterator + ErrorInfoChildrenCDGItr_t; + typedef std::vector::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; -- cgit v1.2.3