diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/usr/sbe/sbe_update.H | 12 | ||||
-rw-r--r-- | src/include/usr/sbe/sbeif.H | 12 | ||||
-rw-r--r-- | src/include/usr/sbeio/sbeioreasoncodes.H | 6 |
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, |