diff options
author | Sachin Gupta <sgupta2m@in.ibm.com> | 2015-02-26 07:43:18 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2015-02-27 23:26:40 -0600 |
commit | 523eee133dbccc9ff056c9199c94c126f36b2336 (patch) | |
tree | d3baff0fc8400ea24450c4eb1337fed0ead4f012 /src/usr/diag | |
parent | 1a7b850298437cdb82ab7938dddcd7d30d68e978 (diff) | |
download | talos-hostboot-523eee133dbccc9ff056c9199c94c126f36b2336.tar.gz talos-hostboot-523eee133dbccc9ff056c9199c94c126f36b2336.zip |
ATTN: Clear GPIO register for host attentions
Change-Id: I1650475f179bf8f5faf760582aeaed729c48b8b0
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16014
Tested-by: Jenkins Server
Reviewed-by: Zane Shelley <zshelle@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/diag')
-rw-r--r-- | src/usr/diag/attn/runtime/attn_rt.C | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/usr/diag/attn/runtime/attn_rt.C b/src/usr/diag/attn/runtime/attn_rt.C index 64086914a..ec51a3118 100644 --- a/src/usr/diag/attn/runtime/attn_rt.C +++ b/src/usr/diag/attn/runtime/attn_rt.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2014 */ +/* Contributors Listed Below - COPYRIGHT 2014,2015 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -123,6 +123,28 @@ namespace ATTN_RT "returned error for RtProc: %llx", i_proc); break; } + + // For host attentions, clear gpio interrupt type register. + // If we do not clear gpio register, ipoll status will again + // get set and we will end up in infinite loop. + + uint64_t hostMask = 0; + IPOLL::getCheckbits(HOST, hostMask); + + if( i_ipollMask & hostMask) + { + err = putScom( proc, INTR_TYPE_LCL_ERR_STATUS_AND_REG, 0 ); + + if(err) + { + ATTN_ERR("ATTN_RT::handleAttns putscom failed for " + "RtProc: %llx address:0x%08X", i_proc, + INTR_TYPE_LCL_ERR_STATUS_AND_REG); + //Let us commit and continue. + errlCommit(err, ATTN_COMP_ID); + } + + } } while(0); if(err) |