blob: cbc3077d23ff38317582c8d002a80ace5d231b5b [file] [log] [blame]
From cde8d0c32b37f398b157e17e4f20c3e3abe53599 Mon Sep 17 00:00:00 2001
From: Bill Hoffa <wghoffa@us.ibm.com>
Date: Fri, 20 Jan 2017 12:16:47 -0600
Subject: [PATCH] Mask IPOLL Interrupts + Disable Nest Pulse
Change-Id: I5e479ee475b4edb275de60d2c158c5732f908e46
---
src/usr/isteps/istep14/call_mss_memdiag.C | 43 ++++++++++++++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)
diff --git a/src/usr/isteps/istep14/call_mss_memdiag.C b/src/usr/isteps/istep14/call_mss_memdiag.C
index 8354e5f..1cf9ca5 100644
--- a/src/usr/isteps/istep14/call_mss_memdiag.C
+++ b/src/usr/isteps/istep14/call_mss_memdiag.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2016 */
+/* Contributors Listed Below - COPYRIGHT 2015,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -30,6 +30,7 @@
#include <diag/attn/attn.H>
#include <diag/mdia/mdia.H>
#include <targeting/common/targetservice.H>
+#include <devicefw/driverif.H>
using namespace ISTEP;
using namespace ISTEP_ERROR;
@@ -101,6 +102,46 @@ void* call_mss_memdiag (void* io_pArgs)
break;
}
+ //Mask IPOLL Interrupts
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+ "Mask IPOLL Interrupts");
+
+ // Get all functional proc chip targets
+ //Use targeting code to get a list of all processors
+ TARGETING::TargetHandleList l_procChips;
+ getAllChips( l_procChips, TARGETING::TYPE_PROC );
+
+ for (auto l_procChip: l_procChips)
+ {
+ uint64_t l_data = 0xfff0000000000000;
+ size_t l_data_sz = sizeof(uint64_t);
+
+ l_errl = deviceWrite( l_procChip, &l_data, l_data_sz,
+ DEVICE_SCOM_ADDRESS(0x000F0033) );
+
+ if( NULL != l_errl )
+ {
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+ "IPOLL MASK ERROR: deviceWrite on 0x%08X failed HUID:0x%08X",
+ 0x000F0033, get_huid(l_procChip));
+ break;
+ }
+
+ //Disable the nest pulse to the bottom 4 bits of the TB
+ l_data = 0x0000000000000000;
+
+ l_errl = deviceWrite( l_procChip, &l_data, l_data_sz,
+ DEVICE_SCOM_ADDRESS(0x010F0023) );
+
+ if( NULL != l_errl )
+ {
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+ "Disable nest pulse: deviceWrite on 0x%08X failed HUID:0x%08X",
+ 0x010F0023, get_huid(l_procChip));
+ break;
+ }
+ }
+
}while( 0 );
if( NULL != l_errl )
--
1.8.2.2