diff options
Diffstat (limited to 'src/usr/sbe')
| -rw-r--r-- | src/usr/sbe/sbe_update.C | 17 | 
1 files changed, 17 insertions, 0 deletions
diff --git a/src/usr/sbe/sbe_update.C b/src/usr/sbe/sbe_update.C index 4ec16a3eb..c5c771a01 100644 --- a/src/usr/sbe/sbe_update.C +++ b/src/usr/sbe/sbe_update.C @@ -116,6 +116,7 @@ namespace SBE              (void) tS.getTopLevelTarget( sys );              assert(sys, "updateProcessorSbeSeeproms() system target is NULL"); +            // @todo RTC 97441 - remove this check              if ( sys->getAttr<ATTR_ISTEP_MODE>() &&     // true => istep mode                   INITSERVICE::spBaseServicesEnabled() ) // true => FSP present              { @@ -124,6 +125,22 @@ namespace SBE                  break;              } +            /*****************************************************************/ +            /* Skip Update if MNFG_FLAG_FSP_UPDATE_SBE_IMAGE is set          */ +            /* AND there is a FSP present                                    */ +            /*****************************************************************/ +            ATTR_MNFG_FLAGS_type mnfg_flags = sys->getAttr<ATTR_MNFG_FLAGS>(); +            if ( (mnfg_flags & MNFG_FLAG_FSP_UPDATE_SBE_IMAGE) +                 && INITSERVICE::spBaseServicesEnabled() // true => FSP present +               ) +            { +                TRACFCOMP( g_trac_sbe, INFO_MRK"SBE Update skipped due to " +                           "FSP present and MNFG_FLAG_FSP_UPDATE_SBE_IMAGE " +                           "(0x%.16X) is set in MNFG Flags 0x%.16X", +                           MNFG_FLAG_FSP_UPDATE_SBE_IMAGE, mnfg_flags); +                break; +            } +              //Make sure procedure constants keep within expected range.              assert((FIXED_SEEPROM_WORK_SPACE <= VMM_SBE_UPDATE_SIZE/2),                     "updateProcessorSbeSeeproms() FIXED_SEEPROM_WORK_SPACE "  | 

