Bill Hoffa | ee9bec0 | 2017-09-19 09:17:52 -0500 | [diff] [blame] | 1 | From 3fc13542a298284b7a45ee6fbf2152aec659c733 Mon Sep 17 00:00:00 2001 |
| 2 | From: Dean Sanner <dsanner@us.ibm.com> |
| 3 | Date: Mon, 18 Sep 2017 13:49:09 -0500 |
| 4 | Subject: [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 | |
| 10 | Change-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 | |
| 16 | diff --git a/src/include/usr/isteps/istep_reasoncodes.H b/src/include/usr/isteps/istep_reasoncodes.H |
| 17 | index 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 | }; |
| 36 | diff --git a/src/usr/isteps/istep06/host_set_ipl_parms.C b/src/usr/isteps/istep06/host_set_ipl_parms.C |
| 37 | index 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 | -- |
| 99 | 1.8.2.2 |
| 100 | |