Hostboot: Patch for IPMI power-cycle loop.
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
+