summaryrefslogtreecommitdiffstats
path: root/src/usr/mmio/test
diff options
context:
space:
mode:
authorGlenn Miles <milesg@ibm.com>2019-05-24 16:32:11 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-06-07 14:41:25 -0500
commit5634271463a1f735395a67f3f631358861e3fecd (patch)
treea0d3f29f3ecef94c7dcdc2a0c9ff514a7563cedb /src/usr/mmio/test
parentca91046e0b3d54ed6e4f1f54ebc59adcda5bfc61 (diff)
downloadblackbird-hostboot-5634271463a1f735395a67f3f631358861e3fecd.tar.gz
blackbird-hostboot-5634271463a1f735395a67f3f631358861e3fecd.zip
OCMB MMIO error handling
Added the following -Error checking and FRU isolation on explorer side -Cleaned up MMIO write error handling to read an MMIO error register -Fixed and enabled MMIO test cases -Moved parameter checking and channel checkstop checking into seperate functions. -Only check for channel checkstop for the channel that an OCMB is connected to. -Switch to using I2C on first MMIO failure. Change-Id: I5e997c5177f8a68a2966f837acc9b578a4cc1897 RTC:201588 RTC:201901 RTC:202533 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/77859 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/mmio/test')
-rw-r--r--src/usr/mmio/test/makefile6
-rw-r--r--src/usr/mmio/test/mmiotest.H64
2 files changed, 37 insertions, 33 deletions
diff --git a/src/usr/mmio/test/makefile b/src/usr/mmio/test/makefile
index 133f3ca44..bb5ffe21d 100644
--- a/src/usr/mmio/test/makefile
+++ b/src/usr/mmio/test/makefile
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2011,2018
+# Contributors Listed Below - COPYRIGHT 2011,2019
# [+] International Business Machines Corp.
#
#
@@ -25,6 +25,10 @@
ROOTPATH = ../../../..
MODULE = testmmio
+
+EXTRAINCDIR += ${ROOTPATH}/src/import/chips/ocmb/explorer/common/include/
+
+
TESTS = *.H
diff --git a/src/usr/mmio/test/mmiotest.H b/src/usr/mmio/test/mmiotest.H
index f7abd7816..034e2f052 100644
--- a/src/usr/mmio/test/mmiotest.H
+++ b/src/usr/mmio/test/mmiotest.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2018 */
+/* Contributors Listed Below - COPYRIGHT 2011,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -27,9 +27,13 @@
#include <errl/errlentry.H>
#include <limits.h>
#include <devicefw/driverif.H>
-#include <mmio/mmio.H>
+#include "../mmio.H"
+#include <targeting/common/utilFilter.H>
+#include <explorer_scom_addresses.H>
+#include <exp_oc_regs.H>
-extern trace_desc_t* g_trac_mmio;
+static const uint64_t EXPLR_IB_CONFIG_OFFSET = 0x0000000000000000ull;
+static const uint64_t EXPLR_IB_MMIO_OFFSET = 0x0000000100000000ull; // 4GB
class MmioTest : public CxxTest::TestSuite
{
@@ -40,70 +44,66 @@ class MmioTest : public CxxTest::TestSuite
*/
void test_Valid(void)
{
- TRACFCOMP( g_trac_mmio, "MmioTest::test_Valid> Start" );
+ TS_TRACE("MmioTest::test_Valid> Start" );
uint64_t fails = 0;
uint64_t total = 0;
errlHndl_t l_err = nullptr;
- uint64_t regdata = 0;
- size_t op_size = sizeof(uint64_t);
+ uint32_t regdata4 = 0;
+ size_t op_size = 0;
-// TODO RTC 202533 - enable this test once the Axone model is IPLing
-// successfully in Simics.
-#if 0
// Get OCMB target, return if there is no OCMB
TARGETING::TargetHandle_t ocmb_target = nullptr;
TARGETING::TargetHandleList ocmb_target_list;
- getAllChips(ocmb_target_list, TARGETING::TYPE_OCMB_CHIP);
+ TARGETING::getAllChips(ocmb_target_list, TARGETING::TYPE_OCMB_CHIP);
if (ocmb_target_list.size() == 0)
{
- TRACFCOMP(g_trac_fsiscom, "MmioTest::test_Valid> Target is NULL");
+ TS_TRACE("MmioTest::test_Valid> Target is NULL");
TS_INFO("MmioTest::test_Valid> Target is NULL");
return;
}
ocmb_target = ocmb_target_list[0];
- // read
+ // valid read from config space register
++total;
- l_err = MMIO::mmioPerformOp(
- DeviceFW::READ,
+ op_size = sizeof(regdata4);
+ l_err = DeviceFW::deviceRead(
ocmb_target,
- &regdata,
+ &regdata4,
op_size,
- 0x0,
- op_size);
+ DEVICE_MMIO_ADDRESS((EXPLR_IB_CONFIG_OFFSET |
+ EXPLR_OC_O0MBIT_O0DID_LSB),
+ op_size));
if(l_err != nullptr)
{
- TRACFCOMP(g_trac_mmio,
- "MmioTest::test_Valid> Error for read, RC=0x%04X",
+ TS_TRACE("MmioTest::test_Valid> Error for read, RC=0x%04X",
ERRL_GETRC_SAFE(l_err));
TS_FAIL("MmioTest::test_Valid> Error for read, RC=0x%04X",
ERRL_GETRC_SAFE(l_err));
++fails;
- errlCommit(l_err, MMIO_COMP_ID);
+ errlCommit(l_err, CXXTEST_COMP_ID);
}
- // write
+ // valid write to config space register
++total;
- l_err = MMIO::mmioPerformOp(
- DeviceFW::WRITE,
+ op_size = sizeof(regdata4);
+ l_err = DeviceFW::deviceWrite(
ocmb_target,
- &regdata,
+ &regdata4,
op_size,
- 0x08,
- op_size);
+ DEVICE_MMIO_ADDRESS((EXPLR_IB_CONFIG_OFFSET |
+ EXPLR_OC_O0CCD_LSB),
+ op_size));
if(l_err != nullptr)
{
- TRACFCOMP(g_trac_mmio,
- "MmioTest::test_Valid> Error for write, RC=0x%04X",
- ERRL_GETRC_SAFE(l_err));
+ TS_TRACE("MmioTest::test_Valid> Error for write, RC=0x%04X",
+ ERRL_GETRC_SAFE(l_err));
TS_FAIL("MmioTest::test_Valid> Error for write, RC=0x%04X",
ERRL_GETRC_SAFE(l_err));
++fails;
- errlCommit(l_err, MMIO_COMP_ID);
+ errlCommit(l_err, CXXTEST_COMP_ID);
}
-#endif
- TRACFCOMP(g_trac_mmio, "Mmio::test_Valid> %d/%d fails", fails, total);
+ TS_TRACE("Mmio::test_Valid> %d/%d fails", fails, total);
};
};
OpenPOWER on IntegriCloud