summaryrefslogtreecommitdiffstats
path: root/src/usr/intr/intrrp.C
diff options
context:
space:
mode:
authorcrgeddes <crgeddes@us.ibm.com>2017-05-05 17:04:28 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-05-08 14:07:47 -0400
commitb93bb1c4e5151e309231a6b667bc98deaf98572f (patch)
tree9fa5092be616fd03b7dc8f5f72ba8e1eeab91a38 /src/usr/intr/intrrp.C
parent3ee0a2ebe98b43d1f38de9834ae3c2647f90ab82 (diff)
downloadtalos-hostboot-b93bb1c4e5151e309231a6b667bc98deaf98572f.tar.gz
talos-hostboot-b93bb1c4e5151e309231a6b667bc98deaf98572f.zip
Update the interrupt routing for the Slave proc
During Hostboot we route all interrupts to the master proc. During the MPIPL we send a PSU chip op to the SBE, if the slave isnt set up to route to the master proc then we get a xstop. This fix makes sure we update the slave proc's interrupt routing on the MPIPL path Change-Id: I41e2728e049128e631537fe016d4402264739f23 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40181 Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@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: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/intr/intrrp.C')
-rw-r--r--src/usr/intr/intrrp.C13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/usr/intr/intrrp.C b/src/usr/intr/intrrp.C
index f30d26b4b..b70569297 100644
--- a/src/usr/intr/intrrp.C
+++ b/src/usr/intr/intrrp.C
@@ -177,6 +177,19 @@ errlHndl_t IntrRp::resetIntpForMpipl()
break;
}
+ //Hostboot routes all interrupts to the master proc. This gets set up during istep 8
+ //of a normal IPL but later the Hypervisor will reset the routing. During an mpipl,
+ //istep 8 wont get ran so we need to set the routing up now.
+ for(ChipList_t::iterator targ_itr = iv_chipList.begin();
+ targ_itr != iv_chipList.end(); ++targ_itr)
+ {
+ if (*targ_itr != iv_masterHdlr)
+ {
+ TRACDCOMP(g_trac_intr, "IntrRp::resetIntpForMpipl() Setting up Slave Proc Interrupt Routing for proc %lx", get_huid((*targ_itr)->proc));
+ enableSlaveProcInterruptRouting(*targ_itr);
+ }
+ }
+
//Clear out the mask list because pq state buffer gets cleared after
//resetting the XIVE Interrupt unit
iv_maskList.clear();
OpenPOWER on IntegriCloud