diff --git a/openpower/configs/zaius_defconfig b/openpower/configs/zaius_defconfig
index fdfba24..f35e098 100644
--- a/openpower/configs/zaius_defconfig
+++ b/openpower/configs/zaius_defconfig
@@ -41,7 +41,7 @@
 BR2_OPENPOWER_POWER9=y
 BR2_HOSTBOOT_CONFIG_FILE="zaius.config"
 BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="zaius-xml"
-BR2_OPENPOWER_MACHINE_XML_VERSION="0c28b11c0ace4054482a07f69d7c751196f6d195"
+BR2_OPENPOWER_MACHINE_XML_VERSION="338671f00ca8b950bfc72f6c9728c68c1029a1b8"
 BR2_OPENPOWER_MACHINE_XML_FILENAME="zaius.xml"
 BR2_OPENPOWER_SYSTEM_XML_FILENAME="ZAIUS_hb.system.xml"
 BR2_OPENPOWER_MRW_XML_FILENAME="ZAIUS_hb.mrw.xml"
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index 894cbd2..7f968eb 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 HOSTBOOT_VERSION_BRANCH_MASTER_P8 ?= 695bd891343faf1f0ef85fe53148590e58239efd
-HOSTBOOT_VERSION_BRANCH_MASTER ?= bbd317375f825b30ba0ddea995528a12b5f50b89
+HOSTBOOT_VERSION_BRANCH_MASTER ?= 9a2e268f1799061d8eedaadd4aedc7c54cc6589e
 
 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-0001-Remove-support-for-P9N-Nimbus-DD1.0.patch b/openpower/package/hostboot/p9Patches/hostboot-0001-Remove-support-for-P9N-Nimbus-DD1.0.patch
deleted file mode 100644
index 3ed2df7..0000000
--- a/openpower/package/hostboot/p9Patches/hostboot-0001-Remove-support-for-P9N-Nimbus-DD1.0.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 3fc13542a298284b7a45ee6fbf2152aec659c733 Mon Sep 17 00:00:00 2001
-From: Dean Sanner <dsanner@us.ibm.com>
-Date: Mon, 18 Sep 2017 13:49:09 -0500
-Subject: [PATCH] Remove support for P9N (Nimbus) DD1.0
-
-  - Will error out during IPL
-  - Gracefully handle removal of DD1.0 inits,
-    tied to hw091517b.910 HCODE image
-
-Change-Id: I7b4c53b38863a8251a8c02d7df83a3ff713f52d7
----
- src/include/usr/isteps/istep_reasoncodes.H  |  2 ++
- src/usr/isteps/istep06/host_set_ipl_parms.C | 44 ++++++++++++++++++++++++++++-
- 2 files changed, 45 insertions(+), 1 deletion(-)
-
-diff --git a/src/include/usr/isteps/istep_reasoncodes.H b/src/include/usr/isteps/istep_reasoncodes.H
-index bdf4c93..d76eceb 100644
---- a/src/include/usr/isteps/istep_reasoncodes.H
-+++ b/src/include/usr/isteps/istep_reasoncodes.H
-@@ -62,6 +62,7 @@ namespace ISTEP
-         MOD_SBE_PERFORM_UPDATE_CHECK                      = 0x1A,
-         MOD_MSS_ATTR_UPDATE = 0x1B, /* @TODO-RTC:149250-Remove */
-         MOD_SBE_GET_FFDC_HANDLER                          = 0x1C,
-+        MOD_SET_IPL_PARMS                                 = 0x1D,
-     };
- 
-     /**
-@@ -122,6 +123,7 @@ namespace ISTEP
-         RC_SBE_UPDATE_IN_MPIPL                   = ISTEP_COMP_ID | 0x32,
-         RC_NO_FFDC_RETURNED                      = ISTEP_COMP_ID | 0x33,
-         RC_RETURNED_FFDC                         = ISTEP_COMP_ID | 0x34,
-+        RC_P9N_DD1_NOT_SUPPORTED                 = ISTEP_COMP_ID | 0x35,
-     };
- 
- };
-diff --git a/src/usr/isteps/istep06/host_set_ipl_parms.C b/src/usr/isteps/istep06/host_set_ipl_parms.C
-index 8fe9f12..c42f909 100644
---- a/src/usr/isteps/istep06/host_set_ipl_parms.C
-+++ b/src/usr/isteps/istep06/host_set_ipl_parms.C
-@@ -31,7 +31,9 @@
- #include <initservice/isteps_trace.H>
- #include <util/utilsemipersist.H>
- #include <hwas/common/deconfigGard.H>
--
-+#include <arch/pvrformat.H>
-+#include <sys/mmio.h>
-+#include <console/consoleif.H>
- 
- namespace ISTEP_06
- {
-@@ -77,6 +79,46 @@ void* host_set_ipl_parms( void *io_pArgs )
-     Util::writeSemiPersistData(l_semiData);
- 
- 
-+    // Add a check to indicate that Nimbus DD1.0 is NOT supported
-+    // and prevent a boot
-+    PVR_t l_pvr( mmio_pvr_read() & 0xFFFFFFFF );
-+    if( l_pvr.isNimbusDD1() )
-+    {
-+#ifdef CONFIG_CONSOLE
-+        CONSOLE::displayf(ISTEP_COMP_NAME,
-+                          "P9N (Nimbus) DD1.0 is not supported in this driver");
-+        CONSOLE::displayf(ISTEP_COMP_NAME,
-+                          "Please update the system's processor modules");
-+#endif
-+
-+
-+        TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
-+                   "DD1.0 is NOT SUPPORTED anymore. "
-+                   "Please upgrade proc modules");
-+        /*@
-+         * @errortype
-+         * @moduleid     ISTEP::MOD_SET_IPL_PARMS
-+         * @reasoncode   ISTEP::RC_P9N_DD1_NOT_SUPPORTED
-+         * @userdata1    PVR of master proc
-+         * @devdesc      P9N (Nimbus) DD1.x is not supported
-+         *               in this firmware driver.  Please update
-+         *               your module or use a different driver
-+         * @custdesc     A problem occurred during the IPL
-+         *               of the system.
-+         */
-+        uint64_t l_dummy = 0x0;
-+        l_err = new ERRORLOG::ErrlEntry(
-+                                        ERRORLOG::ERRL_SEV_UNRECOVERABLE,
-+                                        ISTEP::MOD_SET_IPL_PARMS,
-+                                        ISTEP::RC_P9N_DD1_NOT_SUPPORTED,
-+                                        l_pvr.word,
-+                                        l_dummy);
-+        // Create IStep error log and cross ref error that occurred
-+        l_stepError.addErrorDetails( l_err );
-+        errlCommit( l_err, ISTEP_COMP_ID );
-+    }
-+
-+
-     TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "host_set_ipl_parms exit" );
- 
-     return l_stepError.getErrorHandle();
--- 
-1.8.2.2
-
diff --git a/openpower/package/openpower-pnor/openpower-pnor.mk b/openpower/package/openpower-pnor/openpower-pnor.mk
index 2aa3bfd..39c71ed 100644
--- a/openpower/package/openpower-pnor/openpower-pnor.mk
+++ b/openpower/package/openpower-pnor/openpower-pnor.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-OPENPOWER_PNOR_VERSION ?= 21d66daff697f8c13fb067340ca621e9208ab1ea
+OPENPOWER_PNOR_VERSION ?= 5181154715dd12e10f1d1ac432e128f44e8d32c0
 OPENPOWER_PNOR_SITE ?= $(call github,open-power,pnor,$(OPENPOWER_PNOR_VERSION))
 
 OPENPOWER_PNOR_LICENSE = Apache-2.0
