Skip to content

Commit

Permalink
Implement Interrupt Resource Provider Init for MPIPL Multi-Node Systems
Browse files Browse the repository at this point in the history
  - In MPIPL the HW interrupt config could be such that interrupts will
    cross node boundaries. HB handles interrupts independently on each
    node - so initialize INTRP in a way to handle this transition.

  - Modify the MPIPL flow with the following changes:
     a) Set the Interrupt LSI State Machine to disabled
     b) Enable LSI Mode via the Interrupt Control Register
     c) Force all nodes to sync after steps a + b

  - Enable INTRP Multi-Node MPIPL Sync Code developed in P8
     - Each node will now initialize its own internode_info
       data area during an initial IPL
     - Coalescing of the Host will modify this data to define
       all the nodes in the system
     - During the MPIPL each node can view each others area to
       determine when all nodes have reached the common sync point

  - Remove Legacy P8 MPIPL INTRP Code that is not used

Change-Id: Idb742eafc7389f328ea7f506c4c4541c989e52b6
RTC: 182712
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/57993
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Reviewed-by: Prachi Gupta <pragupta@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: Richard J. Knight <rjknight@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
  • Loading branch information
wghoffa authored and dcrowell77 committed May 7, 2018
1 parent 14f1070 commit 59c3af1
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 619 deletions.
7 changes: 4 additions & 3 deletions src/include/sys/internode.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* COPYRIGHT International Business Machines Corp. 2014 */
/* Contributors Listed Below - COPYRIGHT 2014,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
Expand Down Expand Up @@ -34,8 +36,7 @@ enum internode_info_vals_t
enum intr_mpipl_sync_t
{
INTR_MPIPL_SYNC_CLEAR = 0,
INTR_MPIPL_UPSTREAM_DISABLED = 1,
INTR_MPIPL_DRAINED = 2,
INTR_MPIPL_INIT_COMPLETE = 1,
};


Expand Down
2 changes: 1 addition & 1 deletion src/kernel/intmsghandler.C
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ void InterruptMsgHdlr::sendIpcMsg(uint64_t i_pir)
//a duplicate doorbell happens before kernel clears first
//message.
//Since the kernel will drop any message with the same PIR
//key on the floor, need to make it unique with a incrementing
//key on the floor, need to make it unique with an incrementing
//counter

cv_ipc_salt += MSG_IPC_SALT;
Expand Down

0 comments on commit 59c3af1

Please sign in to comment.