summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/isteps/istep08/call_proc_check_slave_sbe_seeprom_complete.C3
-rw-r--r--src/usr/sbe/sbe_update.C4
-rw-r--r--src/usr/targeting/common/xmltohb/attribute_types.xml20
-rwxr-xr-xsrc/usr/targeting/common/xmltohb/target_types.xml1
-rwxr-xr-xsrc/usr/targeting/targetservicestart.C6
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
OpenPOWER on IntegriCloud