Merge pull request #1459 from wghoffa/hcode_dd20_0919

op-build Remove DD1.0 Support / Add DD2.x fixes 09-19-2017
diff --git a/openpower/package/hostboot-binaries/hostboot_binaries.mk b/openpower/package/hostboot-binaries/hostboot_binaries.mk
index 524582a..b90edef 100644
--- a/openpower/package/hostboot-binaries/hostboot_binaries.mk
+++ b/openpower/package/hostboot-binaries/hostboot_binaries.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HOSTBOOT_BINARIES_VERSION ?= 836385d1a5c5cefec969ce1698d1ce3497de3af9
+HOSTBOOT_BINARIES_VERSION ?= edd568f349e4aef883abb42451668bfcdf59e6b4
 HOSTBOOT_BINARIES_SITE ?= $(call github,open-power,hostboot-binaries,$(HOSTBOOT_BINARIES_VERSION))
 
 HOSTBOOT_BINARIES_LICENSE = Apache-2.0
diff --git a/openpower/package/hostboot/p9Patches/hostboot-0001-Remove-support-for-P9N-Nimbus-DD1.0.patch b/openpower/package/hostboot/p9Patches/hostboot-0001-Remove-support-for-P9N-Nimbus-DD1.0.patch
new file mode 100644
index 0000000..3ed2df7
--- /dev/null
+++ b/openpower/package/hostboot/p9Patches/hostboot-0001-Remove-support-for-P9N-Nimbus-DD1.0.patch
@@ -0,0 +1,100 @@
+From 3fc13542a298284b7a45ee6fbf2152aec659c733 Mon Sep 17 00:00:00 2001
+From: Dean Sanner <dsanner@us.ibm.com>
+Date: Mon, 18 Sep 2017 13:49:09 -0500
+Subject: [PATCH] Remove support for P9N (Nimbus) DD1.0
+
+  - Will error out during IPL
+  - Gracefully handle removal of DD1.0 inits,
+    tied to hw091517b.910 HCODE image
+
+Change-Id: I7b4c53b38863a8251a8c02d7df83a3ff713f52d7
+---
+ src/include/usr/isteps/istep_reasoncodes.H  |  2 ++
+ src/usr/isteps/istep06/host_set_ipl_parms.C | 44 ++++++++++++++++++++++++++++-
+ 2 files changed, 45 insertions(+), 1 deletion(-)
+
+diff --git a/src/include/usr/isteps/istep_reasoncodes.H b/src/include/usr/isteps/istep_reasoncodes.H
+index bdf4c93..d76eceb 100644
+--- a/src/include/usr/isteps/istep_reasoncodes.H
++++ b/src/include/usr/isteps/istep_reasoncodes.H
+@@ -62,6 +62,7 @@ namespace ISTEP
+         MOD_SBE_PERFORM_UPDATE_CHECK                      = 0x1A,
+         MOD_MSS_ATTR_UPDATE = 0x1B, /* @TODO-RTC:149250-Remove */
+         MOD_SBE_GET_FFDC_HANDLER                          = 0x1C,
++        MOD_SET_IPL_PARMS                                 = 0x1D,
+     };
+ 
+     /**
+@@ -122,6 +123,7 @@ namespace ISTEP
+         RC_SBE_UPDATE_IN_MPIPL                   = ISTEP_COMP_ID | 0x32,
+         RC_NO_FFDC_RETURNED                      = ISTEP_COMP_ID | 0x33,
+         RC_RETURNED_FFDC                         = ISTEP_COMP_ID | 0x34,
++        RC_P9N_DD1_NOT_SUPPORTED                 = ISTEP_COMP_ID | 0x35,
+     };
+ 
+ };
+diff --git a/src/usr/isteps/istep06/host_set_ipl_parms.C b/src/usr/isteps/istep06/host_set_ipl_parms.C
+index 8fe9f12..c42f909 100644
+--- a/src/usr/isteps/istep06/host_set_ipl_parms.C
++++ b/src/usr/isteps/istep06/host_set_ipl_parms.C
+@@ -31,7 +31,9 @@
+ #include <initservice/isteps_trace.H>
+ #include <util/utilsemipersist.H>
+ #include <hwas/common/deconfigGard.H>
+-
++#include <arch/pvrformat.H>
++#include <sys/mmio.h>
++#include <console/consoleif.H>
+ 
+ namespace ISTEP_06
+ {
+@@ -77,6 +79,46 @@ void* host_set_ipl_parms( void *io_pArgs )
+     Util::writeSemiPersistData(l_semiData);
+ 
+ 
++    // Add a check to indicate that Nimbus DD1.0 is NOT supported
++    // and prevent a boot
++    PVR_t l_pvr( mmio_pvr_read() & 0xFFFFFFFF );
++    if( l_pvr.isNimbusDD1() )
++    {
++#ifdef CONFIG_CONSOLE
++        CONSOLE::displayf(ISTEP_COMP_NAME,
++                          "P9N (Nimbus) DD1.0 is not supported in this driver");
++        CONSOLE::displayf(ISTEP_COMP_NAME,
++                          "Please update the system's processor modules");
++#endif
++
++
++        TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
++                   "DD1.0 is NOT SUPPORTED anymore. "
++                   "Please upgrade proc modules");
++        /*@
++         * @errortype
++         * @moduleid     ISTEP::MOD_SET_IPL_PARMS
++         * @reasoncode   ISTEP::RC_P9N_DD1_NOT_SUPPORTED
++         * @userdata1    PVR of master proc
++         * @devdesc      P9N (Nimbus) DD1.x is not supported
++         *               in this firmware driver.  Please update
++         *               your module or use a different driver
++         * @custdesc     A problem occurred during the IPL
++         *               of the system.
++         */
++        uint64_t l_dummy = 0x0;
++        l_err = new ERRORLOG::ErrlEntry(
++                                        ERRORLOG::ERRL_SEV_UNRECOVERABLE,
++                                        ISTEP::MOD_SET_IPL_PARMS,
++                                        ISTEP::RC_P9N_DD1_NOT_SUPPORTED,
++                                        l_pvr.word,
++                                        l_dummy);
++        // Create IStep error log and cross ref error that occurred
++        l_stepError.addErrorDetails( l_err );
++        errlCommit( l_err, ISTEP_COMP_ID );
++    }
++
++
+     TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "host_set_ipl_parms exit" );
+ 
+     return l_stepError.getErrorHandle();
+-- 
+1.8.2.2
+