summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/isteps/istep16/call_host_activate_master.C15
-rw-r--r--src/usr/targeting/common/util.C34
-rw-r--r--src/usr/targeting/common/xmltohb/attribute_types.xml32
-rwxr-xr-xsrc/usr/targeting/common/xmltohb/target_types.xml4
-rw-r--r--src/usr/targeting/common/xmltohb/vbu_NAPLES.system.xml1
5 files changed, 80 insertions, 6 deletions
diff --git a/src/usr/isteps/istep16/call_host_activate_master.C b/src/usr/isteps/istep16/call_host_activate_master.C
index a08f942f8..64dd4d71e 100644
--- a/src/usr/isteps/istep16/call_host_activate_master.C
+++ b/src/usr/isteps/istep16/call_host_activate_master.C
@@ -66,7 +66,6 @@ namespace ISTEP_16
void* call_host_activate_master (void *io_pArgs)
{
IStepError l_stepError;
-#if 0
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"call_host_activate_master entry" );
@@ -77,6 +76,7 @@ void* call_host_activate_master (void *io_pArgs)
do {
+#if 0
// find the master core, i.e. the one we are running on
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"call_host_activate_master: Find master core: " );
@@ -205,6 +205,7 @@ void* call_host_activate_master (void *io_pArgs)
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"Disable special wakeup on master core SUCCESS");
}
+#endif
// put the master into winkle.
@@ -213,8 +214,9 @@ void* call_host_activate_master (void *io_pArgs)
// Flush any lingering console traces first
CONSOLE::flush();
+ bool l_fusedCores = is_fused_mode();
- int l_rc = cpu_master_winkle( );
+ int l_rc = cpu_master_winkle(l_fusedCores);
if ( l_rc )
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
@@ -226,15 +228,15 @@ void* call_host_activate_master (void *io_pArgs)
* @severity ERRORLOG::ERRL_SEV_UNRECOVERABLE
* @moduleid ISTEP_HOST_ACTIVATE_MASTER
* @userdata1 return code from cpu_master_winkle
+ * @userdata2 Fused core indicator
*
- * @devdesc p8_pore_gen_cpureg returned an error when
- * attempting to change a reg value in the PORE image.
+ * @devdesc cpu_master_winkle returned an error
*/
l_errl =
new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE,
ISTEP_HOST_ACTIVATE_MASTER,
ISTEP_FAIL_MASTER_WINKLE_RC,
- l_rc );
+ l_rc, l_fusedCores );
break;
}
@@ -245,6 +247,7 @@ void* call_host_activate_master (void *io_pArgs)
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"Returned from Winkle." );
+#if (0)
//Re-enable the mailbox
l_errl = MBOX::resume();
if (l_errl)
@@ -315,6 +318,7 @@ void* call_host_activate_master (void *io_pArgs)
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"Enable special wakeup on master core SUCCESS");
}
+#endif
} while ( 0 );
@@ -330,7 +334,6 @@ void* call_host_activate_master (void *io_pArgs)
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"call_host_activate_master exit" );
-#endif
// end task, returning any errorlogs to IStepDisp
return l_stepError.getErrorHandle();
diff --git a/src/usr/targeting/common/util.C b/src/usr/targeting/common/util.C
index b44b820a8..dd4a7082d 100644
--- a/src/usr/targeting/common/util.C
+++ b/src/usr/targeting/common/util.C
@@ -310,4 +310,38 @@ bool orderByNodeAndPosition( Target* i_firstProc,
return nodeId0 < nodeId1;
}
+uint8_t is_fused_mode( )
+{
+ uint8_t l_fused;
+ TARGETING::Target * sys = NULL;
+ TARGETING::targetService().getTopLevelTarget( sys );
+ assert(sys != NULL);
+ TARGETING::PAYLOAD_KIND l_payload = sys->getAttr<ATTR_PAYLOAD_KIND>();
+ uint8_t l_attrValue = sys->getAttr<ATTR_FUSED_CORE_OPTION>();
+
+
+ if (FUSED_CORE_OPTION_USING_DEFAULT_CORES == l_attrValue)
+ {
+ // if payload is PHYP, use FUSED mode
+ // Anything else, use NORMAL mode
+ if (PAYLOAD_KIND_PHYP == l_payload)
+ {
+ l_fused = true;
+ }
+ else
+ {
+ l_fused = false;
+ }
+ }
+ else
+ {
+ l_fused = (l_attrValue == FUSED_CORE_OPTION_USING_NORMAL_CORES) ?
+ false : true;
+ }
+
+
+ return(l_fused);
+
+} // end is_fused_mode
+
}
diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml
index 0aedf3831..748ea9b03 100644
--- a/src/usr/targeting/common/xmltohb/attribute_types.xml
+++ b/src/usr/targeting/common/xmltohb/attribute_types.xml
@@ -16962,4 +16962,36 @@ firmware notes: Platforms should initialize this attribute to AUTO (0)</descript
<readable/>
</attribute>
+<enumerationType>
+ <id>FUSED_CORE_OPTION</id>
+ <description>Enum for FUSED_CORE_OPTION</description>
+ <enumerator>
+ <name>USING_DEFAULT_CORES</name>
+ <value>0</value>
+ </enumerator>
+ <enumerator>
+ <name>USING_NORMAL_CORES</name>
+ <value>1</value>
+ </enumerator>
+ <enumerator>
+ <name>USING_FUSED_CORES</name>
+ <value>2</value>
+ </enumerator>
+</enumerationType>
+
+<attribute>
+ <id>FUSED_CORE_OPTION</id>
+ <description>
+ If not loading PHYP or OPAL, then use this to
+ decide whether to use FUSED cores or NOT.
+ </description>
+ <simpleType>
+ <uint8_t>
+ </uint8_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
</attributes>
diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
index ab45e631e..1bb969172 100755
--- a/src/usr/targeting/common/xmltohb/target_types.xml
+++ b/src/usr/targeting/common/xmltohb/target_types.xml
@@ -311,6 +311,8 @@
<attribute><id>SBE_MASTER_INTR_SERVICE_DELAY_US</id></attribute>
<attribute><id>CLEAR_DIMM_SPD_ENABLE</id></attribute>
<attribute><id>MRW_MCS_PREFETCH_RETRY_THRESHOLD</id></attribute>
+ <!-- AVP override for fused cores or normal cores -->
+ <attribute><id>FUSED_CORE_OPTION</id></attribute>
</targetType>
<targetType>
@@ -1987,6 +1989,8 @@
<attribute><id>DO_ABUS_DECONFIG</id></attribute>
<attribute><id>PLCK_IPL_ATTR_OVERRIDES_EXIST</id></attribute>
<attribute><id>PAYLOAD_IN_MIRROR_MEM</id></attribute>
+ <!-- AVP override for fused cores or normal cores -->
+ <attribute><id>FUSED_CORE_OPTION</id></attribute>
</targetType>
<!-- enc-node-power9 -->
diff --git a/src/usr/targeting/common/xmltohb/vbu_NAPLES.system.xml b/src/usr/targeting/common/xmltohb/vbu_NAPLES.system.xml
index 14263aa79..aee1b5e93 100644
--- a/src/usr/targeting/common/xmltohb/vbu_NAPLES.system.xml
+++ b/src/usr/targeting/common/xmltohb/vbu_NAPLES.system.xml
@@ -299,6 +299,7 @@
<id>MRW_MBA_CACHELINE_INTERLEAVE_MODE_CONTROL</id>
<default>1</default>
</attribute>
+
</targetInstance>
<!-- System node 0 -->
OpenPOWER on IntegriCloud