diff options
Diffstat (limited to 'src/import/hwpf/fapi2/include')
-rw-r--r-- | src/import/hwpf/fapi2/include/error_info.H | 8 | ||||
-rw-r--r-- | src/import/hwpf/fapi2/include/error_info_defs.H | 23 | ||||
-rw-r--r-- | src/import/hwpf/fapi2/include/fapi2_hw_access.H | 3 | ||||
-rw-r--r-- | src/import/hwpf/fapi2/include/target_types.H | 96 | ||||
-rw-r--r-- | src/import/hwpf/fapi2/include/variable_buffer.H | 4 |
5 files changed, 85 insertions, 49 deletions
diff --git a/src/import/hwpf/fapi2/include/error_info.H b/src/import/hwpf/fapi2/include/error_info.H index c6717a3bb..e67e376e0 100644 --- a/src/import/hwpf/fapi2/include/error_info.H +++ b/src/import/hwpf/fapi2/include/error_info.H @@ -311,12 +311,14 @@ struct ErrorInfoCDG /// @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_gardType Type of GARD /// ErrorInfoCDG(const Target<TARGET_TYPE_ALL>& i_target, const bool i_callout, const bool i_deconfigure, const bool i_gard, - const CalloutPriorities::CalloutPriority i_priority); + const CalloutPriorities::CalloutPriority i_priority, + const GardTypes::GardType i_gardType); #ifdef FAPI_CUSTOM_MALLOC /// @@ -348,6 +350,9 @@ struct ErrorInfoCDG // GARD Information bool iv_gard; + + // GARD Type + GardTypes::GardType iv_gardType; }; /// @@ -598,6 +603,7 @@ struct ErrorInfoEntryTargetCDG uint8_t iv_deconfigure; uint8_t iv_gard; uint8_t iv_calloutPriority; + uint8_t iv_gardType; void addErrorInfo(std::shared_ptr<ErrorInfo> i_info, const void* const* i_object) const; }; diff --git a/src/import/hwpf/fapi2/include/error_info_defs.H b/src/import/hwpf/fapi2/include/error_info_defs.H index 3f8fc9de6..bed1add8e 100644 --- a/src/import/hwpf/fapi2/include/error_info_defs.H +++ b/src/import/hwpf/fapi2/include/error_info_defs.H @@ -278,6 +278,29 @@ enum CollectTrace }; } +/// +/// @enum gardType +/// +/// This enumeration defines the possible gard types +/// NOTE:This gardType is same as the gard types defined in HWAS +/// so they should always be kept in sync. +/// +namespace GardTypes +{ +enum GardType +{ + GARD_NULL = 0x00, + GARD_User_Manual = 0xD2, //Manual Guard. + GARD_Unrecoverable = 0xE2, //TODO:RTC-76814 + GARD_Fatal = 0xE3, //IPL Failures, and others. + GARD_Predictive = 0xE6, //Policy flag to disable. + GARD_Power = 0xE9, //Needed since EID is NOT passed in. + GARD_PHYP = 0xEA, //Needed since EID is NOT passed in. + GARD_Reconfig = 0xEB, //Force deconfig on reconfig loop + GARD_Void = 0xFF, +}; +} + // @brief convert the processor relative sbe target instance into a fapi pos // // @param[in] i_targType - type of target from SBE FFDC buffer diff --git a/src/import/hwpf/fapi2/include/fapi2_hw_access.H b/src/import/hwpf/fapi2/include/fapi2_hw_access.H index 4c7142369..07bf77a08 100644 --- a/src/import/hwpf/fapi2/include/fapi2_hw_access.H +++ b/src/import/hwpf/fapi2/include/fapi2_hw_access.H @@ -91,6 +91,9 @@ inline OpModes getOpMode(void); /// result in error. /// i_mappings may contain an arbitrary amount of abstract/HW pairs, but the /// function may return an error if too many mappings are specified. +/// If the hardware supports a "broadcast" group, that must also be mapped +/// explicitly via this function - platforms are not expected to map the +/// broadcast group implicitly. template< MulticastType M, typename V > inline ReturnCode setMulticastGroupMap(const Target<TARGET_TYPE_PROC_CHIP, M, V>& i_chip, const std::vector< MulticastGroupMapping >& i_mappings); diff --git a/src/import/hwpf/fapi2/include/target_types.H b/src/import/hwpf/fapi2/include/target_types.H index 16d0f9305..0eccb41a1 100644 --- a/src/import/hwpf/fapi2/include/target_types.H +++ b/src/import/hwpf/fapi2/include/target_types.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2019 */ +/* Contributors Listed Below - COPYRIGHT 2015,2020 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -49,46 +49,48 @@ namespace fapi2 /// Target Kind enum TargetType : uint64_t { - TARGET_TYPE_NONE = 0x0000000000000000, ///< No type - TARGET_TYPE_SYSTEM = 0x0000000000000001, ///< System type - TARGET_TYPE_DIMM = 0x0000000000000002, ///< DIMM type - TARGET_TYPE_PROC_CHIP = 0x0000000000000004, ///< Processor type - TARGET_TYPE_MEMBUF_CHIP = 0x0000000000000008, ///< Membuf type - TARGET_TYPE_EX = 0x0000000000000010, ///< EX - 2x Core, L2, L3 - can be deconfigured - TARGET_TYPE_MBA = 0x0000000000000020, ///< MBA type - TARGET_TYPE_MCS = 0x0000000000000040, ///< MCS type - TARGET_TYPE_XBUS = 0x0000000000000080, ///< XBUS type - TARGET_TYPE_ABUS = 0x0000000000000100, ///< ABUS type - TARGET_TYPE_L4 = 0x0000000000000200, ///< L4 type - TARGET_TYPE_CORE = 0x0000000000000400, ///< Core - TARGET_TYPE_EQ = 0x0000000000000800, ///< EQ - 4x core, 2x L2, 2x L3 - can be deconfigured - TARGET_TYPE_MCA = 0x0000000000001000, ///< MCA type - TARGET_TYPE_MCBIST = 0x0000000000002000, ///< MCBIST type - TARGET_TYPE_MI = 0x0000000000004000, ///< MI Memory Interface (Cumulus) - TARGET_TYPE_CAPP = 0x0000000000008000, ///< CAPP target - TARGET_TYPE_DMI = 0x0000000000010000, ///< DMI type - TARGET_TYPE_OBUS = 0x0000000000020000, ///< OBUS type - TARGET_TYPE_OBUS_BRICK = 0x0000000000040000, ///< OBUS BRICK type - TARGET_TYPE_SBE = 0x0000000000080000, ///< SBE type - TARGET_TYPE_PPE = 0x0000000000100000, ///< PPE type - TARGET_TYPE_PERV = 0x0000000000200000, ///< Pervasive type - TARGET_TYPE_PEC = 0x0000000000400000, ///< PEC type - TARGET_TYPE_PHB = 0x0000000000800000, ///< PHB type - TARGET_TYPE_MC = 0x0000000001000000, ///< MC type - TARGET_TYPE_OMI = 0x0000000002000000, ///< OMI type - TARGET_TYPE_OMIC = 0x0000000004000000, ///< OMIC type - TARGET_TYPE_MCC = 0x0000000008000000, ///< MCC type - TARGET_TYPE_OCMB_CHIP = 0x0000000010000000, ///< OCMB type - TARGET_TYPE_MEM_PORT = 0x0000000020000000, ///< MEM_PORT type - TARGET_TYPE_NMMU = 0x0000000040000000, ///< NEST MMU type - TARGET_TYPE_RESERVED = 0x0000000080000000, ///< Reserved for Cronus (Z) - TARGET_TYPE_PAU = 0x0000000100000000, ///< PAU type - TARGET_TYPE_IOHS = 0x0000000200000000, ///< IOHS type - TARGET_TYPE_FC = 0x0000000400000000, ///< Fused Core type - TARGET_TYPE_PMIC = 0x0000000800000000, ///< PMIC type - TARGET_TYPE_MULTICAST = 0x8000000000000000, ///< MULTICAST type - TARGET_TYPE_ALL = 0x7FFFFFFFFFFFFFFF, ///< Any/All types - TARGET_TYPE_ALL_MC = 0xFFFFFFFFFFFFFFFF, ///< Any/All types + Multicast + TARGET_TYPE_NONE = 0x0000000000000000, ///< No type + TARGET_TYPE_SYSTEM = 0x0000000000000001, ///< System type + TARGET_TYPE_DIMM = 0x0000000000000002, ///< DIMM type + TARGET_TYPE_PROC_CHIP = 0x0000000000000004, ///< Processor type + TARGET_TYPE_MEMBUF_CHIP = 0x0000000000000008, ///< Membuf type + TARGET_TYPE_EX = 0x0000000000000010, ///< EX - 2x Core, L2, L3 - can be deconfigured + TARGET_TYPE_MBA = 0x0000000000000020, ///< MBA type + TARGET_TYPE_MCS = 0x0000000000000040, ///< MCS type + TARGET_TYPE_XBUS = 0x0000000000000080, ///< XBUS type + TARGET_TYPE_ABUS = 0x0000000000000100, ///< ABUS type + TARGET_TYPE_L4 = 0x0000000000000200, ///< L4 type + TARGET_TYPE_CORE = 0x0000000000000400, ///< Core + TARGET_TYPE_EQ = 0x0000000000000800, ///< EQ - 4x core, 2x L2, 2x L3 - can be deconfigured + TARGET_TYPE_MCA = 0x0000000000001000, ///< MCA type + TARGET_TYPE_MCBIST = 0x0000000000002000, ///< MCBIST type + TARGET_TYPE_MI = 0x0000000000004000, ///< MI Memory Interface (Cumulus) + TARGET_TYPE_CAPP = 0x0000000000008000, ///< CAPP target + TARGET_TYPE_DMI = 0x0000000000010000, ///< DMI type + TARGET_TYPE_OBUS = 0x0000000000020000, ///< OBUS type + TARGET_TYPE_OBUS_BRICK = 0x0000000000040000, ///< OBUS BRICK type + TARGET_TYPE_SBE = 0x0000000000080000, ///< SBE type + TARGET_TYPE_PPE = 0x0000000000100000, ///< PPE type + TARGET_TYPE_PERV = 0x0000000000200000, ///< Pervasive type + TARGET_TYPE_PEC = 0x0000000000400000, ///< PEC type + TARGET_TYPE_PHB = 0x0000000000800000, ///< PHB type + TARGET_TYPE_MC = 0x0000000001000000, ///< MC type + TARGET_TYPE_OMI = 0x0000000002000000, ///< OMI type + TARGET_TYPE_OMIC = 0x0000000004000000, ///< OMIC type + TARGET_TYPE_MCC = 0x0000000008000000, ///< MCC type + TARGET_TYPE_OCMB_CHIP = 0x0000000010000000, ///< OCMB type + TARGET_TYPE_MEM_PORT = 0x0000000020000000, ///< MEM_PORT type + TARGET_TYPE_NMMU = 0x0000000040000000, ///< NEST MMU type + TARGET_TYPE_RESERVED = 0x0000000080000000, ///< Reserved for Cronus (Z) + TARGET_TYPE_PAU = 0x0000000100000000, ///< PAU type + TARGET_TYPE_IOHS = 0x0000000200000000, ///< IOHS type + TARGET_TYPE_FC = 0x0000000400000000, ///< Fused Core type + TARGET_TYPE_PMIC = 0x0000000800000000, ///< PMIC type + TARGET_TYPE_PAUC = 0x0000001000000000, ///< PAUC type + TARGET_TYPE_GENERICI2CSLAVE = 0x0000002000000000, ///< GENERICI2CSLAVE type + TARGET_TYPE_MULTICAST = 0x8000000000000000, ///< MULTICAST type + TARGET_TYPE_ALL = 0x7FFFFFFFFFFFFFFF, ///< Any/All types + TARGET_TYPE_ALL_MC = 0xFFFFFFFFFFFFFFFF, ///< Any/All types + Multicast // Compound target types TARGET_TYPE_CHIPS = TARGET_TYPE_PROC_CHIP | @@ -122,14 +124,16 @@ enum TargetType : uint64_t TARGET_TYPE_NMMU | TARGET_TYPE_PAU | TARGET_TYPE_IOHS | - TARGET_TYPE_FC, + TARGET_TYPE_FC | + TARGET_TYPE_PAUC, TARGET_TYPE_MULTICASTABLE = TARGET_TYPE_CORE | TARGET_TYPE_EQ | - TARGET_TYPE_MCBIST | - TARGET_TYPE_OBUS | - TARGET_TYPE_PERV | - TARGET_TYPE_PEC, + TARGET_TYPE_IOHS | + TARGET_TYPE_MC | + TARGET_TYPE_PAUC | + TARGET_TYPE_PEC | + TARGET_TYPE_PERV, // Mappings to target types found in the error xml files TARGET_TYPE_EX_CHIPLET = TARGET_TYPE_EX, diff --git a/src/import/hwpf/fapi2/include/variable_buffer.H b/src/import/hwpf/fapi2/include/variable_buffer.H index 0c1414486..5b31937d4 100644 --- a/src/import/hwpf/fapi2/include/variable_buffer.H +++ b/src/import/hwpf/fapi2/include/variable_buffer.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -475,7 +475,7 @@ class variable_buffer /// inline fapi2::ReturnCodes flipBit( bits_type SB, bits_type L = 1) { - ReturnCodes rc; + ReturnCodes rc = FAPI2_RC_SUCCESS; // make sure we are within our container if((SB + L) <= this->iv_perceived_bit_length) |