diff options
author | Mike Baiocchi <baiocchi@us.ibm.com> | 2014-04-30 19:44:54 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-05-21 13:53:09 -0500 |
commit | abc6a385d2f8b14d6f32a663712bea4bdd66ca77 (patch) | |
tree | b8acf82d44169e94091d68a019a76900e7ede02e /src/usr/sbe/sbe_update.H | |
parent | 4152092c4bbfab316610e8b91e1bb5cd75e8f0a1 (diff) | |
download | talos-hostboot-abc6a385d2f8b14d6f32a663712bea4bdd66ca77.tar.gz talos-hostboot-abc6a385d2f8b14d6f32a663712bea4bdd66ca77.zip |
SBE Update ensures all processors have Master Processor's SBE Level
A function was added at the very end of the SBE Update procedure to
ensure that any processor continuing with the IPL has the same SBE
Image level as the Master Processor. Any processor that had an
error during the update process is also deconfigured since we can't
trust its SBE Image level.
Change-Id: Id6dd46ca71ad97ca9f0e6ba30110ea400102a3b4
RTC: 101539
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10868
Tested-by: Jenkins Server
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/sbe/sbe_update.H')
-rw-r--r-- | src/usr/sbe/sbe_update.H | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/src/usr/sbe/sbe_update.H b/src/usr/sbe/sbe_update.H index 3d9364333..a760f3443 100644 --- a/src/usr/sbe/sbe_update.H +++ b/src/usr/sbe/sbe_update.H @@ -222,6 +222,18 @@ namespace SBE sbeSeepromVersionInfo_t new_seeprom_ver; bool new_readBack_check; + uint32_t err_plid; + uint32_t err_eid; + uint16_t err_rc; + + // Constructor to default certain values + sbeTargetState_t() : + target(NULL), target_is_master(false), ec(0x0), + seeprom_0_ver_ECC_fail(false), seeprom_1_ver_ECC_fail(false), + customizedImage_size(0x0), customizedImage_crc(0x0), + new_readBack_check(false), + err_plid(0x0), err_eid(0x0), err_rc(0x0) + {}; }; @@ -361,7 +373,7 @@ namespace SBE * * @return errlHndl_t Error log handle on failure. */ - errlHndl_t updateSeepromSide(sbeTargetState_t i_sbeState); + errlHndl_t updateSeepromSide(sbeTargetState_t& io_sbeState); /** * @brief Check and Update all targets before Re-IPL Request @@ -394,10 +406,23 @@ namespace SBE * @param[in] i_system_situation SBE Situation of the target that requires * analysis to determine Update Actions * - * @return void + * @return errlHndl_t Error log handle on failure. + */ + errlHndl_t decisionTreeForUpdates(sbeTargetState_t& io_sbeState, + uint8_t i_system_situation); + + /** + * @brief Deconfigures any Targets whose version does not match the + * Master Target's Version + * + * @pre All planned updates must have been completed + * + * @param[io/out] io_sbeStates_v Vector of SBE State structs + * + * @return errlHndl_t Error log handle on failure. */ - void decisionTreeForUpdates(sbeTargetState_t& io_sbeState, - uint8_t i_system_situation); + errlHndl_t masterVersionCompare( + std::vector<sbeTargetState_t>& io_sbeStates_v); /** * @brief Creates the memory space needed for SBE Image Customization |