summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps/istep06
diff options
context:
space:
mode:
authorLateef Quraishi <lateef@us.ibm.com>2016-08-04 08:47:49 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-09-02 10:05:51 -0400
commite4866856c7642d1ae8c6ec4b9cf9d2042ecef103 (patch)
tree42cbbfcb2ea6487154bed58b786b5bb4135d61e0 /src/usr/isteps/istep06
parentd2f585ae16f4ba4a9f62b110e91de956cb1cf774 (diff)
downloadtalos-hostboot-e4866856c7642d1ae8c6ec4b9cf9d2042ecef103.tar.gz
talos-hostboot-e4866856c7642d1ae8c6ec4b9cf9d2042ecef103.zip
Create a Separate module for cpu_special_wakeup
Change-Id: I4138b26825d76ebd068d3013a83fd9bfbc1f7b0f RTC: 147383 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/27872 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/isteps/istep06')
-rw-r--r--src/usr/isteps/istep06/thread_activate/makefile2
-rw-r--r--src/usr/isteps/istep06/thread_activate/thread_activate.C39
2 files changed, 37 insertions, 4 deletions
diff --git a/src/usr/isteps/istep06/thread_activate/makefile b/src/usr/isteps/istep06/thread_activate/makefile
index 3ed73fc97..b9e1042c6 100644
--- a/src/usr/isteps/istep06/thread_activate/makefile
+++ b/src/usr/isteps/istep06/thread_activate/makefile
@@ -53,7 +53,5 @@ VPATH += ${HWP_PATH}
include ${ROOTPATH}/procedure.rules.mk
# p9_thread_control.o brought in by p9_thread_control.mk
include $(HWP_PATH_1)/p9_thread_control.mk
-# p9_cpu_special_wakeup.o brought in by p9_cpu_special_wakeup.mk
-include $(HWP_PATH_2)/p9_cpu_special_wakeup.mk
include ${ROOTPATH}/config.mk
diff --git a/src/usr/isteps/istep06/thread_activate/thread_activate.C b/src/usr/isteps/istep06/thread_activate/thread_activate.C
index 84fdd8187..2fb8e1d10 100644
--- a/src/usr/isteps/istep06/thread_activate/thread_activate.C
+++ b/src/usr/isteps/istep06/thread_activate/thread_activate.C
@@ -60,6 +60,7 @@
#include <pnor/pnorif.H>
#include <vpd/mvpdenums.H>
+#include <vfs/vfs.H>
namespace THREAD_ACTIVATE
{
@@ -204,7 +205,7 @@ bool getCacheDeconfig(uint64_t i_masterCoreId)
//Not worth taking the system down, just assume
//we only have half the cache available.
- errlCommit(l_errl,HWPF_COMP_ID);
+ errlCommit(l_errl,ISTEP_COMP_ID);
cacheDeconfig = true;
}
@@ -218,6 +219,7 @@ bool getCacheDeconfig(uint64_t i_masterCoreId)
void activate_threads( errlHndl_t& io_rtaskRetErrl )
{
errlHndl_t l_errl = NULL;
+ bool l_wakeup_lib_loaded = false;
TRACFCOMP( g_fapiTd,
"activate_threads entry" );
@@ -312,7 +314,21 @@ void activate_threads( errlHndl_t& io_rtaskRetErrl )
// --------------------------------------------------------------------
//Enable the special wake-up on master core
- FAPI_INF("\tEnable 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,
l_fapiCore,
@@ -461,6 +477,25 @@ void activate_threads( errlHndl_t& io_rtaskRetErrl )
} while(0);
+ //make sure we always unload the module if we loaded it
+ if( l_wakeup_lib_loaded )
+ {
+ errlHndl_t l_tmpErrl =
+ VFS::module_unload( "libp9_cpuWkup.so" );
+ if ( l_tmpErrl )
+ {
+ TRACFCOMP( g_fapiTd,ERR_MRK"thread_activate: Error unloading libp9_cpuWkup module" );
+ if(l_errl)
+ {
+ errlCommit( l_tmpErrl, ISTEP_COMP_ID );
+ }
+ else
+ {
+ l_errl = l_tmpErrl;
+ }
+ }
+ }
+
TRACFCOMP( g_fapiTd,
"activate_threads exit" );
OpenPOWER on IntegriCloud