diff options
Diffstat (limited to 'src/usr')
-rw-r--r-- | src/usr/isteps/istep16/call_host_activate_master.C | 15 | ||||
-rw-r--r-- | src/usr/targeting/common/util.C | 34 | ||||
-rw-r--r-- | src/usr/targeting/common/xmltohb/attribute_types.xml | 32 | ||||
-rwxr-xr-x | src/usr/targeting/common/xmltohb/target_types.xml | 4 | ||||
-rw-r--r-- | src/usr/targeting/common/xmltohb/vbu_NAPLES.system.xml | 1 |
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 --> |