Enable SBE Updates
diff --git a/openpower/package/hostboot/hostboot-0011-Update-Shutdown-Path-for-SBE-Updates.patch b/openpower/package/hostboot/hostboot-0011-Update-Shutdown-Path-for-SBE-Updates.patch
new file mode 100644
index 0000000..dc80e92
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0011-Update-Shutdown-Path-for-SBE-Updates.patch
@@ -0,0 +1,158 @@
+From c8c9edd25a04a8ff1974fd75e27a3b24b71030fc Mon Sep 17 00:00:00 2001
+From: Mike Baiocchi <baiocchi@us.ibm.com>
+Date: Fri, 27 Feb 2015 13:55:34 -0600
+Subject: [PATCH 6/7] Update Shutdown Path for SBE Updates
+
+This change will do the following:
+-- Flush out a console message to alert the user that the system is
+   shutting down to perform a SBE Update.
+-- Set the watchdog timer to 15 seconds before shutting down.
+-- Set the watchdog timer to NO_ACTIONS such that the boot count
+   sensor will handle the re-IPL.
+
+Change-Id: I3e8ca07030e50a56cd8bafc514bab036e3fdab96
+RTC: 120734
+(cherry picked from commit 20163b32e98f40e9346863e5954184958acc9af5)
+---
+ src/include/usr/ipmi/ipmiwatchdog.H |    1 +
+ src/usr/sbe/sbe_resolve_sides.C     |   33 +++++++++++++++++++++++++--------
+ src/usr/sbe/sbe_resolve_sides.H     |    4 ++++
+ src/usr/sbe/sbe_update.C            |   14 ++++++++++++++
+ 4 files changed, 44 insertions(+), 8 deletions(-)
+
+diff --git a/src/include/usr/ipmi/ipmiwatchdog.H b/src/include/usr/ipmi/ipmiwatchdog.H
+index f23b771..62840ce 100644
+--- a/src/include/usr/ipmi/ipmiwatchdog.H
++++ b/src/include/usr/ipmi/ipmiwatchdog.H
+@@ -79,6 +79,7 @@ enum TIMER_USE
+  */
+ enum TIMER_ACTIONS
+ {
++    NO_ACTIONS              =   0x00, // all bits
+     PRE_TIMEOUT_INT_SMI     =   0x10, // bit 4
+     PRE_TIMEOUT_INT_NMI     =   0x20, // bit 5
+     PRE_TIMEOUT_INT_MSG     =   0x30, // bits 4 & 5
+diff --git a/src/usr/sbe/sbe_resolve_sides.C b/src/usr/sbe/sbe_resolve_sides.C
+index df9958d..90217b6 100644
+--- a/src/usr/sbe/sbe_resolve_sides.C
++++ b/src/usr/sbe/sbe_resolve_sides.C
+@@ -40,6 +40,7 @@
+ #include <sys/misc.h>
+ #include <hwas/common/deconfigGard.H>
+ #include <initservice/initserviceif.H>
++#include <console/consoleif.H>
+ #include <config.h>
+ #include <ipmi/ipmiwatchdog.H>
+ #include <ipmi/ipmisensor.H>
+@@ -285,7 +286,20 @@ errlHndl_t resolveProcessorSbeSeeproms()
+                        l_restartNeeded);
+ 
+ #ifdef CONFIG_BMC_IPMI
+-                sbePreShutdownIpmiCalls();
++            sbePreShutdownIpmiCalls();
++#endif
++
++#ifdef CONFIG_CONSOLE
++  #ifdef CONFIG_BMC_IPMI
++            CONSOLE::displayf(SBE_COMP_NAME, "System Shutting Down In %d "
++                              "Seconds To Perform SBE Update\n",
++                              SET_WD_TIMER_IN_SECS);
++  #else
++            CONSOLE::displayf(SBE_COMP_NAME, "System Shutting Down To "
++                              "Perform SBE Update\n");
++  #endif
++
++            CONSOLE::flush();
+ #endif
+ 
+             TRACFCOMP( g_trac_sbe,
+@@ -1276,7 +1290,6 @@ errlHndl_t resolveImageHBBaddr(TARGETING::Target* i_target,
+ void sbePreShutdownIpmiCalls( void )
+ {
+     errlHndl_t err = NULL;
+-
+     TRACFCOMP( g_trac_sbe, ENTER_MRK"sbePreShutdownIpmiCalls");
+ 
+     do{
+@@ -1328,13 +1341,17 @@ void sbePreShutdownIpmiCalls( void )
+         }
+ 
+         // @todo RTC 124679 - Remove Once BMC Monitors Shutdown Attention
+-        // Set Watchdog Timer To 10 seconds
+-        const uint16_t SET_WD_TIMER_10_SECS = 10;
++        // Set Watchdog Timer before calling doShutdown()
+         TRACFCOMP( g_trac_sbe,"sbePreShutdownIpmiCalls: "
+                    "Set Watch Dog Timer To %d Seconds",
+-                   SET_WD_TIMER_10_SECS);
+-
+-        err = IPMIWATCHDOG::setWatchDogTimer(SET_WD_TIMER_10_SECS);
++                   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::NO_ACTIONS); // boot count reset
+         if(err)
+         {
+                TRACFCOMP( g_trac_sbe,
+@@ -1342,7 +1359,7 @@ void sbePreShutdownIpmiCalls( void )
+                           "FAIL Setting Watch Dog Timer to %d seconds. "
+                           "Committing Error Log rc=0x%.4X eid=0x%.8X "
+                           "plid=0x%.8X, but continuing shutdown",
+-                          SET_WD_TIMER_10_SECS,
++                          SET_WD_TIMER_IN_SECS,
+                           err->reasonCode(),
+                           err->eid(),
+                           err->plid());
+diff --git a/src/usr/sbe/sbe_resolve_sides.H b/src/usr/sbe/sbe_resolve_sides.H
+index 42f727a..d7c1f7c 100644
+--- a/src/usr/sbe/sbe_resolve_sides.H
++++ b/src/usr/sbe/sbe_resolve_sides.H
+@@ -50,6 +50,10 @@ namespace SBE
+                                       { EEPROM::SBE_PRIMARY,
+                                         EEPROM::SBE_BACKUP };
+ 
++    // @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;
++
+     /******************************************/
+     /*  Enums                                 */
+     /******************************************/
+diff --git a/src/usr/sbe/sbe_update.C b/src/usr/sbe/sbe_update.C
+index 562798b..a20c1a8 100644
+--- a/src/usr/sbe/sbe_update.C
++++ b/src/usr/sbe/sbe_update.C
+@@ -46,6 +46,7 @@
+ #include <sys/msg.h>
+ #include <hwas/common/deconfigGard.H>
+ #include <initservice/initserviceif.H>
++#include <console/consoleif.H>
+ #include <config.h>
+ #include <sbe/sbeif.H>
+ #include <sbe/sbereasoncodes.H>
+@@ -371,6 +372,19 @@ namespace SBE
+                 sbePreShutdownIpmiCalls();
+ #endif
+ 
++#ifdef CONFIG_CONSOLE
++  #ifdef CONFIG_BMC_IPMI
++            CONSOLE::displayf(SBE_COMP_NAME, "System Shutting Down In %d "
++                              "Seconds To Perform SBE Update\n",
++                              SET_WD_TIMER_IN_SECS);
++  #else
++            CONSOLE::displayf(SBE_COMP_NAME, "System Shutting Down To "
++                              "Perform SBE Update\n");
++  #endif
++
++            CONSOLE::flush();
++#endif
++
+                 TRACFCOMP( g_trac_sbe,
+                            INFO_MRK"updateProcessorSbeSeeproms(): Calling "
+                            "INITSERVICE::doShutdown() with "
+-- 
+1.7.4.1
+