diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig
index cd32a2c..45e6787 100644
--- a/openpower/configs/firestone_defconfig
+++ b/openpower/configs/firestone_defconfig
@@ -1,7 +1,12 @@
-BR2_powerpc64=y
+BR2_powerpc64le=y
 BR2_powerpc_power8=y
 BR2_OPENPOWER_PLATFORM=y
 
+BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_TOOLCHAIN_BUILDROOT_CXX=y
+# BR2_TOOLCHAIN_BUILDROOT_LIBSTDCPP is not set
+
 BR2_OPENPOWER_CONFIG_NAME="firestone"
 BR2_OPENPOWER_XML_PACKAGE="firestone-xml"
 BR2_HOSTBOOT_CONFIG_FILE="firestone.config"
diff --git a/openpower/configs/garrison_defconfig b/openpower/configs/garrison_defconfig
index c5bde78..3069ac7 100644
--- a/openpower/configs/garrison_defconfig
+++ b/openpower/configs/garrison_defconfig
@@ -1,7 +1,10 @@
-BR2_powerpc64=y
+BR2_powerpc64le=y
 BR2_powerpc_power8=y
 BR2_OPENPOWER_PLATFORM=y
 
+BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+
 BR2_OPENPOWER_CONFIG_NAME="garrison"
 BR2_OPENPOWER_XML_PACKAGE="garrison-xml"
 BR2_HOSTBOOT_CONFIG_FILE="garrison.config"
diff --git a/openpower/configs/habanero_defconfig b/openpower/configs/habanero_defconfig
index edcad58..14c10ae 100644
--- a/openpower/configs/habanero_defconfig
+++ b/openpower/configs/habanero_defconfig
@@ -1,7 +1,12 @@
-BR2_powerpc64=y
+BR2_powerpc64le=y
 BR2_powerpc_power8=y
 BR2_OPENPOWER_PLATFORM=y
 
+BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_TOOLCHAIN_BUILDROOT_CXX=y
+# BR2_TOOLCHAIN_BUILDROOT_LIBSTDCPP is not set
+
 BR2_OPENPOWER_CONFIG_NAME="habanero"
 BR2_OPENPOWER_XML_PACKAGE="habanero-xml"
 BR2_HOSTBOOT_CONFIG_FILE="habanero.config"
diff --git a/openpower/configs/linux/skiroot_defconfig b/openpower/configs/linux/skiroot_defconfig
index 78a02c0..648de48 100644
--- a/openpower/configs/linux/skiroot_defconfig
+++ b/openpower/configs/linux/skiroot_defconfig
@@ -3,6 +3,7 @@
 CONFIG_VSX=y
 CONFIG_SMP=y
 CONFIG_NR_CPUS=2048
+CONFIG_CPU_LITTLE_ENDIAN=y
 # CONFIG_SWAP is not set
 CONFIG_SYSVIPC=y
 CONFIG_POSIX_MQUEUE=y
diff --git a/openpower/configs/openpower_mambo_defconfig b/openpower/configs/openpower_mambo_defconfig
index 6c61fa5..12c8308 100644
--- a/openpower/configs/openpower_mambo_defconfig
+++ b/openpower/configs/openpower_mambo_defconfig
@@ -1,7 +1,10 @@
-BR2_powerpc64=y
+BR2_powerpc64le=y
 BR2_powerpc_power8=y
 BR2_OPENPOWER_PLATFORM=y
 
+BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+
 # No HostBoot for Mambo
 BR2_PACKAGE_HOSTBOOT=n
 BR2_PACKAGE_HOSTBOOT_BINARIES=n
@@ -28,7 +31,7 @@
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_GIT=y
 BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/open-power/linux.git"
-BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="dc97a6e626eaf22c9bd4baec3954fa5501ce1c63"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="d0ff068a9962ba96d4e6ddfba2a4e9fd8bc9a763"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/configs/linux/skiroot_defconfig"
 BR2_LINUX_KERNEL_ZIMAGE_EPAPR=y
diff --git a/openpower/configs/palmetto_defconfig b/openpower/configs/palmetto_defconfig
index b589463..1468fe8 100644
--- a/openpower/configs/palmetto_defconfig
+++ b/openpower/configs/palmetto_defconfig
@@ -1,7 +1,12 @@
-BR2_powerpc64=y
+BR2_powerpc64le=y
 BR2_powerpc_power8=y
 BR2_OPENPOWER_PLATFORM=y
 
+BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_EXTRA_GCC_CONFIG_OPTIONS="--enable-targets=powerpc64-linux"
+BR2_TOOLCHAIN_BUILDROOT_CXX=y
+# BR2_TOOLCHAIN_BUILDROOT_LIBSTDCPP is not set
+
 BR2_OPENPOWER_CONFIG_NAME="palmetto"
 BR2_OPENPOWER_XML_PACKAGE="palmetto-xml"
 BR2_HOSTBOOT_CONFIG_FILE="palmetto.config"
diff --git a/openpower/package/firestone-xml/firestone.mk b/openpower/package/firestone-xml/firestone.mk
index 76b5755..68e6347 100644
--- a/openpower/package/firestone-xml/firestone.mk
+++ b/openpower/package/firestone-xml/firestone.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-FIRESTONE_XML_VERSION ?= 5123184b9f26bc1068afb9b57e796aecaf61b249
+FIRESTONE_XML_VERSION ?= 7ac1ae80d0f965d39bdee944f89ed5a118d2adc2
 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 e81e50c..688bc6f 100644
--- a/openpower/package/garrison-xml/garrison.mk
+++ b/openpower/package/garrison-xml/garrison.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GARRISON_XML_VERSION ?= 4f4b2373ff8ef35338c20ab3660a0e4d980aeddd
+GARRISON_XML_VERSION ?= 835c3467a37773205960d7b0150a3c360972e178
 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 501bceb..38232b0 100644
--- a/openpower/package/habanero-xml/habanero-xml.mk
+++ b/openpower/package/habanero-xml/habanero-xml.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HABANERO_XML_VERSION ?= 03d911f12311ba884ec9e08a6c114daabfce545a
+HABANERO_XML_VERSION ?= b86989fce1e543a07706206f12ef00b0b6a170c7
 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-0003-Fix-handling-of-ECC-protected-partitions-at-runtime.patch b/openpower/package/hostboot/hostboot-0003-Fix-handling-of-ECC-protected-partitions-at-runtime.patch
deleted file mode 100644
index c9385d2..0000000
--- a/openpower/package/hostboot/hostboot-0003-Fix-handling-of-ECC-protected-partitions-at-runtime.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 69e22b2f8c8425b4f2ec8f7adcf164afed7f2ff8 Mon Sep 17 00:00:00 2001
-From: Dan Crowell <dcrowell@us.ibm.com>
-Date: Mon, 27 Apr 2015 13:48:57 -0500
-Subject: [PATCH] Fix handling of ECC protected partitions at runtime
-
-Modify the code to only check ECC on the logical size of the data
-that is read, rather than on the full physical size.
-
-Change-Id: Ia45989e64ef70e63542274ef59df2cc755f8082e
----
- src/usr/pnor/runtime/rt_pnor.C | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/src/usr/pnor/runtime/rt_pnor.C b/src/usr/pnor/runtime/rt_pnor.C
-index d434f26..6e52999 100644
---- a/src/usr/pnor/runtime/rt_pnor.C
-+++ b/src/usr/pnor/runtime/rt_pnor.C
-@@ -405,10 +405,12 @@ errlHndl_t RtPnor::readFromDevice (uint64_t i_procId,
-         {
-             TRACFCOMP(g_trac_pnor, "RtPnor::readFromDevice: removing ECC...");
-             // remove the ECC and fix the original data if it is broken
-+            size_t l_eccSize = (l_rc/9)*8;
-+            l_eccSize = std::min( l_eccSize, i_size );
-             PNOR::ECC::eccStatus ecc_stat =
-                  PNOR::ECC::removeECC(reinterpret_cast<uint8_t*>(l_dataToRead),
-                                       reinterpret_cast<uint8_t*>(o_data),
--                                      l_rc); //actual size of read data
-+                                      l_eccSize); //logical size of read data
- 
-             // create an error if we couldn't correct things
-             if( ecc_stat == PNOR::ECC::UNCORRECTABLE )
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0004-Remove-gard-actions-for-memory-plugging-errors.patch b/openpower/package/hostboot/hostboot-0003-Remove-gard-actions-for-memory-plugging-errors.patch
similarity index 100%
rename from openpower/package/hostboot/hostboot-0004-Remove-gard-actions-for-memory-plugging-errors.patch
rename to openpower/package/hostboot/hostboot-0003-Remove-gard-actions-for-memory-plugging-errors.patch
diff --git a/openpower/package/hostboot/hostboot-0005-SW311560-HWP-error-prevent-IPL-on-habanero.patch b/openpower/package/hostboot/hostboot-0004-SW311560-HWP-error-prevent-IPL-on-habanero.patch
similarity index 100%
rename from openpower/package/hostboot/hostboot-0005-SW311560-HWP-error-prevent-IPL-on-habanero.patch
rename to openpower/package/hostboot/hostboot-0004-SW311560-HWP-error-prevent-IPL-on-habanero.patch
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
new file mode 100644
index 0000000..773a9db
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0005-shutdown-deconfig-outside-reconfig-loop.patch
@@ -0,0 +1,187 @@
+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
new file mode 100644
index 0000000..92b80d1
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0006-Change-the-way-we-handle-response-to-chassis-power-c.patch
@@ -0,0 +1,82 @@
+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
new file mode 100644
index 0000000..3e647b6
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0007-console-ast2400-Fix-SIO-address-for-SUART-configurat.patch
@@ -0,0 +1,38 @@
+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
new file mode 100644
index 0000000..180f326
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0008-console-ast2400-Fix-swapped-address-value-writes-in-.patch
@@ -0,0 +1,38 @@
+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 af7c39d..b1c3805 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HOSTBOOT_VERSION ?= 460fdf36b1fe3bc1157738cd1158a73893a1454b
+HOSTBOOT_VERSION ?= 3f6449495b5922c13c9b977b252f9638ccb8cf4c
 HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
 
 HOSTBOOT_LICENSE = Apache-2.0
diff --git a/openpower/package/occ/occ.mk b/openpower/package/occ/occ.mk
index 687a293..2dcc253 100644
--- a/openpower/package/occ/occ.mk
+++ b/openpower/package/occ/occ.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-OCC_VERSION ?= ee27bc9b95dc3090662e46712364fe816ca84a74
+OCC_VERSION ?= 0726e692d4eea5465f0509bb9f12185745a77ca9
 OCC_SITE ?= $(call github,open-power,occ,$(OCC_VERSION))
 OCC_LICENSE = Apache-2.0
 OCC_DEPENDENCIES = host-binutils host-p8-pore-binutils
diff --git a/openpower/package/palmetto-xml/palmetto-xml.mk b/openpower/package/palmetto-xml/palmetto-xml.mk
index 41c348e..2573450 100644
--- a/openpower/package/palmetto-xml/palmetto-xml.mk
+++ b/openpower/package/palmetto-xml/palmetto-xml.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-PALMETTO_XML_VERSION = 9206323e35e40ca8957049965ba8e2564467040e
+PALMETTO_XML_VERSION = a712d271730f1ea28438e8d1bc30793db072510a
 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-0002-libflash-Provide-an-internal-parity-implementation-t.patch b/openpower/package/skiboot/skiboot-0002-libflash-Provide-an-internal-parity-implementation-t.patch
new file mode 100644
index 0000000..e377567
--- /dev/null
+++ b/openpower/package/skiboot/skiboot-0002-libflash-Provide-an-internal-parity-implementation-t.patch
@@ -0,0 +1,87 @@
+From de70ad43ccee4dd51e9d38325c7713f590323a47 Mon Sep 17 00:00:00 2001
+From: Jeremy Kerr <jk@ozlabs.org>
+Date: Mon, 23 Feb 2015 16:43:53 +0800
+Subject: [PATCH] libflash: Provide an internal parity implementation, to
+ remove libgcc dependency
+
+In commit 8f5b8616, we introduced a dependency on libgcc, for the
+__builtin_parityl() function in commit 6cfaa3ba.
+
+However, if we're building with a biarch compiler, we may not have a
+libgcc available.
+
+This commit removes the __builtin_parityl() call, and replaces with the
+equivalent instructions, and removes the dependency on libgcc.
+
+Although this is untested, I have confirmed that the __builtin_parityl()
+functions emits the same instructions (on power7 and power8, with
+gcc-4.9) as we're using in the parity() function.
+
+Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
+---
+ Makefile.main  |  5 ++---
+ libflash/ecc.c | 14 +++++++++++++-
+ 2 files changed, 15 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.main b/Makefile.main
+index 665baf4..b5376fc 100644
+--- a/Makefile.main
++++ b/Makefile.main
+@@ -120,7 +120,6 @@ OBJS += $(LIBPORE)
+ endif
+ OBJS += $(LIBC) $(CCAN) $(DEVSRC_OBJ)
+ OBJS_NO_VER = $(OBJS)
+-EXTRA_LIBS = -Wl,-lgcc
+ ALL_OBJS = $(OBJS) version.o
+ 
+ ALL_OBJS_1 = $(ALL_OBJS) asm/dummy_map.o
+@@ -130,12 +129,12 @@ $(TARGET).lid: $(TARGET).elf
+ 	$(call Q,OBJCOPY, $(OBJCOPY) -O binary -S $^ $@, $@)
+ 
+ $(TARGET).tmp.elf: $(ALL_OBJS_1) $(TARGET).lds $(KERNEL)
+-	$(call Q,LD, $(CC) $(LDFLAGS) -T $(TARGET).lds $(ALL_OBJS_1) $(EXTRA_LIBS) -o $@, $@)
++	$(call Q,LD, $(CC) $(LDFLAGS) -T $(TARGET).lds $(ALL_OBJS_1) -o $@, $@)
+ 
+ asm/real_map.o : $(TARGET).tmp.map
+ 
+ $(TARGET).elf: $(ALL_OBJS_2) $(TARGET).lds $(KERNEL)
+-	$(call Q,LD, $(CC) $(LDFLAGS) -T $(TARGET).lds $(ALL_OBJS_2) $(EXTRA_LIBS) -o $@, $@)
++	$(call Q,LD, $(CC) $(LDFLAGS) -T $(TARGET).lds $(ALL_OBJS_2) -o $@, $@)
+ 
+ $(SUBDIRS):
+ 	$(call Q,MKDIR,mkdir $@, $@)
+diff --git a/libflash/ecc.c b/libflash/ecc.c
+index 9293743..3d94594 100644
+--- a/libflash/ecc.c
++++ b/libflash/ecc.c
+@@ -88,6 +88,18 @@ static uint8_t syndromematrix[] = {
+         UE, UE, UE, UE,  4, UE, UE, UE, UE, UE, UE, UE, UE, UE, UE, UE,
+ };
+ 
++static uint8_t parity(uint64_t data)
++{
++	uint8_t p;
++
++	asm volatile(
++		"popcntb %1,%0\n"
++		"prtyd   %1,%1\n"
++		: "=r"(p) : "r"(data));
++
++	return p;
++}
++
+ /**
+  * Create the ECC field corresponding to a 8-byte data field
+  *
+@@ -100,7 +112,7 @@ static uint8_t eccgenerate(uint64_t data)
+ 	uint8_t result = 0;
+ 
+ 	for (i = 0; i < 8; i++)
+-		result |= __builtin_parityl(eccmatrix[i] & data) << i;
++		result |= parity(eccmatrix[i] & data) << i;
+ 
+ 	return result;
+ }
+-- 
+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
new file mode 100644
index 0000000..e689436
--- /dev/null
+++ b/openpower/package/skiboot/skiboot-0003-Makefile-specify-abiv1.patch
@@ -0,0 +1,27 @@
+From 11bff93ad1ca613b1db9d96e9ea9c46b7d7bf48d Mon Sep 17 00:00:00 2001
+From: Jeremy Kerr <jk@ozlabs.org>
+Date: Thu, 5 Mar 2015 22:44:40 +1100
+Subject: [PATCH] Makefile: specify abiv1
+
+Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
+---
+ Makefile.main | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.main b/Makefile.main
+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
+ 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
+ 
+ ifeq ($(STACK_CHECK),1)
+ CFLAGS += -fstack-protector-all -pg
+-- 
+1.9.1
+
diff --git a/openpower/package/skiboot/skiboot.mk b/openpower/package/skiboot/skiboot.mk
index 7601f85..ef2798c 100644
--- a/openpower/package/skiboot/skiboot.mk
+++ b/openpower/package/skiboot/skiboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SKIBOOT_VERSION = skiboot-5.0.4
+SKIBOOT_VERSION = skiboot-5.0.5
 SKIBOOT_SITE = $(call github,open-power,skiboot,$(SKIBOOT_VERSION))
 SKIBOOT_INSTALL_IMAGES = YES
 SKIBOOT_INSTALL_TARGET = NO
@@ -26,7 +26,7 @@
 endif
 
 define SKIBOOT_BUILD_CMDS
-	$(TARGET_CONFIGURE_OPTS) SKIBOOT_VERSION=$(SKIBOOT_VERSION) \
+	$(TARGET_CONFIGURE_OPTS) SKIBOOT_VERSION=`cat $(SKIBOOT_VERSION_FILE)` \
 		$(MAKE) $(SKIBOOT_MAKE_OPTS) -C $(@D) all
 endef
 
diff --git a/openpower/platform/Config.in b/openpower/platform/Config.in
index badcc22..206b343 100644
--- a/openpower/platform/Config.in
+++ b/openpower/platform/Config.in
@@ -1,4 +1,4 @@
 config BR2_OPENPOWER_PLATFORM
     bool "Enable the OpenPower Platform"
     default n
-    depends on BR2_powerpc64
+    depends on BR2_powerpc64 || BR2_powerpc64le
