diff --git a/openpower/package/hostboot/hostboot-0002-Changes-for-Habanero-bringup-uart-delay-and-centaur.patch b/openpower/package/hostboot/hostboot-0002-Changes-for-Habanero-bringup-uart-delay-and-centaur.patch
new file mode 100644
index 0000000..8a7d93c
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0002-Changes-for-Habanero-bringup-uart-delay-and-centaur.patch
@@ -0,0 +1,64 @@
+From 0c69e87e86e62253bc5a33cadf41e3d5f80971f0 Mon Sep 17 00:00:00 2001
+From: Brian Silver <bsilver@us.ibm.com>
+Date: Wed, 5 Nov 2014 14:16:36 -0600
+Subject: [PATCH] Changes for Habanero bringup, uart delay and centaur/vddr
+
+Change-Id: I381732be6facd25fb27bbd1f8ac0d75eb5b4980e
+---
+ src/usr/console/uart.C                         |  2 +-
+ src/usr/hwpf/hwp/dram_training/palmetto_vddr.C | 18 +++++++++++++-----
+ 2 files changed, 14 insertions(+), 6 deletions(-)
+
+diff --git a/src/usr/console/uart.C b/src/usr/console/uart.C
+index 385a05c..a269168 100644
+--- a/src/usr/console/uart.C
++++ b/src/usr/console/uart.C
+@@ -116,7 +116,7 @@ namespace CONSOLE
+             // Wait for transmit FIFO to have space.
+             {
+                 const uint64_t DELAY_NS = 100;
+-                const uint64_t DELAY_LOOPS = 10000;
++                const uint64_t DELAY_LOOPS = 1000000;
+ 
+                 uint8_t data = 0;
+                 uint64_t loops = 0;
+diff --git a/src/usr/hwpf/hwp/dram_training/palmetto_vddr.C b/src/usr/hwpf/hwp/dram_training/palmetto_vddr.C
+index 5286d26..9642a36 100644
+--- a/src/usr/hwpf/hwp/dram_training/palmetto_vddr.C
++++ b/src/usr/hwpf/hwp/dram_training/palmetto_vddr.C
+@@ -88,19 +88,27 @@ static errlHndl_t for_each_centaur(errlHndl_t (*func)(Target *))
+ 
+     errlHndl_t l_err = NULL;
+ 
+-    for (TargetHandleList::iterator
+-            l_membuf_iter = l_membufTargetList.begin();
+-            l_membuf_iter != l_membufTargetList.end();
+-            ++l_membuf_iter)
++    for (TargetHandleList::iterator l_membuf_iter = l_membufTargetList.begin();
++         l_membuf_iter != l_membufTargetList.end();
++         ++l_membuf_iter)
+     {
+         Target* l_pCentaur = *l_membuf_iter;
+ 
+-        l_err = (*func)(l_pCentaur);
++        TRACFCOMP(g_trac_vddr, "Performing VDDR for %x", l_pCentaur->getAttr<ATTR_HUID>());
++        if (2 == l_pCentaur->getAttr<ATTR_FSI_MASTER_PORT>())
++        {
++            l_err = (*func)(l_pCentaur);
++        }
++        else
++        {
++            TRACFCOMP(g_trac_vddr, "Skipped VDDR");
++        }
+ 
+         if( l_err )
+         {
+             break;
+         }
++        TRACFCOMP(g_trac_vddr, "No error in VDDR.");
+     }
+ 
+     return l_err;
+-- 
+1.9.1
+
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index 26491ac..5bc18cb 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HOSTBOOT_VERSION ?= 5dccc9bcd198b69cb33fc824a6a721ab1e88ff36
+HOSTBOOT_VERSION ?= 6c5f08212c150d69a931fa4fa1354b6a3aac61e8
 HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
 HOSTBOOT_LICENSE = Apache-2.0
 HOSTBOOT_DEPENDENCIES = host-binutils
