summaryrefslogtreecommitdiffstats
path: root/src/usr/sbe
diff options
context:
space:
mode:
authorJaymes Wilks <mjwilks@us.ibm.com>2018-06-14 09:26:30 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-06-28 22:47:58 -0400
commitef1e2276640040b2bbf187a1d85c8bd6929f4d56 (patch)
treea34b2c4d647e3f047a8fed78f30596b548edbcb2 /src/usr/sbe
parentcf258fcfb753bafcfac0659ded5f312c793d047d (diff)
downloadtalos-hostboot-ef1e2276640040b2bbf187a1d85c8bd6929f4d56.tar.gz
talos-hostboot-ef1e2276640040b2bbf187a1d85c8bd6929f4d56.zip
In non-MNFG, only match SBE keys for the sides that boot
FSP was not IPL'ing from SBE side 1 when production key is corrupt in SEEPROM of SBE side 0 (due to the key mismatch check). This change gets around that by only matching SBE keys for the sides that booted in non-MNFG case. Change-Id: I1dfcb5c7f7e281125fdbcfc8b8f3a84747c90f59 CQ:SW420430 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/60571 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com> Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com> Reviewed-by: ILYA SMIRNOV <ismirno@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/sbe')
-rw-r--r--src/usr/sbe/sbe_update.C14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/usr/sbe/sbe_update.C b/src/usr/sbe/sbe_update.C
index c930706cc..63c8c458e 100644
--- a/src/usr/sbe/sbe_update.C
+++ b/src/usr/sbe/sbe_update.C
@@ -1624,7 +1624,8 @@ namespace SBE
/////////////////////////////////////////////////////////////////////
errlHndl_t getSbeBootSeeprom(TARGETING::Target* i_target,
- sbeSeepromSide_t& o_bootSide)
+ sbeSeepromSide_t& o_bootSide,
+ const bool i_failoverToMaster)
{
TRACFCOMP( g_trac_sbe, ENTER_MRK"getSbeBootSeeprom()" );
@@ -1635,15 +1636,22 @@ namespace SBE
o_bootSide = SBE_SEEPROM_INVALID;
do{
+ assert(i_target != nullptr,"Bug! Attempting to get the boot seeprom of a null target.");
- TARGETING::Target * l_target=i_target;
+ TARGETING::Target * l_target=i_target;
// Get the Master Proc Chip Target for comparisons later
TargetService& tS = targetService();
err = tS.queryMasterProcChipTargetHandle(
masterProcChipTargetHandle);
- if( (i_target != masterProcChipTargetHandle) &&
+ if ( err )
+ {
+ break;
+ }
+
+ if( i_failoverToMaster &&
+ (i_target != masterProcChipTargetHandle) &&
!(i_target->getAttr<ATTR_SBE_IS_STARTED>()) )
{
l_target=masterProcChipTargetHandle;
OpenPOWER on IntegriCloud