summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/usr/sbe/sbe_update.H12
-rw-r--r--src/include/usr/sbe/sbeif.H12
-rw-r--r--src/include/usr/sbeio/sbeioreasoncodes.H6
3 files changed, 26 insertions, 4 deletions
diff --git a/src/include/usr/sbe/sbe_update.H b/src/include/usr/sbe/sbe_update.H
index d907e57c9..f4dc648b7 100644
--- a/src/include/usr/sbe/sbe_update.H
+++ b/src/include/usr/sbe/sbe_update.H
@@ -541,6 +541,18 @@ namespace SBE
const uint64_t i_boundary,
uint8_t* o_dst);
+ /**
+ * @brief Read the version of code found on each of the SBE's seeproms
+ * and store values in sbeTargetState_t type
+ *
+ * @param[in] io_sbeState Struct holding SBE related information
+ * @pre it is expected that the member 'target' in the
+ * sbeTargetState_t struct is set prior to calling this function
+ *
+ * @return errlHndl_t if error, nullptr if no error
+ */
+ errlHndl_t getSeepromVersions(sbeTargetState_t& io_sbeState);
+
/**
* @brief Removes ECC from a block of code or data. Removes padding at
diff --git a/src/include/usr/sbe/sbeif.H b/src/include/usr/sbe/sbeif.H
index 0a5985253..3f69d8ff1 100644
--- a/src/include/usr/sbe/sbeif.H
+++ b/src/include/usr/sbe/sbeif.H
@@ -136,6 +136,18 @@ namespace SBE
SHA512_t o_hash,
const void * i_image_ptr = nullptr);
+ /**
+ * @brief Loop through all active processor targets and compare both sides of
+ * the processor's SBE's seeprom versions. Mark down in the attribute
+ * ATTR_HB_SBE_SEEPROM_VERSION_MATCH whether or not the versions match.
+ * This value is used later on to determine if it is safe to switch
+ * seeprom sides in the event that we attempt to recover the SBE from
+ * a failed state.
+ *
+ * @return errlHndl_t Error log handle on failure; otherwise nullptr
+ */
+ errlHndl_t querySbeSeepromVersions();
+
} //end namespace SBE
#endif /* _SBEIF_H */
diff --git a/src/include/usr/sbeio/sbeioreasoncodes.H b/src/include/usr/sbeio/sbeioreasoncodes.H
index 0a911f151..44a493d35 100644
--- a/src/include/usr/sbeio/sbeioreasoncodes.H
+++ b/src/include/usr/sbeio/sbeioreasoncodes.H
@@ -129,13 +129,11 @@ enum sbeioReasonCode
SBEIO_EXCEED_MAX_SIDE_BOOTS = SBEIO_COMP_ID | 0x5D,
SBEIO_SLAVE_FAILED_TO_BOOT = SBEIO_COMP_ID | 0x5E,
SBEIO_RECEIVED_UNEXPECTED_MSG = SBEIO_COMP_ID | 0x5F,
-
- // SBE Vital Attention error codes
+ // SBE Vital Attention error code
SBEIO_SBE_RC_VALUE_INFO = SBEIO_COMP_ID | 0x60,
-
// Init error codes
SBEIO_RC_KERNEL_REG_FAILED = SBEIO_COMP_ID | 0x61,
-
+ SBEIO_SEEPROM_VERSION_MISMATCH = SBEIO_COMP_ID | 0x62,
// Remove once we collect the FFDC ourselves - @todo-RTC:144313
//termination_rc
SBEIO_HWSV_COLLECT_SBE_RC = SBEIO_COMP_ID | 0xFF,
OpenPOWER on IntegriCloud