diff --git a/openpower/package/firestone-xml/firestone.mk b/openpower/package/firestone-xml/firestone.mk
index 68e6347..66db0ec 100644
--- a/openpower/package/firestone-xml/firestone.mk
+++ b/openpower/package/firestone-xml/firestone.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-FIRESTONE_XML_VERSION ?= 7ac1ae80d0f965d39bdee944f89ed5a118d2adc2
+FIRESTONE_XML_VERSION ?= 8765927c10dcf06a8e7ad8c64ddb07f3bb9c9ead
 FIRESTONE_XML_SITE ?= $(call github,open-power,firestone-xml,$(FIRESTONE_XML_VERSION))
 
 FIRESTONE_XML_LICENSE = Apache-2.0
diff --git a/openpower/package/garrison-xml/garrison.mk b/openpower/package/garrison-xml/garrison.mk
index 688bc6f..55d1d5f 100644
--- a/openpower/package/garrison-xml/garrison.mk
+++ b/openpower/package/garrison-xml/garrison.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GARRISON_XML_VERSION ?= 835c3467a37773205960d7b0150a3c360972e178
+GARRISON_XML_VERSION ?= 4410e63e97a388e156082d5bcb0325c0bbf670ad
 GARRISON_XML_SITE ?= $(call github,open-power,garrison-xml,$(GARRISON_XML_VERSION))
 
 GARRISON_XML_LICENSE = Apache-2.0
diff --git a/openpower/package/habanero-xml/habanero-xml.mk b/openpower/package/habanero-xml/habanero-xml.mk
index 38232b0..f7b417d 100644
--- a/openpower/package/habanero-xml/habanero-xml.mk
+++ b/openpower/package/habanero-xml/habanero-xml.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HABANERO_XML_VERSION ?= b86989fce1e543a07706206f12ef00b0b6a170c7
+HABANERO_XML_VERSION ?= 3ad2b324330987755584d7d0aa1d19f18c9e225e
 HABANERO_XML_SITE ?= $(call github,open-power,habanero-xml,$(HABANERO_XML_VERSION))
 
 HABANERO_XML_LICENSE = Apache-2.0
diff --git a/openpower/package/hostboot/hostboot-0004-SW311560-HWP-error-prevent-IPL-on-habanero.patch b/openpower/package/hostboot/hostboot-0004-SW311560-HWP-error-prevent-IPL-on-habanero.patch
deleted file mode 100644
index cb4e060..0000000
--- a/openpower/package/hostboot/hostboot-0004-SW311560-HWP-error-prevent-IPL-on-habanero.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 58a3d0ad88b91c7c9cab1e2c4c9e3dbc7377303f Mon Sep 17 00:00:00 2001
-From: Prachi Gupta <pragupta@us.ibm.com>
-Date: Wed, 17 Jun 2015 09:22:10 -0500
-Subject: [PATCH] SW311560: HWP error prevent IPL on habanero
-
-Change-Id: Ibd19f1986c768e08a97acdbd8b39c174f51bb399
-CQ:SW311560
----
- .../hwp/mc_config/mss_eff_config/mss_eff_config_thermal.C  | 14 +++++++++-----
- 1 file changed, 9 insertions(+), 5 deletions(-)
-
-diff --git a/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_config_thermal.C b/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_config_thermal.C
-index 1f1bb7e..996a1e0 100644
---- a/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_config_thermal.C
-+++ b/src/usr/hwpf/hwp/mc_config/mss_eff_config/mss_eff_config_thermal.C
-@@ -22,7 +22,7 @@
- /* permissions and limitations under the License.                         */
- /*                                                                        */
- /* IBM_PROLOG_END_TAG                                                     */
--// $Id: mss_eff_config_thermal.C,v 1.31 2015/04/06 22:33:11 pardeik Exp $
-+// $Id: mss_eff_config_thermal.C,v 1.32 2015/06/16 21:57:30 pardeik Exp $
- // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/
- //          centaur/working/procedures/ipl/fapi/mss_eff_config_thermal.C,v $
- //------------------------------------------------------------------------------
-@@ -55,6 +55,9 @@
- //------------------------------------------------------------------------------
- // Version:|  Author: |  Date:  | Comment:
- //---------|----------|---------|-----------------------------------------------
-+//   1.32  | pardeik  | 06/16/15| fix for ISDIMM systems to prevent a zero
-+//         |          |         |   ATTR_MSS_MEM_WATT_TARGET value
-+//         |          |         | Removed unneeded TODO commented section
- //   1.31  | pardeik  | 04/06/15 | attribute name changed for adjustment enable
- //   1.30  | pardeik  |12-FEB-15| CDIMM DDR4 throttle updates (set Nmba to Nchip)
- //         |          |         | Support for vmem regulator power adjustment
-@@ -131,10 +134,6 @@
- //         |          |         | case. 
- //   1.1   | pardeik  |01-NOV-11| First Draft.
- 
--/*
--TODO ITEMS:
--1.  Update ISDIMM power table after hardware measurements are done (GA3)
--*/
- 
- //------------------------------------------------------------------------------
- //  My Includes
-@@ -583,6 +582,11 @@ extern "C" {
- //------------------------------------------------------------------------------
- 
- // adjust the regulator power limit per dimm if enabled and use this if less than the thermal limit
-+// If reg power limit is zero, then set to thermal limit - needed for ISDIMM systems since some of these MRW attributes are not defined
-+	if (l_dimm_reg_power_limit_per_dimm == 0)
-+	{
-+	    l_dimm_reg_power_limit_per_dimm = dimm_thermal_power_limit;
-+	}
- 	l_dimm_reg_power_limit_per_dimm_adj = l_dimm_reg_power_limit_per_dimm;
- 	if (l_dimm_reg_power_limit_adj_enable == fapi::ENUM_ATTR_MRW_VMEM_REGULATOR_POWER_LIMIT_PER_DIMM_ADJ_ENABLE_TRUE)
- 	{
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0005-shutdown-deconfig-outside-reconfig-loop.patch b/openpower/package/hostboot/hostboot-0005-shutdown-deconfig-outside-reconfig-loop.patch
deleted file mode 100644
index 773a9db..0000000
--- a/openpower/package/hostboot/hostboot-0005-shutdown-deconfig-outside-reconfig-loop.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From 7c592db2c42b8dbef0f31a8daebb97ff0ed6a3ac Mon Sep 17 00:00:00 2001
-From: Stephen Cprek <smcprek@us.ibm.com>
-Date: Tue, 30 Jun 2015 16:49:22 -0500
-Subject: [PATCH] Shutdown when deconfig outside of reconfig loop on BMC
- systems
-
-Change-Id: I1faf0ab0d831a41c332993f555231a8dbecf53ef
-CQ:SW312075
----
- src/include/usr/initservice/initsvcreasoncodes.H   |   4 +-
- .../initservice/istepdispatcher/istepdispatcher.C  | 120 ++++++++++++++++-----
- 2 files changed, 98 insertions(+), 26 deletions(-)
-
-diff --git a/src/include/usr/initservice/initsvcreasoncodes.H b/src/include/usr/initservice/initsvcreasoncodes.H
-index d11824e..e174564 100644
---- a/src/include/usr/initservice/initsvcreasoncodes.H
-+++ b/src/include/usr/initservice/initsvcreasoncodes.H
-@@ -5,7 +5,7 @@
- /*                                                                        */
- /* OpenPOWER HostBoot Project                                             */
- /*                                                                        */
--/* Contributors Listed Below - COPYRIGHT 2011,2014                        */
-+/* Contributors Listed Below - COPYRIGHT 2011,2015                        */
- /* [+] International Business Machines Corp.                              */
- /*                                                                        */
- /*                                                                        */
-@@ -74,6 +74,8 @@ enum    InitServiceReasonCode
-     //termination_rc
-     SBE_EXTRACT_RC_REQUEST_REIPL =   INITSVC_COMP_ID | 0x0e,
-     RECONFIG_LOOP_TEST_RC        =   INITSVC_COMP_ID | 0x0f,
-+    //termination_rc
-+    SHUTDOWN_NOT_RECONFIG_LOOP   =   INITSVC_COMP_ID | 0x10,
- };
- 
- enum InitServiceUserDetailDataSubSection
-diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C
-index d3581e9..7f3c0b7 100644
---- a/src/usr/initservice/istepdispatcher/istepdispatcher.C
-+++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C
-@@ -96,6 +96,10 @@ const uint8_t OUTER_STOP_STEP = 14;
- const uint8_t OUTER_STOP_SUBSTEP = 5;
- const uint8_t HB_START_ISTEP = 6;
- 
-+// @todo RTC 124679 - Remove Once BMC Monitors Shutdown Attention
-+// Set Watchdog Timer To 15 seconds before calling doShutdown()
-+const uint16_t SET_WD_TIMER_IN_SECS = 15;
-+
- /**
-  * _start() task entry procedure using the macro in taskargs.H
-  */
-@@ -506,14 +510,58 @@ errlHndl_t IStepDispatcher::executeAllISteps()
-                 }
-                 else
-                 {
--                    // Reconfig loop required, but the istep is either outside
--                    // of the reconfig loop, too many reconfigs have been
--                    // attempted, in manufacturing mode, or in MPIPL.
--                    // Return an error to cause termination
-+
-                     if (!err)
-                     {
--                        err = failedDueToDeconfig(istep, substep,
--                                                  newIstep, newSubstep);
-+                        // Reconfig loop required, but the istep is either outside
-+                        // of the reconfig loop, too many reconfigs have been
-+                        // attempted, in manufacturing mode, or in MPIPL.
-+                        // Return an error to cause termination on FSP systems
-+                        if (iv_spBaseServicesEnabled)
-+                        {
-+                            err = failedDueToDeconfig(istep, substep,
-+                                                      newIstep, newSubstep);
-+                        }
-+                        // Otherwise increment the reboot count and shutdown
-+                        #ifdef CONFIG_BMC_IPMI
-+                        else
-+                        {
-+                            uint16_t l_count = 0;
-+                            SENSOR::RebootCountSensor l_sensor;
-+
-+                            // Read reboot count sensor
-+                            err = l_sensor.getRebootCount(l_count);
-+                            if (err)
-+                            {
-+                                TRACFCOMP(g_trac_initsvc, ERR_MRK"executeAllISteps: getRebootCount failed");
-+                                break;
-+                            }
-+                            // Increment reboot count
-+                            l_count++;
-+                            err = l_sensor.setRebootCount(l_count);
-+                            if (err)
-+                            {
-+                                TRACFCOMP(g_trac_initsvc, ERR_MRK"executeAllISteps: setRebootCount to %d failed", l_count);
-+                                break;
-+                            }
-+
-+                            // @TODO RTC:124679 - Remove Once BMC Monitors
-+                            // Shutdown Attention
-+                            // Set Watchdog Timer before calling doShutdown()
-+                            TRACFCOMP( g_trac_initsvc,"executeAllISteps: "
-+                                       "Set Watch Dog Timer To %d Seconds",
-+                                       SET_WD_TIMER_IN_SECS);
-+
-+                            err = IPMIWATCHDOG::setWatchDogTimer(
-+                               SET_WD_TIMER_IN_SECS,  // new time
-+                               static_cast<uint8_t>
-+                                          (IPMIWATCHDOG::DO_NOT_STOP |
-+                                           IPMIWATCHDOG::BIOS_FRB2), // default
-+                                           IPMIWATCHDOG::TIMEOUT_HARD_RESET);
-+
-+                            shutdownDuringIpl();
-+                        }
-+                        #endif
-                     }
-                     // else return the error from doIstep
-                 }
-@@ -1260,27 +1308,49 @@ void IStepDispatcher::shutdownDuringIpl()
- {
-     TRACFCOMP(g_trac_initsvc, ENTER_MRK"IStepDispatcher::shutdownDuringIpl");
- 
--    // Create and commit error log for FFDC
--
--    /*@
--     * @errortype
--     * @reasoncode       SHUTDOWN_REQUESTED_BY_FSP
--     * @severity         ERRORLOG::ERRL_SEV_INFORMATIONAL
--     * @moduleid         ISTEP_INITSVC_MOD_ID
--     * @userdata1        Current IStep
--     * @userdata2        Current SubStep
--     * @devdesc          Received shutdown request from FSP
--     */
--    errlHndl_t err = new ERRORLOG::ErrlEntry(
--        ERRORLOG::ERRL_SEV_INFORMATIONAL,
--        ISTEP_INITSVC_MOD_ID,
--        SHUTDOWN_REQUESTED_BY_FSP,
--        this->iv_curIStep, this->iv_curSubStep);
-+    // Create and commit error log for FFDC and call doShutdown with the RC
-+    // to initiate a TI
-+    if (iv_spBaseServicesEnabled)
-+    {
-+        /*@
-+         * @errortype
-+         * @reasoncode       SHUTDOWN_REQUESTED_BY_FSP
-+         * @severity         ERRORLOG::ERRL_SEV_INFORMATIONAL
-+         * @moduleid         ISTEP_INITSVC_MOD_ID
-+         * @userdata1        Current IStep
-+         * @userdata2        Current SubStep
-+         * @devdesc          Received shutdown request from FSP
-+         */
-+        errlHndl_t err = new ERRORLOG::ErrlEntry(
-+            ERRORLOG::ERRL_SEV_INFORMATIONAL,
-+            ISTEP_INITSVC_MOD_ID,
-+            SHUTDOWN_REQUESTED_BY_FSP,
-+            this->iv_curIStep, this->iv_curSubStep);
- 
--    errlCommit(err, INITSVC_COMP_ID);
-+        errlCommit(err, INITSVC_COMP_ID);
-+        INITSERVICE::doShutdown(SHUTDOWN_REQUESTED_BY_FSP);
-+    }
-+    else
-+    {
-+        /*@
-+         * @errortype
-+         * @reasoncode       SHUTDOWN_NOT_RECONFIG_LOOP
-+         * @severity         ERRORLOG::ERRL_SEV_INFORMATIONAL
-+         * @moduleid         ISTEP_INITSVC_MOD_ID
-+         * @userdata1        Current IStep
-+         * @userdata2        Current SubStep
-+         * @devdesc          Received shutdown request due to deconfigure
-+         *                   outside of reconfig loop
-+         */
-+        errlHndl_t err = new ERRORLOG::ErrlEntry(
-+            ERRORLOG::ERRL_SEV_INFORMATIONAL,
-+            ISTEP_INITSVC_MOD_ID,
-+            SHUTDOWN_NOT_RECONFIG_LOOP,
-+            this->iv_curIStep, this->iv_curSubStep);
- 
--    // Call doShutdown with the RC to initiate a TI
--    INITSERVICE::doShutdown(SHUTDOWN_REQUESTED_BY_FSP);
-+        errlCommit(err, INITSVC_COMP_ID);
-+        INITSERVICE::doShutdown(SHUTDOWN_NOT_RECONFIG_LOOP);
-+    }
- 
- }
- 
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0006-Change-the-way-we-handle-response-to-chassis-power-c.patch b/openpower/package/hostboot/hostboot-0006-Change-the-way-we-handle-response-to-chassis-power-c.patch
deleted file mode 100644
index 92b80d1..0000000
--- a/openpower/package/hostboot/hostboot-0006-Change-the-way-we-handle-response-to-chassis-power-c.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 547e3794064bc372e8d10a371bb9e305c89b8f8f Mon Sep 17 00:00:00 2001
-From: Matt Ploetz <maploetz@us.ibm.com>
-Date: Fri, 17 Jul 2015 11:55:19 -0500
-Subject: [PATCH] Change the way we handle response to chassis power cycle
-
-Change-Id: I7cb62670fe4b1ce900d0bd2a03061248d5123cc0
-RTC:131615
-Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/19148
-Tested-by: Jenkins Server
-Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
----
- src/include/usr/ipmi/ipmiif.H |  1 +
- src/usr/ipmi/ipmibt.C         | 11 ++++++++++-
- src/usr/ipmi/ipmirp.C         |  8 ++++----
- 3 files changed, 15 insertions(+), 5 deletions(-)
-
-diff --git a/src/include/usr/ipmi/ipmiif.H b/src/include/usr/ipmi/ipmiif.H
-index 26ffba3..fa13c32 100644
---- a/src/include/usr/ipmi/ipmiif.H
-+++ b/src/include/usr/ipmi/ipmiif.H
-@@ -62,6 +62,7 @@ namespace IPMI
-         CHASSIS_POWER_OFF = 0x00,
-         CHASSIS_POWER_SOFT_RESET = 0x01,
-         CHASSIS_POWER_CYCLE = 0x02,
-+        CHASSIS_POWER_RESET = 0x03,
-     };
- 
-     // Used in the factory for creating the proper subclass.
-diff --git a/src/usr/ipmi/ipmibt.C b/src/usr/ipmi/ipmibt.C
-index 7c68cdc..42a26e0 100644
---- a/src/usr/ipmi/ipmibt.C
-+++ b/src/usr/ipmi/ipmibt.C
-@@ -317,6 +317,15 @@ namespace IPMI
-                           "completion code %x",
-                           iv_netfun, iv_cmd, iv_seq, iv_cc);
- 
-+                if (iv_cc == IPMI::CC_CMDSPC1)
-+                {
-+                    // We got a completion code with 0x80, which is no data
-+                    // Let's trace the event, but not log an error.
-+                    IPMI_TRAC(ERR_MRK "SEL returned with no data, not logging "
-+                              "an error");
-+                    break;
-+                }
-+
-                 /* @errorlog tag
-                  * @errortype       ERRL_SEV_INFORMATIONAL
-                  * @moduleid        IPMI::MOD_IPMISRV_REPLY
-@@ -338,7 +347,7 @@ namespace IPMI
-                 errlCommit(err, IPMI_COMP_ID);
-                 break;
-             }
--
-+ 
-             // Before we self destruct, we need to turn the data collected in to
-             // a record we can pass to the waiting event handler.
-             Singleton<IpmiRP>::instance().postEvent(new IPMI::oemSEL(iv_data));
-diff --git a/src/usr/ipmi/ipmirp.C b/src/usr/ipmi/ipmirp.C
-index 9b69991..9a9b506 100644
---- a/src/usr/ipmi/ipmirp.C
-+++ b/src/usr/ipmi/ipmirp.C
-@@ -438,13 +438,13 @@ void IpmiRP::handlePowerMessage( IPMI::oemSEL* i_event )
- #endif
- 
-         }
--        // If the event type is a power soft reset aka power cycle
-+        // If the event type is a power soft reset, send a chasis reset
-         // update the modifier to send to the BMC
-         else if( i_event->iv_cmd[1] == IPMI::CHASSIS_POWER_SOFT_RESET )
-         {
--            // handle the message as a power cycle request
--            IPMI_TRAC("IPMI power cycle request received");
--            iv_chassis_power_mod = IPMI::CHASSIS_POWER_CYCLE;
-+            // handle the message as a power reset request
-+            IPMI_TRAC("IPMI power reset request received");
-+            iv_chassis_power_mod = IPMI::CHASSIS_POWER_RESET;
- #ifdef CONFIG_CONSOLE
-             CONSOLE::displayf(NULL, "IPMI: power cycle requested");
-             CONSOLE::flush();
--- 
-2.4.4
-
diff --git a/openpower/package/hostboot/hostboot-0007-console-ast2400-Fix-SIO-address-for-SUART-configurat.patch b/openpower/package/hostboot/hostboot-0007-console-ast2400-Fix-SIO-address-for-SUART-configurat.patch
deleted file mode 100644
index 3e647b6..0000000
--- a/openpower/package/hostboot/hostboot-0007-console-ast2400-Fix-SIO-address-for-SUART-configurat.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 5d1ff7656b2b1b8e50d9f30b180ff3e10b3adf3e Mon Sep 17 00:00:00 2001
-From: Jeremy Kerr <jk@ozlabs.org>
-Date: Mon, 6 Jul 2015 17:58:24 +0800
-Subject: [PATCH 1/3] console/ast2400: Fix SIO address for SUART configuration
-
-The SUART1 base address is at 60 hex, not 60 decimal.
-
-Luckily, we've been setting it (from g_uartBase) to the default value
-of 0xf8.
-
-Change-Id: If6e6a095871bee5b55355590a28087ccc2a6bf62
-Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
-Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/18941
-Tested-by: Jenkins Server
-Tested-by: Jenkins OP Build CI
-Tested-by: Jenkins OP HW
-Reviewed-by: Richard J. Knight <rjknight@us.ibm.com>
-Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
----
- src/usr/console/ast2400.C | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/usr/console/ast2400.C b/src/usr/console/ast2400.C
-index b2b63c3..c463dcd 100644
---- a/src/usr/console/ast2400.C
-+++ b/src/usr/console/ast2400.C
-@@ -242,7 +242,7 @@ namespace CONSOLE
-                 l_errl = writeSIOReg( 0x60, (g_uartBase >> 8) & 0xFF );
-                 if (l_errl) { break; }
- 
--                l_errl = writeSIOReg( 61, (g_uartBase & 0xFF) );
-+                l_errl = writeSIOReg( 0x61, (g_uartBase & 0xFF) );
-                 if (l_errl) { break; }
- 
-                 // Set the SerIRQ
--- 
-2.4.4
-
diff --git a/openpower/package/hostboot/hostboot-0008-console-ast2400-Fix-swapped-address-value-writes-in-.patch b/openpower/package/hostboot/hostboot-0008-console-ast2400-Fix-swapped-address-value-writes-in-.patch
deleted file mode 100644
index 180f326..0000000
--- a/openpower/package/hostboot/hostboot-0008-console-ast2400-Fix-swapped-address-value-writes-in-.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 8de824a15fe9d97fc169b262c884e09f6e59912a Mon Sep 17 00:00:00 2001
-From: Jeremy Kerr <jk@ozlabs.org>
-Date: Wed, 8 Jul 2015 15:59:40 +0800
-Subject: [PATCH 3/3] console/ast2400: Fix swapped address/value writes in
- writeSIOReg
-
-We need to write the address to 0x2e, and the data to 0x2f.
-
-Change-Id: I1271a134c19d921fa1ee54b5f0d1c0e092df9e2b
-Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
-Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/19146
-Tested-by: Jenkins Server
-Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
----
- src/usr/console/ast2400.C | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/usr/console/ast2400.C b/src/usr/console/ast2400.C
-index c463dcd..243c9be 100644
---- a/src/usr/console/ast2400.C
-+++ b/src/usr/console/ast2400.C
-@@ -83,11 +83,11 @@ namespace CONSOLE
- 
-             do{
- 
--                l_err = _writeReg( SIO_ADDR_REG_2E, i_data );
-+                l_err = _writeReg( SIO_ADDR_REG_2E, i_reg );
- 
-                 if(l_err) { break; }
- 
--                l_err = _writeReg( SIO_DATA_REG_2F, i_reg );
-+                l_err = _writeReg( SIO_DATA_REG_2F, i_data );
- 
-             }while(0);
- 
--- 
-2.4.4
-
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index b1c3805..e634aa1 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HOSTBOOT_VERSION ?= 3f6449495b5922c13c9b977b252f9638ccb8cf4c
+HOSTBOOT_VERSION ?= 6ba2412862a1548c442c9d082b2af1c5ed48a1f9
 HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
 
 HOSTBOOT_LICENSE = Apache-2.0
diff --git a/openpower/package/palmetto-xml/palmetto-xml.mk b/openpower/package/palmetto-xml/palmetto-xml.mk
index 2573450..771574b 100644
--- a/openpower/package/palmetto-xml/palmetto-xml.mk
+++ b/openpower/package/palmetto-xml/palmetto-xml.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-PALMETTO_XML_VERSION = a712d271730f1ea28438e8d1bc30793db072510a
+PALMETTO_XML_VERSION = 92fe7abe1ab5cb328390762e3437e39f3a812839
 PALMETTO_XML_SITE = $(call github,open-power,palmetto-xml,$(PALMETTO_XML_VERSION))
 
 PALMETTO_XML_LICENSE = Apache-2.0
diff --git a/openpower/package/skiboot/skiboot-0001-specify-mbig-endian-in-link-flags.patch b/openpower/package/skiboot/skiboot-0001-specify-mbig-endian-in-link-flags.patch
deleted file mode 100644
index f5f174c..0000000
--- a/openpower/package/skiboot/skiboot-0001-specify-mbig-endian-in-link-flags.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From ec49ccee122c1be9b0d90c0f810a8964575bd57f Mon Sep 17 00:00:00 2001
-From: Jeremy Kerr <jk@ozlabs.org>
-Date: Wed, 11 Feb 2015 15:47:17 +0800
-Subject: [PATCH] Makefile: specify -mbig-endian in link flags
-
-Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
----
- Makefile.main | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.main b/Makefile.main
-index b5376fc..0fca221 100644
---- a/Makefile.main
-+++ b/Makefile.main
-@@ -64,7 +64,7 @@ CFLAGS += $(CWARNS) $(OPTS) $(DBG)
- 
- LDFLAGS := -m64 -static -nostdlib -Wl,--gc-sections -pie
- LDFLAGS += -Wl,-Ttext-segment,$(LD_TEXT) -Wl,-N -Wl,--build-id=none
--LDFLAGS += -Wl,--no-multi-toc
-+LDFLAGS += -Wl,--no-multi-toc -mbig-endian -Wl,--oformat,elf64-powerpc
- LDRFLAGS=-melf64ppc
- # Debug stuff
- #LDFLAGS += -Wl,-v -Wl,-Map,foomap 
--- 
-1.9.1
-
diff --git a/openpower/package/skiboot/skiboot-0003-Makefile-specify-abiv1.patch b/openpower/package/skiboot/skiboot-0003-Makefile-specify-abiv1.patch
index e689436..ad729d3 100644
--- a/openpower/package/skiboot/skiboot-0003-Makefile-specify-abiv1.patch
+++ b/openpower/package/skiboot/skiboot-0003-Makefile-specify-abiv1.patch
@@ -12,16 +12,14 @@
 index 3c67037..76f0bd3 100644
 --- a/Makefile.main
 +++ b/Makefile.main
-@@ -50,7 +50,8 @@ CPPFLAGS += -DBITS_PER_LONG=64 -DHAVE_BIG_ENDIAN
- # causing all our printf's to warn
+@@ -51,6 +51,7 @@ CPPFLAGS += -DBITS_PER_LONG=64 -DHAVE_BIG_ENDIAN
  CPPFLAGS += -ffreestanding
  
--CFLAGS := -fno-strict-aliasing -fstack-protector-all -pie -mbig-endian -m64
-+CFLAGS := -fno-strict-aliasing -fstack-protector-all -pie \
-+	  -mbig-endian -m64 -mabi=elfv1
+ CFLAGS := -fno-strict-aliasing -fstack-protector-all -pie -mbig-endian -m64
++CFLAGS += -mabi=elfv1
+ CFLAGS += -Wl,--oformat,elf64-powerpc
  
- ifeq ($(STACK_CHECK),1)
- CFLAGS += -fstack-protector-all -pg
+ ifeq ($(SKIBOOT_GCOV),1)
 -- 
 1.9.1
 
diff --git a/openpower/package/skiboot/skiboot-0004-Fix-compile-failures-on-RHEL6.patch b/openpower/package/skiboot/skiboot-0004-Fix-compile-failures-on-RHEL6.patch
new file mode 100644
index 0000000..2f226a4
--- /dev/null
+++ b/openpower/package/skiboot/skiboot-0004-Fix-compile-failures-on-RHEL6.patch
@@ -0,0 +1,30 @@
+From 3600e0e9bf8bb45039ba32df45994c28bb6419cc Mon Sep 17 00:00:00 2001
+From: Patrick Williams <iawillia@us.ibm.com>
+Date: Tue, 4 Aug 2015 11:27:09 -0500
+Subject: [PATCH] Fix compile failures on RHEL6.
+
+---
+ Makefile.main | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.main b/Makefile.main
+index 3851c20..1f2b673 100644
+--- a/Makefile.main
++++ b/Makefile.main
+@@ -19,11 +19,9 @@ CWARNS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
+ 	  -Werror-implicit-function-declaration -Wdeclaration-after-statement \
+ 	  -Wno-pointer-sign -Wextra -Wno-sign-compare \
+ 	  -Wmissing-prototypes -Wmissing-declarations \
+-	  -Wwrite-strings -Wcast-align -Wjump-misses-init \
++	  -Wwrite-strings -Wcast-align \
+ 	  -Winit-self \
+-	  -Wsuggest-attribute=const \
+-	  -Wsuggest-attribute=noreturn \
+-	  -Wframe-larger-than=1024 -Wstack-usage=1024 \
++	  -Wframe-larger-than=1024 \
+ 	  -Werror -Wno-error=format
+ 
+ # Host tools and options
+-- 
+2.4.4
+
diff --git a/openpower/package/skiboot/skiboot.mk b/openpower/package/skiboot/skiboot.mk
index ef2798c..3eee05e 100644
--- a/openpower/package/skiboot/skiboot.mk
+++ b/openpower/package/skiboot/skiboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SKIBOOT_VERSION = skiboot-5.0.5
+SKIBOOT_VERSION = skiboot-5.1.0-beta1
 SKIBOOT_SITE = $(call github,open-power,skiboot,$(SKIBOOT_VERSION))
 SKIBOOT_INSTALL_IMAGES = YES
 SKIBOOT_INSTALL_TARGET = NO
