diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index c89c211..c2e3f99 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 HOSTBOOT_VERSION_BRANCH_MASTER_P8 ?= e28b28fa9995ab3039b44f2c200fdbbc58313677
-HOSTBOOT_VERSION_BRANCH_MASTER ?= 06e5c5eb5192aa01ac6c4868141fa7ae49547acc 
+HOSTBOOT_VERSION_BRANCH_MASTER ?= edea301d5c25b3a305b747c14fe30de79d74b788
 
 HOSTBOOT_VERSION ?= $(if $(BR2_OPENPOWER_POWER9),$(HOSTBOOT_VERSION_BRANCH_MASTER),$(HOSTBOOT_VERSION_BRANCH_MASTER_P8))
 HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
diff --git a/openpower/package/hostboot/p9Patches/hostboot-0008-Mask-IPOLL-Interrupts-Disable-Nest-Pulse.patch b/openpower/package/hostboot/p9Patches/hostboot-0008-Mask-IPOLL-Interrupts-Disable-Nest-Pulse.patch
new file mode 100644
index 0000000..cbc3077
--- /dev/null
+++ b/openpower/package/hostboot/p9Patches/hostboot-0008-Mask-IPOLL-Interrupts-Disable-Nest-Pulse.patch
@@ -0,0 +1,81 @@
+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
+
