diff options
author | crgeddes <crgeddes@us.ibm.com> | 2017-05-05 17:04:28 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-05-08 14:07:47 -0400 |
commit | b93bb1c4e5151e309231a6b667bc98deaf98572f (patch) | |
tree | 9fa5092be616fd03b7dc8f5f72ba8e1eeab91a38 /src/usr/intr | |
parent | 3ee0a2ebe98b43d1f38de9834ae3c2647f90ab82 (diff) | |
download | talos-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')
-rw-r--r-- | src/usr/intr/intrrp.C | 13 |
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(); |