summaryrefslogtreecommitdiffstats
path: root/src/usr/mbox
diff options
context:
space:
mode:
authorMike Baiocchi <mbaiocch@us.ibm.com>2018-03-22 17:23:18 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2018-03-29 10:44:08 -0400
commit95c1dd78c27aca67b4298854306702fe605f906e (patch)
treec192b7b6885034191af2699072d8d1e5345e8a4c /src/usr/mbox
parent42e4c422f63b24bc73d2ce3a0e9b086ccee75aee (diff)
downloadblackbird-hostboot-95c1dd78c27aca67b4298854306702fe605f906e.tar.gz
blackbird-hostboot-95c1dd78c27aca67b4298854306702fe605f906e.zip
Close and Disable TCEs on Non-Master Nodes
During istep21.1 this commit sends a message to all non-Master nodes to close and disable their TCEs using the ipc mailbox interface to the FSP. Change-Id: I5575228c9f237025a48e0aeca23e741724ec7886 RTC:187335 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56269 CI-Ready: Michael Baiocchi <mbaiocch@us.ibm.com> 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> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com> Reviewed-by: ILYA SMIRNOV <ismirno@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/usr/mbox')
-rw-r--r--src/usr/mbox/ipcSp.C72
1 files changed, 70 insertions, 2 deletions
diff --git a/src/usr/mbox/ipcSp.C b/src/usr/mbox/ipcSp.C
index 5878a1bf1..d2c824f03 100644
--- a/src/usr/mbox/ipcSp.C
+++ b/src/usr/mbox/ipcSp.C
@@ -32,8 +32,9 @@
#include <mbox/mbox_reasoncodes.H>
#include <intr/interrupt.H>
#include <initservice/initserviceif.H>
-#include <sbeio/sbeioif.H>
-
+#include <sbeio/sbeioif.H>
+#include <util/utiltce.H>
+#include <targeting/targplatutil.H>
namespace ISTEP_21
{
@@ -321,6 +322,73 @@ void IpcSp::msgHandler()
break;
}
+
+ case IPC_CLOSE_TCES:
+ {
+ TRACFCOMP( g_trac_ipc,
+ "Closing TCEs on this node (%d)",
+ TARGETING::UTIL::getCurrentNodePhysId());
+
+ // make sure util module is loaded
+ const char * libutil = "libutil.so";
+ if ( !VFS::module_is_loaded( libutil ) )
+ {
+ err = VFS::module_load( libutil );
+
+ if ( err )
+ {
+ TRACFCOMP( g_trac_ipc,
+ "Could not load util module" );
+ }
+ else
+ {
+ mod_loaded = true;
+ }
+ }
+
+ if(!err)
+ {
+ err = TCE::utilClosePayloadTces();
+ }
+
+ if(!err)
+ {
+ err = TCE::utilDisableTces();
+ }
+
+ if(err)
+ {
+ uint32_t l_errPlid = err->plid();
+ errlCommit(err, IPC_COMP_ID);
+ INITSERVICE::doShutdown(l_errPlid, true);
+ }
+
+ if(mod_loaded)
+ {
+ err = VFS::module_unload( libutil );
+
+ if (err)
+ {
+ errlCommit(err, IPC_COMP_ID);
+ }
+ else
+ {
+ mod_loaded = false;
+ }
+ }
+
+ // Respond
+ err = MBOX::send(MBOX::HB_CLOSE_TCES_MSGQ, msg, msg->data[1] );
+ if (err)
+ {
+ uint32_t l_errPlid = err->plid();
+ errlCommit(err,IPC_COMP_ID);
+ INITSERVICE::doShutdown(l_errPlid, true);
+ }
+
+ break;
+ }
+
default:
TRACFCOMP( g_trac_ipc,
OpenPOWER on IntegriCloud