diff options
author | Roland Veloz <rveloz@us.ibm.com> | 2018-03-06 16:41:52 -0600 |
---|---|---|
committer | William G. Hoffa <wghoffa@us.ibm.com> | 2018-03-12 14:22:13 -0400 |
commit | 5a9355062b71a808cb5e1190348933f3bf98e973 (patch) | |
tree | fb9da15c6df32c95ff0ef8624ad154ffab2e6fb4 /src | |
parent | 0b02cc8314bebe97354a57614fa5464ec931363e (diff) | |
download | blackbird-hostboot-5a9355062b71a808cb5e1190348933f3bf98e973.tar.gz blackbird-hostboot-5a9355062b71a808cb5e1190348933f3bf98e973.zip |
Created individual update flags for both SEEPROM 0 and SEEPROM 1
I created individual update flags for both SEEPROM 0 and SEEPROM 1
to better target which seeprom to update. Now SEEPROM 0 or SEEPROM
1 or both can be singled out for update(s).
Change-Id: I91f1b66f6a1f2e42d37173fb9e21f87e440d3a21
RTC: 189218
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/55173
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
CI-Ready: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/include/usr/sbe/sbe_common.H | 14 | ||||
-rw-r--r-- | src/usr/sbe/sbe_update.C | 14 |
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)) |