diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index 9c94c21..752f278 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 ?= d0a8f18502ab3d62238aa4945068cd7c79d75ebc
+HOSTBOOT_VERSION_BRANCH_MASTER ?= f0e3f6dfcbec36f0fdf631172f973209ff645bc1
 
 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-1001-PM-HOMER-Header-Magic-word-change.patch b/openpower/package/hostboot/p9Patches/hostboot-1000-PM-HOMER-Header-Magic-word-change.patch
similarity index 94%
rename from openpower/package/hostboot/p9Patches/hostboot-1001-PM-HOMER-Header-Magic-word-change.patch
rename to openpower/package/hostboot/p9Patches/hostboot-1000-PM-HOMER-Header-Magic-word-change.patch
index 49e1de3..62ec5dd 100644
--- a/openpower/package/hostboot/p9Patches/hostboot-1001-PM-HOMER-Header-Magic-word-change.patch
+++ b/openpower/package/hostboot/p9Patches/hostboot-1000-PM-HOMER-Header-Magic-word-change.patch
@@ -1,7 +1,7 @@
-From 6707528059ba2b13b6ab78c1ed12d99ecd3fa69c Mon Sep 17 00:00:00 2001
+From 42d09998528d8175867eccb7ed58d91b990a5b13 Mon Sep 17 00:00:00 2001
 From: Prem Shanker Jha <premjha2@in.ibm.com>
 Date: Fri, 23 Jun 2017 10:42:53 -0500
-Subject: [PATCH v1 1001/1002] PM: HOMER Header Magic word change.
+Subject: [PATCH v1 1000/1002] PM: HOMER Header Magic word change.
 
 Commit restores the magic words of CPMR, QPMR and PPMR region to
 CPMR_1.0, QPMR_1.0 and PPMR_1.0 respectively. It dissociates it
@@ -19,7 +19,7 @@
  1 file changed, 14 insertions(+), 18 deletions(-)
 
 diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C b/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
-index 8957295..4ddb140 100644
+index c930d48..e38fed0 100644
 --- a/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
 +++ b/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
 @@ -134,6 +134,7 @@ enum
@@ -30,7 +30,7 @@
  };
  
  /**
-@@ -3789,34 +3790,29 @@ void customizeMagicWord( Homerlayout_t*     i_pHomer, uint8_t i_ecLevel )
+@@ -3790,34 +3791,29 @@ void customizeMagicWord( Homerlayout_t*     i_pHomer, uint8_t i_ecLevel )
      uint64_t magicWordCustom[MAX_HOMER_HEADER];
      uint64_t * pMagicWord[MAX_HOMER_HEADER];
      pMagicWord[0]   =   &pQpmrHdr->magic_number;
diff --git a/openpower/package/hostboot/p9Patches/hostboot-1002-PM-set-PGPE-and-SGPE-Timer-Select.patch b/openpower/package/hostboot/p9Patches/hostboot-1001-PM-set-PGPE-and-SGPE-Timer-Select.patch
similarity index 65%
rename from openpower/package/hostboot/p9Patches/hostboot-1002-PM-set-PGPE-and-SGPE-Timer-Select.patch
rename to openpower/package/hostboot/p9Patches/hostboot-1001-PM-set-PGPE-and-SGPE-Timer-Select.patch
index 8cedc71..bee9678 100644
--- a/openpower/package/hostboot/p9Patches/hostboot-1002-PM-set-PGPE-and-SGPE-Timer-Select.patch
+++ b/openpower/package/hostboot/p9Patches/hostboot-1001-PM-set-PGPE-and-SGPE-Timer-Select.patch
@@ -1,7 +1,7 @@
-From 72976d2d7f3a303830a41cf282260be09260bcfc Mon Sep 17 00:00:00 2001
+From a59b11a11688d5244ff7a79d9fed2a4cfcde6ccf Mon Sep 17 00:00:00 2001
 From: Greg Still <stillgs@us.ibm.com>
 Date: Tue, 27 Jun 2017 09:26:41 -0500
-Subject: [PATCH v1 1002/1002] PM: set PGPE and SGPE Timer Select
+Subject: [PATCH v1 1001/1002] PM: set PGPE and SGPE Timer Select
 
 - Writes fixed values for FIT and watchdog timers on both engines
 - Needed for DD2 as DD1 was done with initfile settings
@@ -14,35 +14,31 @@
 Reviewed-by: Michael S. Floyd <mfloyd@us.ibm.com>
 Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
 Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com>
-
-Conflicts:
-	src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C
 ---
- src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C | 10 ++++++++++
- src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.C   |  8 ++++++++
- 2 files changed, 18 insertions(+)
+ src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C | 9 +++++++++
+ src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.C   | 8 ++++++++
+ 2 files changed, 17 insertions(+)
 
 diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C b/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C
-index bdf8f74..1ca2772 100644
+index f307d4b..c601f64 100644
 --- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C
 +++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C
-@@ -113,6 +113,16 @@ fapi2::ReturnCode pstate_gpe_init(
+@@ -134,6 +134,15 @@ fapi2::ReturnCode pstate_gpe_init(
+             FAPI_TRY(putScom(i_target, PU_OCB_OCI_OCCFLG_SCOM2, BIT(p9hcd::PGPE_PSTATE_PROTOCOL_AUTO_ACTIVATE)));
+         }
  
-     FAPI_TRY(putScom(i_target, PU_OCB_OCI_OCCS2_SCOM, l_occ_scratch2));
- 
-+    // Setup the PGPE Timer Selects
-+    // These hardcoded values are assumed by the PGPE Hcode for setting up
-+    // the FIT and Watchdog values a based on the nest frequency that is
-+    // passed to it via the PGPE header.
-+    l_data64.flush<0>()
-+      .insertFromRight<0, 4>(0x1)    // Watchdog
-+    .insertFromRight<4, 4>(0xA);   // FIT
-+    FAPI_TRY(fapi2::putScom(i_target, PU_GPE2_GPETSEL_SCOM, l_data64));
++        // Setup the PGPE Timer Selects
++        // These hardcoded values are assumed by the PGPE Hcode for setting up
++        // the FIT and Watchdog values a based on the nest frequency that is
++        // passed to it via the PGPE header.
++        l_data64.flush<0>()
++        .insertFromRight<0, 4>(0x1)    // Watchdog
++        .insertFromRight<4, 4>(0xA);   // FIT
++        FAPI_TRY(fapi2::putScom(i_target, PU_GPE2_GPETSEL_SCOM, l_data64));
 +
-+
-     // Program XCR to ACTIVATE PGPE
-     // @todo RTC 146665 Operations to PPEs should use a p9ppe namespace
-     FAPI_INF("   Starting the PGPE...");
+         // Program XCR to ACTIVATE PGPE
+         // @todo RTC 146665 Operations to PPEs should use a p9ppe namespace
+         FAPI_INF("   Starting the PGPE...");
 diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.C b/src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.C
 index 5e05fcb..0829556 100644
 --- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.C
diff --git a/openpower/package/hostboot/p9Patches/hostboot-1002-Temporarily-inhibit-importing-i2c-array-info-into.patch b/openpower/package/hostboot/p9Patches/hostboot-1002-Temporarily-inhibit-importing-i2c-array-info-into.patch
new file mode 100644
index 0000000..3ebbb46
--- /dev/null
+++ b/openpower/package/hostboot/p9Patches/hostboot-1002-Temporarily-inhibit-importing-i2c-array-info-into.patch
@@ -0,0 +1,29 @@
+From 573961cfe0eb570d7e0e99616318d39fa04495f0 Mon Sep 17 00:00:00 2001
+From: Nick Bofferding <bofferdn@us.ibm.com>
+Date: Thu, 6 Jul 2017 08:11:40 -0500
+Subject: [PATCH v1 1002/1002] Temporarily inhibit importing i2c array info
+ into HDAT
+
+Change-Id: Ibf80dcce5244e6a84c994c06cf78876cbecce962
+---
+ src/usr/i2c/i2c.C | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/usr/i2c/i2c.C b/src/usr/i2c/i2c.C
+index e969bae..682fd89 100755
+--- a/src/usr/i2c/i2c.C
++++ b/src/usr/i2c/i2c.C
+@@ -3916,7 +3916,9 @@ void getDeviceInfo( TARGETING::Target* i_i2cMaster,
+ 
+     } //end of i2cm
+ 
+-#if CONFIG_INCLUDE_XML_OPENPOWER
++// @TODO RTC 173541: Re-enable
++// #if CONFIG_INCLUDE_XML_OPENPOWER
++#if 0
+     TARGETING::Target * sys = NULL;
+     TARGETING::targetService().getTopLevelTarget(sys);
+ 
+-- 
+1.8.2.2
+
