summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
authorDean Sanner <dsanner@us.ibm.com>2017-09-18 13:49:09 -0500
committerChristian R. Geddes <crgeddes@us.ibm.com>2017-11-01 15:34:36 -0400
commit08d89ba2b8784fc69abc051a1d905a770405b6b9 (patch)
tree11564bf8944d35af5a9d6a120da41ae1790ca181 /src/usr
parent7f4fb82f60a51dc3742e11022867114b76cfb41d (diff)
downloadtalos-hostboot-08d89ba2b8784fc69abc051a1d905a770405b6b9.tar.gz
talos-hostboot-08d89ba2b8784fc69abc051a1d905a770405b6b9.zip
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 CMVC-Prereq: 1034628 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/46356 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/fapi2/test/fapi2ChipEcTest.H35
-rw-r--r--src/usr/fapi2/test/fapi2MvpdTestCxx.H26
-rw-r--r--src/usr/isteps/istep06/host_set_ipl_parms.C44
-rw-r--r--src/usr/isteps/istep06/host_start_occ_xstop_handler.C3
-rw-r--r--src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml4
-rw-r--r--src/usr/vpd/makefile2
-rwxr-xr-xsrc/usr/vpd/test/mvpdtest.H1
7 files changed, 87 insertions, 28 deletions
diff --git a/src/usr/fapi2/test/fapi2ChipEcTest.H b/src/usr/fapi2/test/fapi2ChipEcTest.H
index 69ea686c9..4c329df42 100644
--- a/src/usr/fapi2/test/fapi2ChipEcTest.H
+++ b/src/usr/fapi2/test/fapi2ChipEcTest.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016 */
+/* Contributors Listed Below - COPYRIGHT 2016,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -91,23 +91,38 @@ class Fapi2ChipEcTest : public CxxTest::TestSuite
l_chipList[0]);
ATTR_CHIP_EC_FEATURE_TEST2_Type l_valChipEcTest2 = 0;
-
+
FAPI_TRY(FAPI_ATTR_GET(ATTR_CHIP_EC_FEATURE_TEST2,
l_fapi2_procTarget, l_valChipEcTest2));
- // Returns if a chip contains the TEST2 feature. True if:
- // Nimbus EC less than 2.0
- if(l_valChipEcTest2)
- {
- FAPI_INF("Pass: This proc is Nimbus and less then DD2.0");
- }
- else if(TARGETING::MODEL_NIMBUS !=
+
+ // Tests if a chip contains the TEST2 feature.
+ // True if: Nimbus EC less than 2.0
+ if(TARGETING::MODEL_NIMBUS !=
l_chipList[0]->getAttr<TARGETING::ATTR_MODEL>())
{
FAPI_INF("Pass: This proc is not Nimbus so does not have TEST2 feature");
}
+ else if(l_valChipEcTest2)
+ {
+ if(l_chipList[0]->getAttr<TARGETING::ATTR_EC>() < 0x20)
+ {
+ FAPI_INF("Pass: This Nimbus proc has TEST2 enabled and < DD2.0");
+ }
+ else
+ {
+ TS_FAIL("Fail: This Nimbus proc has TEST2 enabled but >= DD2.0");
+ }
+ }
else
{
- TS_FAIL("Fail: this proc is a nimbus but has DD 2.0 or greater");
+ if(l_chipList[0]->getAttr<TARGETING::ATTR_EC>() >= 0x20)
+ {
+ FAPI_INF("Pass: This Nimbus proc has TEST2 disabled and >= DD2.0");
+ }
+ else
+ {
+ TS_FAIL("Fail: This Nimbus proc has TEST2 disabled but < DD 2.0");
+ }
}
fapi_try_exit:
diff --git a/src/usr/fapi2/test/fapi2MvpdTestCxx.H b/src/usr/fapi2/test/fapi2MvpdTestCxx.H
index 9bb030a85..0f0d0e056 100644
--- a/src/usr/fapi2/test/fapi2MvpdTestCxx.H
+++ b/src/usr/fapi2/test/fapi2MvpdTestCxx.H
@@ -367,7 +367,7 @@ public:
if(*l_bucketAttr != 2)
{
numFails++;
- TS_FAIL("Error:FAPI_ATTR_GET(fapi2::ATTR_POUNDV_BUCKET_DATA EQ with HUID = 0x%X should have bucket ID 1, not %d",l_huid, voltageData.bucketId);
+ TS_FAIL("Error:FAPI_ATTR_GET(fapi2::ATTR_POUNDV_BUCKET_DATA EQ with HUID = 0x%X should have bucket ID 2, not %d",l_huid, *l_bucketAttr);
}
if(l_rc)
@@ -379,17 +379,17 @@ public:
continue;
}
numTests++;
- if(voltageData.bucketId != 1)
+ if(voltageData.bucketId != 3)
{
numFails++;
- TS_FAIL("Error:p9_pm_get_poundv_bucket with EQ with HUID = 0x%X should have returned bucket ID 1, not %d",l_huid, voltageData.bucketId);
+ TS_FAIL("Error:p9_pm_get_poundv_bucket with EQ with HUID = 0x%X should have returned bucket ID 3, not %d",l_huid, voltageData.bucketId);
continue;
}
numTests++;
- if(*l_bucketAttr != 1)
+ if(*l_bucketAttr != 3)
{
numFails++;
- TS_FAIL("Error:FAPI_ATTR_GET(fapi2::ATTR_POUNDV_BUCKET_DATA EQ with HUID = 0x%X should have bucket ID 1, not %d",l_huid, voltageData.bucketId);
+ TS_FAIL("Error:FAPI_ATTR_GET(fapi2::ATTR_POUNDV_BUCKET_DATA EQ with HUID = 0x%X should have bucket ID 3, not %d",l_huid, *l_bucketAttr);
}
if(l_rc)
@@ -464,33 +464,33 @@ public:
{
numFails++;
TS_FAIL("Error:FAPI_ATTR_GET(fapi2::ATTR_POUNDW_BUCKET_DATA "
- "EQ with HUID = 0x%X should have bucket ID 1, not %d",
+ "EQ with HUID = 0x%X should have bucket ID 2, not %d",
l_huid,
- vdmData.bucketId);
+ *l_bucketAttr);
}
continue;
}
numTests++;
- if(vdmData.bucketId != 1)
+ if(vdmData.bucketId != 3)
{
numFails++;
TS_FAIL("Error:p9_pm_get_poundw_bucket with EQ with HUID = "
- "0x%X should have returned bucket ID 1, not %d",
+ "0x%X should have returned bucket ID 3, not %d",
l_huid,
vdmData.bucketId);
continue;
}
numTests++;
- if(*l_bucketAttr != 1)
+ if(*l_bucketAttr != 2)
{
numFails++;
- TS_FAIL("Error:FAPI_ATTR_GET(fapi2::ATTR_POUNDV_BUCKET_DATA "
- "EQ with HUID = 0x%X should have bucket ID 1, not %d",
+ TS_FAIL("Error:FAPI_ATTR_GET(fapi2::ATTR_POUNDW_BUCKET_DATA "
+ "EQ with HUID = 0x%X should have bucket ID 2, not %d",
l_huid,
- vdmData.bucketId);
+ *l_bucketAttr);
}
FAPI_INF("Bucket for HUID: 0x%X is = %d", l_huid, vdmData.bucketId);
diff --git a/src/usr/isteps/istep06/host_set_ipl_parms.C b/src/usr/isteps/istep06/host_set_ipl_parms.C
index 8fe9f12cc..c42f90998 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();
diff --git a/src/usr/isteps/istep06/host_start_occ_xstop_handler.C b/src/usr/isteps/istep06/host_start_occ_xstop_handler.C
index aa3c6b8c3..e59f9ead1 100644
--- a/src/usr/isteps/istep06/host_start_occ_xstop_handler.C
+++ b/src/usr/isteps/istep06/host_start_occ_xstop_handler.C
@@ -34,6 +34,7 @@
#include <pm/pm_common.H>
#include <targeting/common/commontargeting.H>
#include <isteps/pm/occCheckstop.H>
+#include <util/misc.H>
namespace ISTEP_06
{
@@ -62,6 +63,8 @@ void* host_start_occ_xstop_handler( void *io_pArgs )
l_homerPhysAddrBase, l_commonPhysAddr);
do
{
+ if ( Util::isSimicsRunning() ) break; //Skip if running in Simics
+
l_errl = HBPM::loadPMComplex(masterproc,
l_homerPhysAddrBase,
l_commonPhysAddr,
diff --git a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
index fe90c3f8e..2b20ab82a 100644
--- a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
+++ b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
@@ -564,11 +564,11 @@
then we can get rid of these poundv attributes for this EQ-->
<attribute>
<id>POUNDV_BUCKET_NUM</id>
- <default>2</default>
+ <default>0</default>
</attribute>
<attribute>
<id>POUNDV_BUCKET_NUM_OVERRIDE</id>
- <default>1</default>
+ <default>0</default>
</attribute>
</targetInstance>
diff --git a/src/usr/vpd/makefile b/src/usr/vpd/makefile
index 2031b1d4a..a559b1841 100644
--- a/src/usr/vpd/makefile
+++ b/src/usr/vpd/makefile
@@ -48,7 +48,7 @@ BINARY_FILES += $(IMGDIR)/vpo_djvpd.dat:eb4dce98f19ebfe77243be1c56d3d0eaa1889d90
# Copied from /afs/btv.ibm.com/u/sgrom/public/vpd_images/p9_dd10/module-p9-dd10-simics_v15_rs4v2.bin
# on 1/3/2017
# Modified PG record to have proper XBUS data and only the first 4 cores
-BINARY_FILES += $(IMGDIR)/procmvpd_p9n.dat:ca32d9418a7ff3781a2989b230c2f915e20d47af
+BINARY_FILES += $(IMGDIR)/procmvpd_p9n.dat:a351f3cd5ba8a81a50c3e5a0dea5fea03e55769d
BINARY_FILES += $(IMGDIR)/procmvpd_p9c.dat:423208204c2f0e759610f4f39243362fd4b6d103
diff --git a/src/usr/vpd/test/mvpdtest.H b/src/usr/vpd/test/mvpdtest.H
index 95941b076..6f58e2d35 100755
--- a/src/usr/vpd/test/mvpdtest.H
+++ b/src/usr/vpd/test/mvpdtest.H
@@ -186,7 +186,6 @@ VPD::vpdRecord mvpdRecordData[] =
MVPD::VWML,
MVPD::VER0,
MVPD::MER0,
- MVPD::VMSC,
};
OpenPOWER on IntegriCloud