summaryrefslogtreecommitdiffstats
path: root/src/import/hwpf/fapi2/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/hwpf/fapi2/include')
-rw-r--r--src/import/hwpf/fapi2/include/error_info.H8
-rw-r--r--src/import/hwpf/fapi2/include/error_info_defs.H23
-rw-r--r--src/import/hwpf/fapi2/include/fapi2_hw_access.H3
-rw-r--r--src/import/hwpf/fapi2/include/target_types.H96
-rw-r--r--src/import/hwpf/fapi2/include/variable_buffer.H4
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)
OpenPOWER on IntegriCloud