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

