| 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 |
| |