summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/include/usr/sbe/sbe_common.H14
-rw-r--r--src/usr/sbe/sbe_update.C14
2 files changed, 20 insertions, 8 deletions
diff --git a/src/include/usr/sbe/sbe_common.H b/src/include/usr/sbe/sbe_common.H
index 9b631c53e..359335e66 100644
--- a/src/include/usr/sbe/sbe_common.H
+++ b/src/include/usr/sbe/sbe_common.H
@@ -113,10 +113,16 @@ namespace SBE
const uint8_t REIPL_SEEPROM_0_VALUE = 0x00;
const uint8_t REIPL_SEEPROM_1_VALUE = 0x40;
- // FORCE SEEPROM UPDATE FLAG - bit 2: 0x0 -> indicates do not force update
- const uint8_t FORCE_UPDATE_FLAG_MASK = 0x20;
- const uint8_t FORCE_UPDATE_SEEPROM_0_VALUE = 0x00;
- const uint8_t FORCE_UPDATE_SEEPROM_1_VALUE = 0x20;
+ // SEEPROM 0 FORCE UPDATE FLAG - bit 2: 0x0 -> indicates do not force update
+ const uint8_t SEEPROM_0_FORCE_UPDATE_MASK = 0x20;
+ const uint8_t SEEPROM_0_DO_NOT_FORCE_UPDATE = 0x00;
+ const uint8_t SEEPROM_0_FORCE_UPDATE = 0x20;
+
+ // SEEPROM 1 FORCE UPDATE FLAG - bit 3: 0x0 -> indicates do not force update
+ const uint8_t SEEPROM_1_FORCE_UPDATE_MASK = 0x10;
+ const uint8_t SEEPROM_1_DO_NOT_FORCE_UPDATE = 0x00;
+ const uint8_t SEEPROM_1_FORCE_UPDATE = 0x10;
+
/******************************************/
/* Structs */
diff --git a/src/usr/sbe/sbe_update.C b/src/usr/sbe/sbe_update.C
index cb76a1cc5..fc1708edf 100644
--- a/src/usr/sbe/sbe_update.C
+++ b/src/usr/sbe/sbe_update.C
@@ -240,7 +240,6 @@ namespace SBE
break;
}
-
// Get the Master Proc Chip Target for comparisons later
TARGETING::Target* masterProcChipTargetHandle = NULL;
err = tS.queryMasterProcChipTargetHandle(
@@ -355,11 +354,18 @@ namespace SBE
/**********************************************/
/* Perform Update Actions For This Target */
/**********************************************/
- // Force an update if necessary
- if (sbeState.mvpdSbKeyword.flags & FORCE_UPDATE_FLAG_MASK)
+ // Force an update of SEEPROM 0 or SEEPROM 1 if SB keyword
+ // flags is requesting an update for that particular seeprom
+ if (((sbeState.seeprom_side_to_update == EEPROM::SBE_PRIMARY) &&
+ (sbeState.mvpdSbKeyword.flags & SEEPROM_0_FORCE_UPDATE_MASK)) ||
+ ((sbeState.seeprom_side_to_update == EEPROM::SBE_BACKUP) &&
+ (sbeState.mvpdSbKeyword.flags & SEEPROM_1_FORCE_UPDATE_MASK)))
{
+ // The DO_UPDATE flag alone might not be enough to
+ // force an update, setting UPDATE_SBE flag as well
+ // because I know that performUpdateActions checks that flag
sbeState.update_actions = static_cast<sbeUpdateActions_t>
- (sbeState.update_actions | DO_UPDATE);
+ (sbeState.update_actions | DO_UPDATE | UPDATE_SBE);
}
if ((err == NULL) && (sbeState.update_actions & DO_UPDATE))
OpenPOWER on IntegriCloud