Merge pull request #218 from open-power/master-next

Merge v1.5 content back to master.
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