summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2018-02-15 10:41:31 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-02-16 20:22:29 -0500
commit35165b3476254ee9a6f95786b93e6425ed6482a2 (patch)
treeb660147a42574839bc32cdf8dcd4f99249a991a4 /src/usr/isteps
parent2d6ba11ae2fc6dd2aca923be277cb94ef7e95c92 (diff)
downloadtalos-hostboot-35165b3476254ee9a6f95786b93e6425ed6482a2.tar.gz
talos-hostboot-35165b3476254ee9a6f95786b93e6425ed6482a2.zip
Remove all explicit calls to special_wakeup from hostboot code
The only time that special wakeup should be called on the hostboot platform is when it is called by other HWPs. PM_RESET will only enable special wakeup if the SKIP_WAKEUP attribute is set to 0 Change-Id: Ib9939eae857fa5113a876a717f8169e150b78318 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/54148 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/isteps')
-rw-r--r--src/usr/isteps/istep06/host_discover_targets.C3
-rw-r--r--src/usr/isteps/istep06/thread_activate/thread_activate.C50
-rw-r--r--src/usr/isteps/istep16/call_host_activate_master.C117
-rw-r--r--src/usr/isteps/istep16/call_host_activate_slave_cores.C35
-rw-r--r--src/usr/isteps/istep18/establish_system_smp.C91
-rw-r--r--src/usr/isteps/istep18/establish_system_smp.H8
-rw-r--r--src/usr/isteps/istep21/call_host_start_payload.C61
-rw-r--r--src/usr/isteps/pm/occCheckstop.C14
8 files changed, 3 insertions, 376 deletions
diff --git a/src/usr/isteps/istep06/host_discover_targets.C b/src/usr/isteps/istep06/host_discover_targets.C
index f503576b8..65d38b839 100644
--- a/src/usr/isteps/istep06/host_discover_targets.C
+++ b/src/usr/isteps/istep06/host_discover_targets.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2017 */
+/* Contributors Listed Below - COPYRIGHT 2015,2018 */
/* [+] Google Inc. */
/* [+] International Business Machines Corp. */
/* */
@@ -60,7 +60,6 @@
#include <sbeio/sbeioif.H>
#include <sys/misc.h>
-#include <p9_cpu_special_wakeup.H>
#include <p9_query_core_access_state.H>
#include <p9_query_cache_access_state.H>
#include <p9_hcd_core_stopclocks.H>
diff --git a/src/usr/isteps/istep06/thread_activate/thread_activate.C b/src/usr/isteps/istep06/thread_activate/thread_activate.C
index 5689952ff..00a63ef04 100644
--- a/src/usr/isteps/istep06/thread_activate/thread_activate.C
+++ b/src/usr/isteps/istep06/thread_activate/thread_activate.C
@@ -60,7 +60,6 @@
#include <fapi2_hw_access.H>
#include <plat_hwp_invoker.H>
#include <istep_reasoncodes.H>
-#include <p9_cpu_special_wakeup.H>
#include <pnor/pnorif.H>
#include <vpd/mvpdenums.H>
@@ -385,37 +384,6 @@ void activate_threads( errlHndl_t& io_rtaskRetErrl )
const fapi2::Target<fapi2::TARGET_TYPE_CORE>& l_fapiCore0 =
(const_cast<TARGETING::Target*>(l_masterCore));
- // --------------------------------------------------------------------
- //Enable the special wake-up on master core
- FAPI_INF("Enable special wake-up on master core");
-
- //Need to explicitly load the library that has the wakeup HWP in it
- if( !VFS::module_is_loaded( "libp9_cpuWkup.so" ) )
- {
- l_errl = VFS::module_load( "libp9_cpuWkup.so" );
- if ( l_errl )
- {
- // load module returned with errl set
- TRACFCOMP( g_fapiTd,ERR_MRK"activate_threads: Could not load libp9_cpuWkup module" );
- // break from do loop if error occured
- break;
- }
- l_wakeup_lib_loaded = true;
- }
-
- FAPI_INVOKE_HWP(l_errl, p9_cpu_special_wakeup_core,
- l_fapiCore0,
- p9specialWakeup::SPCWKUP_ENABLE,
- p9specialWakeup::HOST);
- if(l_errl)
- {
- TRACFCOMP( g_fapiImpTd,
- "ERROR: 0x%.8X : p9_cpu_special_wakeup_core set HWP(cpu %d)",
- l_errl->reasonCode(),
- l_masterCoreID);
- break;
- }
-
// AVPs might enable a subset of the available threads
uint64_t max_threads = cpu_thread_count();
uint64_t en_threads, en_threads_master;
@@ -560,24 +528,6 @@ void activate_threads( errlHndl_t& io_rtaskRetErrl )
const fapi2::Target<fapi2::TARGET_TYPE_CORE>& l_fapiCore1 =
(const_cast<TARGETING::Target*>(l_fusedCore));
- // -------------------------------------------------------------
- //Enable the special wake-up on master-fused core
- FAPI_INF("Enable special wake-up on master-fused core");
-
- FAPI_INVOKE_HWP(l_errl, p9_cpu_special_wakeup_core,
- l_fapiCore1,
- p9specialWakeup::SPCWKUP_ENABLE,
- p9specialWakeup::HOST);
- if(l_errl)
- {
- TRACFCOMP( g_fapiImpTd,
- "ERROR: 0x%.8X : "
- "p9_cpu_special_wakeup_core set HWP(cpu %d)",
- l_errl->reasonCode(),
- l_masterCoreID);
- break;
- }
-
// First capture if threads 1,3 are enabled. Then eliminate
// even threads and compress to bits 0,1
uint64_t en_threads_c1;
diff --git a/src/usr/isteps/istep16/call_host_activate_master.C b/src/usr/isteps/istep16/call_host_activate_master.C
index d75bac90a..635dd2950 100644
--- a/src/usr/isteps/istep16/call_host_activate_master.C
+++ b/src/usr/isteps/istep16/call_host_activate_master.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2017 */
+/* Contributors Listed Below - COPYRIGHT 2015,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -51,7 +51,6 @@
//Import directory (EKB)
#include <p9_block_wakeup_intr.H>
-#include <p9_cpu_special_wakeup.H>
//HWP invoker
#include <fapi2/plat_hwp_invoker.H>
@@ -60,7 +59,6 @@ using namespace ERRORLOG;
using namespace TARGETING;
using namespace ISTEP;
using namespace ISTEP_ERROR;
-using namespace p9specialWakeup;
namespace ISTEP_16
@@ -263,34 +261,6 @@ void* call_host_activate_master (void *io_pArgs)
"p9_block_wakeup_intr SUCCESS" );
}
- // Clear special wakeup
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Disable special wakeup on master core");
-
- FAPI_INVOKE_HWP(l_errl, p9_cpu_special_wakeup_core,
- l_fapi2_coreTarget,
- SPCWKUP_DISABLE,
- HOST);
-
-
- if(l_errl)
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Disable p9_cpu_special_wakeup_core ERROR : Returning errorlog,"
- " reason=0x%x",
- l_errl->reasonCode() );
-
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_masterCore).addToLog( l_errl );
-
- break;
- }
- else
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "Disable special wakeup on master core SUCCESS");
- }
-
if(l_fusedCore != NULL)
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
@@ -319,34 +289,6 @@ void* call_host_activate_master (void *io_pArgs)
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"p9_block_wakeup_intr SUCCESS" );
}
-
- // Clear special wakeup
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Disable special wakeup on fused core");
-
- FAPI_INVOKE_HWP(l_errl, p9_cpu_special_wakeup_core,
- l_fapi2_fusedTarget,
- SPCWKUP_DISABLE,
- HOST);
-
-
- if(l_errl)
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Disable p9_cpu_special_wakeup_core ERROR : Returning errorlog,"
- " reason=0x%x",
- l_errl->reasonCode() );
-
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_fusedCore).addToLog( l_errl );
-
- break;
- }
- else
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "Disable special wakeup on master core SUCCESS");
- }
}
// put the master into winkle.
@@ -422,63 +364,6 @@ void* call_host_activate_master (void *io_pArgs)
TARGETING::Target* sys = NULL;
TARGETING::targetService().getTopLevelTarget(sys);
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Enable special wakeup on master core");
-
-
- FAPI_INVOKE_HWP(l_errl, p9_cpu_special_wakeup_core,
- l_fapi2_coreTarget,
- SPCWKUP_ENABLE,
- HOST);
-
- if(l_errl)
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Enable p9_cpu_special_wakeup_core ERROR : Returning errorlog, "
- "reason=0x%x",
- l_errl->reasonCode() );
-
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_masterCore).addToLog( l_errl );
-
- break;
- }
- else
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "Enable special wakeup on master core SUCCESS");
- }
-
- if(l_fusedCore != NULL)
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Enable special wakeup on fused core");
-
-
- FAPI_INVOKE_HWP(l_errl, p9_cpu_special_wakeup_core,
- l_fapi2_fusedTarget,
- SPCWKUP_ENABLE,
- HOST);
-
- if(l_errl)
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Enable p9_cpu_special_wakeup_core ERROR : Returning errorlog, "
- "reason=0x%x",
- l_errl->reasonCode() );
-
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_fusedCore).addToLog( l_errl );
-
- break;
- }
- else
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "Enable special wakeup on master core SUCCESS");
- }
- }
-
} while ( 0 );
if( l_errl )
diff --git a/src/usr/isteps/istep16/call_host_activate_slave_cores.C b/src/usr/isteps/istep16/call_host_activate_slave_cores.C
index 865a4f5d0..e18639077 100644
--- a/src/usr/isteps/istep16/call_host_activate_slave_cores.C
+++ b/src/usr/isteps/istep16/call_host_activate_slave_cores.C
@@ -42,7 +42,6 @@
#include <sys/misc.h>
#include <fapi2/plat_hwp_invoker.H>
-#include <p9_cpu_special_wakeup.H>
#include <p9_check_idle_stop_done.H>
#ifdef CONFIG_IPLTIME_CHECKSTOP_ANALYSIS
@@ -55,7 +54,6 @@ using namespace ERRORLOG;
using namespace TARGETING;
using namespace ISTEP;
using namespace ISTEP_ERROR;
-using namespace p9specialWakeup;
using namespace p9_check_idle_stop;
namespace ISTEP_16
@@ -200,39 +198,6 @@ void* call_host_activate_slave_cores (void *io_pArgs)
errlCommit( l_errl, HWPF_COMP_ID );
break;
}
-
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "Running p9_cpu_special_wakeup_core (ENABLE)"
- " EX target HUID %.8X",
- TARGETING::get_huid(*l_core));
-
- // Enable special wakeup on core
- FAPI_INVOKE_HWP( l_errl,
- p9_cpu_special_wakeup_core,
- l_fapi2_coreTarget,
- SPCWKUP_ENABLE,
- HOST);
-
- if( l_errl )
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR : enable p9_cpu_special_wakeup_core, "
- "PLID=0x%x", l_errl->plid() );
-
- ErrlUserDetailsTarget(*l_core).addToLog( l_errl );
-
- // Create IStep error log and cross ref error that
- // occurred
- l_stepError.addErrorDetails( l_errl );
-
- // Commit Error
- errlCommit( l_errl, HWPF_COMP_ID );
- }
- else
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "SUCCESS: enable p9_cpu_special_wakeup_core");
- }
}
}
// @@@@@ END CUSTOM BLOCK: @@@@@
diff --git a/src/usr/isteps/istep18/establish_system_smp.C b/src/usr/isteps/istep18/establish_system_smp.C
index 1394322e2..ab26df229 100644
--- a/src/usr/isteps/istep18/establish_system_smp.C
+++ b/src/usr/isteps/istep18/establish_system_smp.C
@@ -75,7 +75,6 @@
// Uncomment these files as they become available:
// #include "host_coalesce_host/host_coalesce_host.H"
#include <p9_block_wakeup_intr.H>
-#include <p9_cpu_special_wakeup.H>
#include <initservice/istepdispatcherif.H>
#include <isteps/hwpf_reasoncodes.H>
@@ -440,8 +439,6 @@ void *host_sys_fab_iovalid_processing(void* io_ptr )
// assume success, unless we hit an error later.
io_pMsg->data[0] = INITSERVICE::HWSVR_MSG_SUCCESS;
- errlHndl_t l_errl = NULL;
-
// if there is extra data, start processing it
if(io_pMsg->extra_data)
{
@@ -516,49 +513,6 @@ void *host_sys_fab_iovalid_processing(void* io_ptr )
io_pMsg->data[1] = 0;
- // if there wasn't an error
- if (io_pMsg->data[0] == INITSERVICE::HWSVR_MSG_SUCCESS)
- {
- // Get all functional core units
- TARGETING::TargetHandleList l_coreList;
- getAllChiplets(l_coreList, TYPE_CORE);
-
- for (auto l_core : l_coreList)
- {
- fapi2::Target<fapi2::TARGET_TYPE_CORE> l_fapi2_core_target(l_core);
-
- // disable special wakeup
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "Running p9_cpu_special_wakeup_core (DISABLE) on Core target"
- " HUID %.8X",
- TARGETING::get_huid(l_core));
-
- FAPI_INVOKE_HWP(l_errl,
- p9_cpu_special_wakeup_core,
- l_fapi2_core_target,
- p9specialWakeup::SPCWKUP_DISABLE,
- p9specialWakeup::HOST);
-
- if(l_errl)
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Disable p9_cpu_special_wakeup_core ERROR :"
- " Returning errorlog, reason=0x%x",
- l_errl->reasonCode() );
-
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_core).addToLog( l_errl );
-
- break;
- }
- else
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "SUCCESS: Disable special wakeup");
- }
- }
- }
-
// response will be sent by calling routine
// IStepDispatcher::handleProcFabIovalidMsg()
// which will also execute the procedure to winkle all cores
@@ -611,49 +565,4 @@ errlHndl_t blockInterrupts()
return l_errl;
}
-errlHndl_t enableSpecialWakeup()
-{
- errlHndl_t l_errl = NULL;
-
- // Get all functional core units
- TARGETING::TargetHandleList l_coreList;
- getAllChiplets(l_coreList, TYPE_CORE);
-
- for (auto l_core : l_coreList)
- {
-
- fapi2::Target<fapi2::TARGET_TYPE_CORE> l_fapi2_core_target(l_core);
-
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "Running p9_cpu_special_wakeup_core(ENABLE) "
- "on Core target HUID %.8X",
- TARGETING::get_huid(l_core));
-
- FAPI_INVOKE_HWP(l_errl,
- p9_cpu_special_wakeup_core,
- l_fapi2_core_target,
- p9specialWakeup::SPCWKUP_ENABLE,
- p9specialWakeup::HOST);
-
- if(l_errl)
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Enable p9_cpu_special_wakeup_core ERROR :"
- " Returning errorlog, reason=0x%x",
- l_errl->reasonCode() );
-
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_core).addToLog( l_errl );
-
- break;
- }
- else
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "SUCCESS: Enable special wakeup");
- }
- }
- return l_errl;
-}
-
}; // end namespace
diff --git a/src/usr/isteps/istep18/establish_system_smp.H b/src/usr/isteps/istep18/establish_system_smp.H
index 410030ff6..e0a07aed4 100644
--- a/src/usr/isteps/istep18/establish_system_smp.H
+++ b/src/usr/isteps/istep18/establish_system_smp.H
@@ -111,14 +111,6 @@ namespace ESTABLISH_SYSTEM_SMP
void* host_sys_fab_iovalid_processing( void* io_pMsg );
/**
- * @brief enableSpecialWakeup on all functional cores after
- * winkle wakeup.
- *
- * @return error log handle
- */
- errlHndl_t enableSpecialWakeup();
-
- /**
* @brief block interrupts on all functional cores
*
* @return error log handle
diff --git a/src/usr/isteps/istep21/call_host_start_payload.C b/src/usr/isteps/istep21/call_host_start_payload.C
index 7024fd98c..eba79e0f5 100644
--- a/src/usr/isteps/istep21/call_host_start_payload.C
+++ b/src/usr/isteps/istep21/call_host_start_payload.C
@@ -49,7 +49,6 @@
#include <isteps/hwpf_reasoncodes.H>
#include <fapi2/target.H>
#include <fapi2/plat_hwp_invoker.H>
-#include <p9_cpu_special_wakeup.H>
#include <p9n2_quad_scom_addresses_fld.H>
#include <ipmi/ipmiwatchdog.H>
#include <config.h>
@@ -67,7 +66,6 @@ using namespace ERRORLOG;
using namespace ISTEP;
using namespace ISTEP_ERROR;
using namespace TARGETING;
-using namespace p9specialWakeup;
namespace ISTEP_21
{
@@ -92,13 +90,6 @@ errlHndl_t callShutdown ( uint64_t i_hbInstance, bool i_masterIntance );
*/
errlHndl_t broadcastShutdown ( uint64_t i_hbInstance );
-/**
- * @brief This function disables the special wakeup that allows scom
- * operations on napped cores
- *
- * @return errlHndl_t error handle
- */
-errlHndl_t disableSpecialWakeup();
/**
* @brief Re-enables the local core checkstop function
@@ -366,12 +357,6 @@ errlHndl_t callShutdown ( uint64_t i_masterInstance,
do
{
- err = disableSpecialWakeup();
- if(err)
- {
- break;
- }
-
// Tell SBE to Close All Unsecure Memory Regions
err = SBEIO::closeAllUnsecureMemRegions();
if (err)
@@ -654,52 +639,6 @@ errlHndl_t broadcastShutdown ( uint64_t i_hbInstance )
}
-errlHndl_t disableSpecialWakeup()
-{
- errlHndl_t l_errl = nullptr;
-
- TargetHandleList l_cores;
- getAllChiplets(l_cores, TYPE_CORE);
- uint32_t l_numCores = 0;
-
- for( const auto & l_core: l_cores )
- {
- l_numCores += 1;
-
- const fapi2::Target<fapi2::TARGET_TYPE_CORE>
- l_fapi2_coreTarget(l_core);
-
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "Running p9_cpu_special_wakeup_core (DISABLE) target HUID %.8X",
- TARGETING::get_huid(l_core));
-
- // Disable special wakeup on core
- FAPI_INVOKE_HWP( l_errl,
- p9_cpu_special_wakeup_core,
- l_fapi2_coreTarget,
- SPCWKUP_DISABLE,
- HOST);
- if( l_errl )
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR : disable p9_cpu_special_wakeup_core, "
- "PLID=0x%x", l_errl->plid() );
-
- ErrlUserDetailsTarget(l_core).addToLog( l_errl );
-
- break;
- }
- else
- {
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "SUCCESS: disable p9_cpu_special_wakeup_core");
- }
- }
-
- return l_errl;
-}
-
-
/**
* @brief Re-enables the local core checkstop function
*/
diff --git a/src/usr/isteps/pm/occCheckstop.C b/src/usr/isteps/pm/occCheckstop.C
index 476638d98..c42996728 100644
--- a/src/usr/isteps/pm/occCheckstop.C
+++ b/src/usr/isteps/pm/occCheckstop.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2013,2017 */
+/* Contributors Listed Below - COPYRIGHT 2013,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -172,18 +172,6 @@ namespace HBOCC
break;
}
- // ************************************************************
- // Take all EX chiplets out of special wakeup
- // ************************************************************
- FAPI_DBG("Disable special wakeup for all functional"
- " EX targets.");
- FAPI_INVOKE_HWP(l_errl, special_wakeup_all, l_target, false);
- if(l_errl)
- {
- TRACFCOMP(g_fapiTd,
- "ERROR: Failed to remove EX chiplets from special wakeup");
- }
-
// Hack provided by Doug Gilbert (@dgilbert). The following six
// scoms set up the communications between GPE0 and the 405. This
// allows to not load and start SGPE that is responsible for setting
OpenPOWER on IntegriCloud