diff --git a/openpower/package/hostboot/hostboot-0001-Revert-Base-devtree-model-on-vpd.patch b/openpower/package/hostboot/hostboot-0001-Revert-Base-devtree-model-on-vpd.patch
new file mode 100644
index 0000000..df8151c
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0001-Revert-Base-devtree-model-on-vpd.patch
@@ -0,0 +1,86 @@
+From 61bc4c7ce14309165023389ba859163c1664b292 Mon Sep 17 00:00:00 2001
+From: Andrew Geissler <andrewg@us.ibm.com>
+Date: Sun, 14 Dec 2014 18:42:00 -0600
+Subject: [PATCH] Revert "Base devtree model on vpd"
+
+This reverts commit 212a11e8f24dae439cf9189762546079bbf40fb1.
+---
+ src/usr/devtree/bld_devtree.C | 55 ++-----------------------------------------
+ 1 file changed, 2 insertions(+), 53 deletions(-)
+
+diff --git a/src/usr/devtree/bld_devtree.C b/src/usr/devtree/bld_devtree.C
+index ca6d6d2..b28033b 100644
+--- a/src/usr/devtree/bld_devtree.C
++++ b/src/usr/devtree/bld_devtree.C
+@@ -44,9 +44,6 @@
+ #include <vfs/vfs.H>
+ #include <fsi/fsiif.H>
+ #include <config.h>
+-#include <devicefw/userif.H>
+-#include <vpd/cvpdenums.H>
+-
+ 
+ trace_desc_t *g_trac_devtree = NULL;
+ TRAC_INIT(&g_trac_devtree, "DEVTREE", 4096);
+@@ -606,56 +603,8 @@ errlHndl_t bld_fdt_system(devTree * i_dt, bool i_smallTree)
+         i_dt->addPropertyString(rootNode, "compatible", "ibm,powernv");
+ 
+         /* Add system model node */
+-        // Based off of the DR field in the OPFR
+-        // TODO RTC 118373 -- update to account for firestone/memory riser
+-        TARGETING::TargetHandleList l_membTargetList;
+-        getAllChips(l_membTargetList, TYPE_MEMBUF);
+-
+-        //if can't find a centaur for the CVPD, default to unknown
+-        if (l_membTargetList.size())
+-        {
+-            TARGETING::Target * l_pMem = l_membTargetList[0];
+-            size_t vpdSize = 0x0;
+-
+-            // Note: First read with NULL for o_buffer sets vpdSize to the
+-            // correct length
+-            errhdl = deviceRead( l_pMem,
+-                                 NULL,
+-                                 vpdSize,
+-                                 DEVICE_CVPD_ADDRESS( CVPD::OPFR,
+-                                                      CVPD::DR ));
+-
+-            if(errhdl)
+-            {
+-                TRACFCOMP(g_trac_devtree,ERR_MRK" Couldn't get DR size for HUID=0x%.8X",
+-                          TARGETING::get_huid(l_pMem));
+-            }
+-            else
+-            {
+-                char drBuf[vpdSize+1];
+-                memset(&drBuf, 0x0, (vpdSize+1)); //ensure null terminated str
+-                errhdl = deviceRead( l_pMem,
+-                                     reinterpret_cast<void*>( &drBuf ),
+-                                     vpdSize,
+-                                     DEVICE_CVPD_ADDRESS( CVPD::OPFR,
+-                                                          CVPD::DR ));
+-
+-                if(errhdl)
+-                {
+-                    TRACFCOMP(g_trac_devtree,ERR_MRK" Couldn't read DR for HUID=0x%.8X",
+-                              TARGETING::get_huid(l_pMem));
+-                }
+-                else
+-                {
+-                    i_dt->addPropertyString(rootNode, "model", drBuf);
+-                }
+-            }
+-        }
+-        else //chassis info not found, default to unknown
+-        {
+-            TRACFCOMP(g_trac_devtree,ERR_MRK" VPD not found, model defaulted to unknown");
+-            i_dt->addPropertyString(rootNode, "model", "unknown");
+-        }
++        //TODO RTC:88056 - store model type in attributes?
++        i_dt->addPropertyString(rootNode, "model", "palmetto");
+     }
+ 
+     return errhdl;
+-- 
+1.8.2.2
+
diff --git a/openpower/package/hostboot/hostboot-0003-Temporary-Patch-to-fix-PCIE-issues-for-Open-Power-sy.patch b/openpower/package/hostboot/hostboot-0003-Temporary-Patch-to-fix-PCIE-issues-for-Open-Power-sy.patch
index cb3385d..7237c7e 100755
--- a/openpower/package/hostboot/hostboot-0003-Temporary-Patch-to-fix-PCIE-issues-for-Open-Power-sy.patch
+++ b/openpower/package/hostboot/hostboot-0003-Temporary-Patch-to-fix-PCIE-issues-for-Open-Power-sy.patch
@@ -1,18 +1,17 @@
-From 0c0bb4c8d003ccb8bede57d3576f23d4a6aec3b9 Mon Sep 17 00:00:00 2001
-From: Mike Baiocchi <baiocchi@us.ibm.com>
-Date: Sat, 13 Dec 2014 00:53:50 -0600
+From 2de1849ea6850ad5849e770a9e8ee5bd2f8fdfec Mon Sep 17 00:00:00 2001
+From: Andrew Geissler <andrewg@us.ibm.com>
+Date: Sun, 14 Dec 2014 23:10:18 -0600
 Subject: [PATCH] Temporary Patch to fix PCIE issues for Open Power systems
 
-Change-Id: I447f172431562818290932a2d733add687dd0f3d
 ---
  src/usr/targeting/common/genHwsvMrwXml.pl | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/usr/targeting/common/genHwsvMrwXml.pl b/src/usr/targeting/common/genHwsvMrwXml.pl
-index eac3860..3e55aca 100755
+index a6ebb2f..a2c243a 100755
 --- a/src/usr/targeting/common/genHwsvMrwXml.pl
 +++ b/src/usr/targeting/common/genHwsvMrwXml.pl
-@@ -2742,7 +2742,7 @@ sub generate_proc
+@@ -2956,7 +2956,7 @@ sub generate_proc
              $pcie_list{$ipath}{0}{0}{'lane-mask'},
              $pcie_list{$ipath}{0}{1}{'lane-mask'},
              $pcie_list{$ipath}{1}{0}{'lane-mask'},
diff --git a/openpower/package/hostboot/hostboot-0001-Disable-centaur-memory-throttle.patch b/openpower/package/hostboot/hostboot-0004-Disable-centaur-memory-throttle.patch
similarity index 99%
rename from openpower/package/hostboot/hostboot-0001-Disable-centaur-memory-throttle.patch
rename to openpower/package/hostboot/hostboot-0004-Disable-centaur-memory-throttle.patch
index 06eb3f1..632738c 100644
--- a/openpower/package/hostboot/hostboot-0001-Disable-centaur-memory-throttle.patch
+++ b/openpower/package/hostboot/hostboot-0004-Disable-centaur-memory-throttle.patch
@@ -91,5 +91,4 @@
  # CDIMM = 0, RDIMM = 1, UDIMM = 2, LRDIMM = 3
  
 -- 
-1.9.1
-
+1.9.1
\ No newline at end of file
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index ef13e4e..38f9443 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HOSTBOOT_VERSION ?= 903b403d839afcf45c6cbdccc1210bed3be1a42c
+HOSTBOOT_VERSION ?= 9b53fb2a9083e62380f7bf2fb041378ef4de96ee
 HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
 
 HOSTBOOT_LICENSE = Apache-2.0
