blob: 3ed2df7e707ca6957cbcc3562a67bafd43d8009e [file] [log] [blame]
Bill Hoffaee9bec02017-09-19 09:17:52 -05001From 3fc13542a298284b7a45ee6fbf2152aec659c733 Mon Sep 17 00:00:00 2001
2From: Dean Sanner <dsanner@us.ibm.com>
3Date: Mon, 18 Sep 2017 13:49:09 -0500
4Subject: [PATCH] Remove support for P9N (Nimbus) DD1.0
5
6 - Will error out during IPL
7 - Gracefully handle removal of DD1.0 inits,
8 tied to hw091517b.910 HCODE image
9
10Change-Id: I7b4c53b38863a8251a8c02d7df83a3ff713f52d7
11---
12 src/include/usr/isteps/istep_reasoncodes.H | 2 ++
13 src/usr/isteps/istep06/host_set_ipl_parms.C | 44 ++++++++++++++++++++++++++++-
14 2 files changed, 45 insertions(+), 1 deletion(-)
15
16diff --git a/src/include/usr/isteps/istep_reasoncodes.H b/src/include/usr/isteps/istep_reasoncodes.H
17index bdf4c93..d76eceb 100644
18--- a/src/include/usr/isteps/istep_reasoncodes.H
19+++ b/src/include/usr/isteps/istep_reasoncodes.H
20@@ -62,6 +62,7 @@ namespace ISTEP
21 MOD_SBE_PERFORM_UPDATE_CHECK = 0x1A,
22 MOD_MSS_ATTR_UPDATE = 0x1B, /* @TODO-RTC:149250-Remove */
23 MOD_SBE_GET_FFDC_HANDLER = 0x1C,
24+ MOD_SET_IPL_PARMS = 0x1D,
25 };
26
27 /**
28@@ -122,6 +123,7 @@ namespace ISTEP
29 RC_SBE_UPDATE_IN_MPIPL = ISTEP_COMP_ID | 0x32,
30 RC_NO_FFDC_RETURNED = ISTEP_COMP_ID | 0x33,
31 RC_RETURNED_FFDC = ISTEP_COMP_ID | 0x34,
32+ RC_P9N_DD1_NOT_SUPPORTED = ISTEP_COMP_ID | 0x35,
33 };
34
35 };
36diff --git a/src/usr/isteps/istep06/host_set_ipl_parms.C b/src/usr/isteps/istep06/host_set_ipl_parms.C
37index 8fe9f12..c42f909 100644
38--- a/src/usr/isteps/istep06/host_set_ipl_parms.C
39+++ b/src/usr/isteps/istep06/host_set_ipl_parms.C
40@@ -31,7 +31,9 @@
41 #include <initservice/isteps_trace.H>
42 #include <util/utilsemipersist.H>
43 #include <hwas/common/deconfigGard.H>
44-
45+#include <arch/pvrformat.H>
46+#include <sys/mmio.h>
47+#include <console/consoleif.H>
48
49 namespace ISTEP_06
50 {
51@@ -77,6 +79,46 @@ void* host_set_ipl_parms( void *io_pArgs )
52 Util::writeSemiPersistData(l_semiData);
53
54
55+ // Add a check to indicate that Nimbus DD1.0 is NOT supported
56+ // and prevent a boot
57+ PVR_t l_pvr( mmio_pvr_read() & 0xFFFFFFFF );
58+ if( l_pvr.isNimbusDD1() )
59+ {
60+#ifdef CONFIG_CONSOLE
61+ CONSOLE::displayf(ISTEP_COMP_NAME,
62+ "P9N (Nimbus) DD1.0 is not supported in this driver");
63+ CONSOLE::displayf(ISTEP_COMP_NAME,
64+ "Please update the system's processor modules");
65+#endif
66+
67+
68+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
69+ "DD1.0 is NOT SUPPORTED anymore. "
70+ "Please upgrade proc modules");
71+ /*@
72+ * @errortype
73+ * @moduleid ISTEP::MOD_SET_IPL_PARMS
74+ * @reasoncode ISTEP::RC_P9N_DD1_NOT_SUPPORTED
75+ * @userdata1 PVR of master proc
76+ * @devdesc P9N (Nimbus) DD1.x is not supported
77+ * in this firmware driver. Please update
78+ * your module or use a different driver
79+ * @custdesc A problem occurred during the IPL
80+ * of the system.
81+ */
82+ uint64_t l_dummy = 0x0;
83+ l_err = new ERRORLOG::ErrlEntry(
84+ ERRORLOG::ERRL_SEV_UNRECOVERABLE,
85+ ISTEP::MOD_SET_IPL_PARMS,
86+ ISTEP::RC_P9N_DD1_NOT_SUPPORTED,
87+ l_pvr.word,
88+ l_dummy);
89+ // Create IStep error log and cross ref error that occurred
90+ l_stepError.addErrorDetails( l_err );
91+ errlCommit( l_err, ISTEP_COMP_ID );
92+ }
93+
94+
95 TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "host_set_ipl_parms exit" );
96
97 return l_stepError.getErrorHandle();
98--
991.8.2.2
100