summaryrefslogtreecommitdiffstats
path: root/src/usr/sbe/sbe_update.H
diff options
context:
space:
mode:
authorMike Baiocchi <baiocchi@us.ibm.com>2014-04-30 19:44:54 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-05-21 13:53:09 -0500
commitabc6a385d2f8b14d6f32a663712bea4bdd66ca77 (patch)
treeb8acf82d44169e94091d68a019a76900e7ede02e /src/usr/sbe/sbe_update.H
parent4152092c4bbfab316610e8b91e1bb5cd75e8f0a1 (diff)
downloadtalos-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.H33
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
OpenPOWER on IntegriCloud