diff options
author | Richard J. Knight <rjknight@us.ibm.com> | 2013-04-19 07:17:37 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-05-16 09:38:39 -0500 |
commit | 4b1f946d7558f8ca95c87d89e637513f18e87818 (patch) | |
tree | 5c70bf865fb77bf34ca08dc9b2ed461a933657d3 /src/usr/initservice/istepdispatcher/istepdispatcher.C | |
parent | 91572a1c887aac732ff84e60f5a2be4e25f650ac (diff) | |
download | talos-hostboot-4b1f946d7558f8ca95c87d89e637513f18e87818.tar.gz talos-hostboot-4b1f946d7558f8ca95c87d89e637513f18e87818.zip |
Add new istep for multinode support in Hostboot and FSP
Change-Id: I1e9b0662ded03828f5df9e16aa35960ccb8d90cc
RTC:63129
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4247
Reviewed-by: Van H. Lee <vanlee@us.ibm.com>
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/initservice/istepdispatcher/istepdispatcher.C')
-rw-r--r-- | src/usr/initservice/istepdispatcher/istepdispatcher.C | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C index b47eabcac..6b403f2b1 100644 --- a/src/usr/initservice/istepdispatcher/istepdispatcher.C +++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C @@ -39,6 +39,9 @@ #include <kernel/console.H> // printk status +// for VFS::module_load +#include <vfs/vfs.H> + #include <sys/task.h> // tid_t, task_create, etc #include <errl/errlentry.H> // errlHndl_t @@ -53,6 +56,9 @@ #include <targeting/common/targetservice.H> #include <targeting/attrsync.H> + +#include <establish_system_smp.H> + #include <hwpf/plat/fapiPlatAttributeService.H> #include <mbox/mbox_queues.H> // HB_ISTEP_MSGQ @@ -63,6 +69,7 @@ #include "istepdispatcher.H" #include "istepWorker.H" +#include "istep_mbox_msgs.H" #include "splesscommon.H" @@ -485,6 +492,22 @@ errlHndl_t IStepDispatcher::msgHndlr ( void ) handleMoreWorkNeededMsg( (theMsg->data[0] == 1) ); break; + case PROCESS_IOVALID_REQUEST: + TRACFCOMP( g_trac_initsvc, + "msgHndlr : PROCESS_IOVALID_REQUEST" ); + + // make sure the library is loaded + err = VFS::module_load("libestablish_system_smp.so"); + + // if the module loaded ok, do the processing + if( err == NULL ) + { + iv_Msg = theMsg; + handleProcFabIovalidMsg(); + } + break; + + default: // Default Message // This SHOULD be a message from the Fsp with the Step/substep @@ -1037,6 +1060,32 @@ bool IStepDispatcher::checkMpiplMode( ) const return l_isMpiplMode; } +void IStepDispatcher::handleProcFabIovalidMsg( ) +{ + TRACDCOMP( g_trac_initsvc, + ENTER_MRK"IStepDispatcher::handleProcFabIovalidMsg()" ); + + // do hostboot processing for istep + // sys_proc_fab_ipvalid + ESTABLISH_SYSTEM_SMP::host_sys_fab_iovalid_processing( iv_Msg ); + + // Send the message back as a response + msg_respond(iv_msgQ, iv_Msg); + + // if there was an error don't winkle ? + if( iv_Msg->data[0] == HWSVR_MSG_SUCCESS ) + { + TRACFCOMP( g_trac_initsvc, + "$TODO RTC:71447 - winkle all cores"); + } + + TRACDCOMP( g_trac_initsvc, + EXIT_MRK"IStepDispatcher::handleProcFabIovalidMsg()" ); + + iv_Msg = NULL; +} + + } // namespace |