summaryrefslogtreecommitdiffstats
path: root/src/usr/diag
diff options
context:
space:
mode:
authorSachin Gupta <sgupta2m@in.ibm.com>2015-02-26 07:43:18 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2015-02-27 23:26:40 -0600
commit523eee133dbccc9ff056c9199c94c126f36b2336 (patch)
treed3baff0fc8400ea24450c4eb1337fed0ead4f012 /src/usr/diag
parent1a7b850298437cdb82ab7938dddcd7d30d68e978 (diff)
downloadtalos-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.C24
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)
OpenPOWER on IntegriCloud