diff options
Diffstat (limited to 'src/usr')
-rw-r--r-- | src/usr/isteps/istep08/call_proc_check_slave_sbe_seeprom_complete.C | 3 | ||||
-rw-r--r-- | src/usr/sbe/sbe_update.C | 4 | ||||
-rw-r--r-- | src/usr/targeting/common/xmltohb/attribute_types.xml | 20 | ||||
-rwxr-xr-x | src/usr/targeting/common/xmltohb/target_types.xml | 1 | ||||
-rwxr-xr-x | src/usr/targeting/targetservicestart.C | 6 |
5 files changed, 32 insertions, 2 deletions
diff --git a/src/usr/isteps/istep08/call_proc_check_slave_sbe_seeprom_complete.C b/src/usr/isteps/istep08/call_proc_check_slave_sbe_seeprom_complete.C index ad29589ad..7e63e3508 100644 --- a/src/usr/isteps/istep08/call_proc_check_slave_sbe_seeprom_complete.C +++ b/src/usr/isteps/istep08/call_proc_check_slave_sbe_seeprom_complete.C @@ -225,6 +225,9 @@ void* call_proc_check_slave_sbe_seeprom_complete( void *io_pArgs ) // No error and still functional else if(l_cpu_target->getAttr<ATTR_HWAS_STATE>().functional) { + // Set attribute indicating that SBE is started + l_cpu_target->setAttr<ATTR_SBE_IS_STARTED>(1); + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "SUCCESS : proc_check_slave_sbe_seeprom_complete" " completed ok for proc 0x%.8X", diff --git a/src/usr/sbe/sbe_update.C b/src/usr/sbe/sbe_update.C index 69ffaec84..c85d9e7e4 100644 --- a/src/usr/sbe/sbe_update.C +++ b/src/usr/sbe/sbe_update.C @@ -1741,7 +1741,9 @@ namespace SBE TargetService& tS = targetService(); err = tS.queryMasterProcChipTargetHandle( masterProcChipTargetHandle); - if ( i_target != masterProcChipTargetHandle ) + + if( (i_target != masterProcChipTargetHandle) && + !(i_target->getAttr<ATTR_SBE_IS_STARTED>()) ) { l_target=masterProcChipTargetHandle; TRACFCOMP( g_trac_sbe, INFO_MRK"getSbeBootSeeprom() " diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml index 9b74f0856..e5f6cc6ea 100644 --- a/src/usr/targeting/common/xmltohb/attribute_types.xml +++ b/src/usr/targeting/common/xmltohb/attribute_types.xml @@ -22925,6 +22925,26 @@ Measured in GB</description> </attribute> <attribute> + <id>SBE_IS_STARTED</id> + <description> + If 0, SBE for the processor has not been started. + Otherwise, SBE for the processor has been started. + </description> + <simpleType> + <uint8_t> + <default>0</default> + </uint8_t> + </simpleType> + <persistency>volatile-zeroed</persistency> + <readable/> + <writeable/> + <hwpfToHbAttrMap> + <id>ATTR_SBE_IS_STARTED</id> + <macro>DIRECT</macro> + </hwpfToHbAttrMap> +</attribute> + +<attribute> <id>PROC_FABRIC_CORE_FLOOR_RATIO</id> <description> Processor SMP core floor/nest frequency ratio diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml index 016081c89..86b0c37cd 100755 --- a/src/usr/targeting/common/xmltohb/target_types.xml +++ b/src/usr/targeting/common/xmltohb/target_types.xml @@ -1141,6 +1141,7 @@ <attribute><id>IO_FILTER_BYPASS</id></attribute> <attribute><id>DUMP_STOP_INFO_SUPPRESS_ERROR_TRACE</id></attribute> <attribute><id>DUMP_STOP_INFO_ENABLE_ERRORLOG</id></attribute> + <attribute><id>SBE_IS_STARTED</id></attribute> <!-- Processor characteristics for HDAT --> <attribute> diff --git a/src/usr/targeting/targetservicestart.C b/src/usr/targeting/targetservicestart.C index 89874132b..a80d2a965 100755 --- a/src/usr/targeting/targetservicestart.C +++ b/src/usr/targeting/targetservicestart.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2016 */ +/* Contributors Listed Below - COPYRIGHT 2012,2017 */ /* [+] Google Inc. */ /* [+] International Business Machines Corp. */ /* */ @@ -276,6 +276,10 @@ static void initializeAttributes(TargetService& i_targetService, l_pMasterProcChip->setAttr<ATTR_I2C_SWITCHES>(l_i2c_switches); + // Master has SBE started + l_pMasterProcChip->setAttr<ATTR_SBE_IS_STARTED>(1); + + l_pTopLevel->setAttr<ATTR_MASTER_MBOX_SCRATCH>(i_masterScratch); // Targeting data defaults to non istep, only turn "on" if bit |