summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/usr/diag/prdf/test/makefile8
-rwxr-xr-xsrc/usr/diag/prdf/test/prdfTest.H120
-rw-r--r--src/usr/diag/prdf/test/prdfTest_ABus.H86
-rw-r--r--src/usr/diag/prdf/test/prdfTest_Ex.H86
-rw-r--r--src/usr/diag/prdf/test/prdfTest_Mba.H107
-rw-r--r--src/usr/diag/prdf/test/prdfTest_Mcs.H109
-rw-r--r--src/usr/diag/prdf/test/prdfTest_Proc.H88
-rw-r--r--src/usr/diag/prdf/test/prdfTest_XBus.H87
-rwxr-xr-xsrc/usr/diag/prdf/test/prdfsimMacros.H2
-rwxr-xr-xsrc/usr/diag/prdf/test/prdfsimServices.C16
-rwxr-xr-xsrc/usr/diag/prdf/test/prdfsimServices.H6
-rwxr-xr-xsrc/usr/diag/prdf/test/prdsimSignatureParser.C5
-rwxr-xr-xsrc/usr/diag/prdf/test/prdsimSignatureParser.H2
13 files changed, 589 insertions, 133 deletions
diff --git a/src/usr/diag/prdf/test/makefile b/src/usr/diag/prdf/test/makefile
index fff6b4852..53e894b1b 100755
--- a/src/usr/diag/prdf/test/makefile
+++ b/src/usr/diag/prdf/test/makefile
@@ -58,8 +58,14 @@ EXTRAINCDIR += ${ROOTPATH}/src/include/usr/hwpf/hwp
OBJS = prdfsimHomRegisterAccess.o prdfsim_ras_services.o prdfsimScrDataSet.o prdfsimScrDB.o prdfsimServices.o prdsimSignatureParser.o prdfsimUtil.o
+TESTS = prdfTest_ABus.H \
+ prdfTest_Ex.H \
+ prdfTest.H \
+ prdfTest_Mba.H \
+ prdfTest_Mcs.H \
+ prdfTest_Proc.H \
+ prdfTest_XBus.H
-TESTS = *.H
include ${ROOTPATH}/config.mk
diff --git a/src/usr/diag/prdf/test/prdfTest.H b/src/usr/diag/prdf/test/prdfTest.H
index c2011df58..ad0dc01c5 100755
--- a/src/usr/diag/prdf/test/prdfTest.H
+++ b/src/usr/diag/prdf/test/prdfTest.H
@@ -43,131 +43,13 @@
#include <prdfTrace.H>
#include <prdfMain.H>
#include "prdfsimMacros.H"
-#include <targeting/common/targetservice.H>
-#include <prdfPlatServices.H>
class prdfTest: public CxxTest::TestSuite
{
public:
- void testPrdMain(void)
- {
- using namespace PRDF;
- TS_TRACE(ENTER_MRK "testPrdMain()");
- PRDF_ENTER( "testPrdMain()" );
-
- // ---------------------------------
-/*
- PRDS_BEGIN("Maintenance Command Complete Special Attention");
-
- PRDS_ERROR_ENTRY("NODE{0}:MEMBUF{0}", SPECIAL);
-
- // ( 0x9e8b0000, "MBASPA[0]", "MBSPAQ_COMMAND_COMPLETE_WO_ENA_ERR_ATTN" )
-// PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}:MCS{4}:MEMBUF{0}:MBS{0}:MBA{0}", 0x9e8b0000);
- PRDS_EXPECTED_SIGNATURE("NODE{0}:MEMBUF{0}:MBS{0}:MBA{0}", 0x9e8b0000);
-// PRDS_EXPECTED_CALLOUT(NONE);
-
- // GLOBAL_SPA
- PRDS_SCR_WRITE("NODE{0}:MEMBUF{0}", 0x570F001A, 0x1000000000000000);
-
- // MEM_CHIPLET_SPA
- PRDS_SCR_WRITE("NODE{0}:MEMBUF{0}", 0x03040004, 0x8000000000000000);
-
- // MBASPA
- PRDS_SCR_WRITE("NODE{0}:MEMBUF{0}:MBS{0}:MBA{0}", 0x03010611, 0x8000000000000000);
-
- PRDS_START_SIM();
-
- PRDS_END();
-*/
- // ---------------------------------
-/*
- PRDS_BEGIN("PB Centaur Overflow Special attention");
-
- PRDS_ERROR_ENTRY("NODE{0}:PROC{0}", SPECIAL);
-
- // ( 0x42410001, "PBCENTFIR[1]", "PB_CENT_OVERFLOW_ERROR" )
- PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}", 0x42410001);
-// PRDS_EXPECTED_CALLOUT(NONE);
-
- // GLOBAL_SPA
- PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x570F001A, 0x2000000000000000);
-
- // PB_CHIPLET_SPA
- PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x02040004, 0x8000000000000000);
-
- // PBCENTFIR
- PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x02010c40, 0x4000000000000000);
-
- // PBCENTFIR_ACT0
- PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x02010c46, 0xFFFFFFFFFFFFFFFF);
-
- PRDS_START_SIM();
-
- PRDS_END();
-*/
-
- // ---------------------------------
-
- PRDS_BEGIN("OCC FW2 recoverable attention");
-
- PRDS_ERROR_ENTRY("NODE{0}:PROC{0}", RECOVERABLE);
-
- // ( 0x6c290002, "OCCFIR[2]", "OCC_SCOM_OCCFIR_OCC_FW2" )
- PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}", 0x6c290002);
-// PRDS_EXPECTED_CALLOUT(NONE);
-
- // GLOBAL_RE_FIR
- PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x570F001B, 0x4000000000000000);
-
- // TP_CHIPLET_RE_FIR
- PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x01040001, 0x2000000000000000);
-
- // OCCFIR
- PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x01010800, 0x2000000000000000);
-
- // OCCFIR_ACT1
- PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x01010807, 0xFFFFFFFFFFFFFFFF);
-
- PRDS_START_SIM();
-
- PRDS_END();
-
- // ---------------------------------
-/*
- PRDS_BEGIN("MCSI recoverable attention");
-
- PRDS_ERROR_ENTRY("NODE{0}:PROC{0}", RECOVERABLE);
-
- //( 0xde310007, "MCIFIR[7]", "MCIFIRQ_MCI_CHINIT_STATE_MACHINE_TIMEOUT" )
- PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}:MCS{4}", 0xde310007);
-// PRDS_EXPECTED_CALLOUT(NONE);
-
- // GLOBAL_RE_FIR
- PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x570F001B, 0x4000000000000000);
-
- // TP_CHIPLET_RE_FIR[5] Attention from MCIFIR (MCS 4)
- PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x01040001, 0x0100000000000000);
-
- // MCIFIR[7]: MCIFIRQ_MCI_CHINIT_STATE_MACHINE_TIMEOUT
- PRDS_SCR_WRITE("NODE{0}:PROC{0}:MCS{4}", 0x02011840, 0x0100000000000000);
-
- // MCIFIR_ACT1
- PRDS_SCR_WRITE("NODE{0}:PROC{0}:MCS{4}", 0x02011847, 0xFFFFFFFFFFFFFFFF);
-
- PRDS_START_SIM();
-
- PRDS_END();
-*/
- // ---------------------------------
-
- PRDF_EXIT( "testPrdMain()" );
- TS_TRACE(EXIT_MRK "testPrdMain()");
- }
-
void testPrdIplCleanup(void)
{
- using namespace PRDF;
TS_TRACE(ENTER_MRK "testPrdIplCleanup()");
PRDF_ENTER( "testPrdIplCleanup()" );
@@ -176,8 +58,6 @@ class prdfTest: public CxxTest::TestSuite
PRDF_EXIT( "testPrdIplCleanup()" );
TS_TRACE(EXIT_MRK "testPrdIplCleanup()");
}
-
};
-
#endif
diff --git a/src/usr/diag/prdf/test/prdfTest_ABus.H b/src/usr/diag/prdf/test/prdfTest_ABus.H
new file mode 100644
index 000000000..c2885207c
--- /dev/null
+++ b/src/usr/diag/prdf/test/prdfTest_ABus.H
@@ -0,0 +1,86 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/test/prdfTest_ABus.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef __TEST_PRDFABUSTEST_H
+#define __TEST_PRDFABUSTEST_H
+
+#ifdef __HOSTBOOT_MODULE
+ #include <cxxtest/TestSuite.H>
+ #include <errl/errlentry.H>
+ #include <errl/errlmanager.H>
+#else
+ #include <cxxtest/TestSuite.h>
+ #include <fsp/FipsGlobalFixture.H>
+ #include <errlentry.H>
+#endif
+
+#include <prdfTrace.H>
+#include <prdfMain.H>
+#include "prdfsimMacros.H"
+
+class PBESFIR:public CxxTest::TestSuite
+{
+ public:
+
+ void TestRecoverable(void)
+ {
+ PRDS_BEGIN("PBESFIR Recoverable attention");
+ PRDS_ERROR_ENTRY("NODE{0}:PROC{0}", PRDF::RECOVERABLE);
+ PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}", 0xa0570000);
+ // GLOBAL_RE_FIR set bit 8
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x570F001B , 0x0080000000000000);
+ // ABUS_CHIPLET_RE_FIR set bit 2
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x08040001, 0x2000000000000000);
+ // set bit 0
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x08010800, 0x8000000000000000);
+ // ACT1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x08010807, 0xFFFFFFFFFFFFFFFF);
+ PRDS_START_SIM();
+ if(!(PRDS_END()))
+ {
+ TS_FAIL("Expected Signature Failed PBESFIR Recoverable attention");
+ }
+ }
+
+ void TestCheckstop(void)
+ {
+ /*
+ PRDS_BEGIN("PBESFIR Checkstop attention");
+ PRDS_ERROR_ENTRY("NODE{0}:PROC{0}", PRDF::CHECK_STOP);
+ PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}:ABUS{1}", 0xa0570003);
+ // GLOBAL_RE_FIR set bit 8
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x570F001C , 0x0080000000000000);
+ // ABUS_CHIPLET_RE_FIR set bit 4
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:ABUS{1}", 0x08040000, 0x0800000000000000);
+ // set bit 3
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:ABUS{1}", 0x08010800, 0x1000000000000000);
+ // ACT1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:ABUS{1}", 0x08010807, 0x0000000000000000);
+ PRDS_START_SIM();
+ if(!(PRDS_END()))
+ {
+ TS_FAIL("Expected Signature Failed PBESFIR Checkstop attention");
+ }
+ */
+ }
+};
+#endif
diff --git a/src/usr/diag/prdf/test/prdfTest_Ex.H b/src/usr/diag/prdf/test/prdfTest_Ex.H
new file mode 100644
index 000000000..191fdf8d6
--- /dev/null
+++ b/src/usr/diag/prdf/test/prdfTest_Ex.H
@@ -0,0 +1,86 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/test/prdfTest_Ex.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef __TEST_PRDFEXTEST_H
+#define __TEST_PRDFEXTEST_H
+
+#ifdef __HOSTBOOT_MODULE
+ #include <cxxtest/TestSuite.H>
+ #include <errl/errlentry.H>
+ #include <errl/errlmanager.H>
+#else
+ #include <cxxtest/TestSuite.h>
+ #include <fsp/FipsGlobalFixture.H>
+ #include <errlentry.H>
+#endif
+
+#include <prdfTrace.H>
+#include <prdfMain.H>
+#include "prdfsimMacros.H"
+
+class ExLFIR:public CxxTest::TestSuite
+{
+ public:
+
+ void TestRecoverable(void)
+ {
+ PRDS_BEGIN("EXLFIR recoverable attention");
+ PRDS_ERROR_ENTRY("NODE{0}:PROC{0}", PRDF::RECOVERABLE);
+ PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}:EX{5}", 0xb53a0007);
+ // GLOBAL_RE_FIR set bit 21
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x570F001B, 0x0000040000000000);
+ // EX_CHIPLET_RE_FIR[1] Attention from EXLFIR
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:EX{5}", 0x10040001, 0x4000000000000000);
+ // set EXLFIR[7]
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:EX{5}", 0x1004000a, 0x0100000000000000);
+ // EXLFIR_ACT1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:EX{5}", 0x10040011, 0xFFFFFFFFFFFFFFFF);
+ PRDS_START_SIM();
+ if(!(PRDS_END()))
+ {
+ TS_FAIL("Expected Signature Failed EXLFIR recoverable attention");
+ }
+ }
+
+ void TestCheckstop(void)
+ {
+ /*
+ PRDS_BEGIN("EXLFIR Checkstop attention");
+ PRDS_ERROR_ENTRY("NODE{0}:PROC{0}", PRDF::CHECK_STOP);
+ PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}:EX{5}", 0xb53a0003);
+ // GLOBAL_RE_FIR bit 21
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x570F001C, 0x0000040000000000);
+ // EX_CHIPLET_CS_FIR[3] Attention from EXLFIR
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:EX{5}", 0x10040000, 0x1000000000000000);
+ // set EXLFIR[3]
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:EX{5}", 0x1004000a, 0x1000000000000000);
+ // EXLFIR_ACT1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:EX{5}", 0x10040011, 0x0000000000000000);
+ PRDS_START_SIM();
+ if(!(PRDS_END()))
+ {
+ TS_FAIL("Expected Signature Failed EXLFIR Checkstop attention");
+ }
+ */
+ }
+};
+#endif
diff --git a/src/usr/diag/prdf/test/prdfTest_Mba.H b/src/usr/diag/prdf/test/prdfTest_Mba.H
new file mode 100644
index 000000000..0cbcccf76
--- /dev/null
+++ b/src/usr/diag/prdf/test/prdfTest_Mba.H
@@ -0,0 +1,107 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/test/prdfTest_Mba.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef __TEST_PRDFMBATEST_H
+#define __TEST_PRDFMBATEST_H
+
+#ifdef __HOSTBOOT_MODULE
+ #include <cxxtest/TestSuite.H>
+ #include <errl/errlentry.H>
+ #include <errl/errlmanager.H>
+#else
+ #include <cxxtest/TestSuite.h>
+ #include <fsp/FipsGlobalFixture.H>
+ #include <errlentry.H>
+#endif
+
+#include <prdfTrace.H>
+#include <prdfMain.H>
+#include "prdfsimMacros.H"
+
+class MBAFIR:public CxxTest::TestSuite
+{
+ public:
+
+ void TestRecoverable(void)
+ {
+ PRDS_BEGIN("MBAFIR01 recoverable attention");
+ PRDS_ERROR_ENTRY("NODE{0}:MEMBUF{4}", PRDF::RECOVERABLE);
+ PRDS_EXPECTED_SIGNATURE("NODE{0}:MEMBUF{4}:MBS{0}:MBA{0}", 0xea280003);
+ // PRDS_EXPECTED_CALLOUT(NONE);
+ // GLOBAL_RE_FIR
+ PRDS_SCR_WRITE("NODE{0}:MEMBUF{4}", 0x570F001B, 0x1000000000000000);
+ // MEM_CHIPLET_RE_FIR[3] Attention from MBAFIR01
+ PRDS_SCR_WRITE("NODE{0}:MEMBUF{4}", 0x03040001, 0x1000000000000000);
+ // set MBAFIR01[3]
+ PRDS_SCR_WRITE("NODE{0}:MEMBUF{4}:MBS{0}:MBA{0}", 0x03010600, 0x1000000000000000);
+ // MBAFIR01_ACT1
+ PRDS_SCR_WRITE("NODE{0}:MEMBUF{4}:MBS{0}:MBA{0}", 0x03010607, 0xFFFFFFFFFFFFFFFF);
+ PRDS_START_SIM();
+ if(!(PRDS_END()))
+ {
+ TS_FAIL("Expected Signature Failed MBAFIR01 recoverable attention");
+ }
+ }
+
+ void TestCheckstop(void)
+ {
+ /*
+ PRDS_BEGIN("MBAFIR01 Checkstop attention");
+ PRDS_ERROR_ENTRY("NODE{0}:MEMBUF{4}", PRDF::CHECK_STOP);
+ PRDS_EXPECTED_SIGNATURE("NODE{0}:MEMBUF{4}:MBS{0}:MBA{0}", 0xea280002);
+ // PRDS_EXPECTED_CALLOUT(NONE);
+ // GLOBAL_RE_FIR
+ PRDS_SCR_WRITE("NODE{0}:MEMBUF{4}", 0x570F001C, 0x1000000000000000);
+ // MEM_CHIPLET_CS_FIR[5] Attention from MBAFIR01
+ PRDS_SCR_WRITE("NODE{0}:MEMBUF{4}", 0x03040000, 0x0400000000000000);
+ // set MBAFIR01[0]
+ PRDS_SCR_WRITE("NODE{0}:MEMBUF{4}:MBS{0}:MBA{0}", 0x03010600, 0x2000000000000000);
+ // MBAFIR01_ACT1
+ PRDS_SCR_WRITE("NODE{0}:MEMBUF{4}:MBS{0}:MBA{0}", 0x03010607, 0x0000000000000000);
+ PRDS_START_SIM();
+ if(!(PRDS_END()))
+ {
+ TS_FAIL("Expected Signature Failed MBAFIR01 Checkstop attention");
+ }
+ */
+ }
+
+ void TestSpecialAttention(void)
+ {
+ PRDS_BEGIN("MBAFIR01 Special attention");
+ PRDS_ERROR_ENTRY("NODE{0}:MEMBUF{4}", PRDF::SPECIAL);
+ PRDS_EXPECTED_SIGNATURE("NODE{0}:MEMBUF{4}:MBS{0}:MBA{0}", 0x9e8b0000);
+ // PRDS_EXPECTED_CALLOUT(NONE);
+ // GLOBAL_RE_FIR
+ PRDS_SCR_WRITE("NODE{0}:MEMBUF{4}", 0x570F001A, 0x1000000000000000);
+ // MEM_CHIPLET_CS_FIR[0] Attention from MBAFIR01
+ PRDS_SCR_WRITE("NODE{0}:MEMBUF{4}", 0x03040004, 0x8000000000000000);
+ // set MBAFIR01[0]
+ PRDS_SCR_WRITE("NODE{0}:MEMBUF{4}:MBS{0}:MBA{0}", 0x03010611, 0x8000000000000000);
+ PRDS_START_SIM();
+ if(!(PRDS_END()))
+ {
+ TS_FAIL("Expected Signature Failed MBAFIR01 Special attention");
+ }
+ }
+};
+#endif
diff --git a/src/usr/diag/prdf/test/prdfTest_Mcs.H b/src/usr/diag/prdf/test/prdfTest_Mcs.H
new file mode 100644
index 000000000..d81eb20e4
--- /dev/null
+++ b/src/usr/diag/prdf/test/prdfTest_Mcs.H
@@ -0,0 +1,109 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/test/prdfTest_Mcs.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef __TEST_PRDFMCSFIRTEST_H
+#define __TEST_PRDFMCSFIRTEST_H
+
+#ifdef __HOSTBOOT_MODULE
+ #include <cxxtest/TestSuite.H>
+ #include <errl/errlentry.H>
+ #include <errl/errlmanager.H>
+#else
+ #include <cxxtest/TestSuite.h>
+ #include <fsp/FipsGlobalFixture.H>
+ #include <errlentry.H>
+#endif
+
+#include <prdfTrace.H>
+#include <prdfMain.H>
+#include "prdfsimMacros.H"
+
+class MCIFIR:public CxxTest::TestSuite
+{
+ public:
+
+ void TestRecoverable(void)
+ {
+ PRDS_BEGIN("MCI20 Recoverable attention");
+ PRDS_ERROR_ENTRY("NODE{0}:PROC{0}", PRDF::RECOVERABLE);
+ PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}:MCS{4}", 0xde310000);
+ // GLOBAL_RE_FIR set bit 1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x570F001B , 0x4000000000000000);
+ // TP_CHIPLET_RE_FIR set bit 7
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x01040001, 0x0100000000000000);
+ // set bit 0
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:MCS{4}", 0x02011840, 0x8000000000000000);
+ // ACT1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:MCS{4}", 0x02011847, 0xFFFFFFFFFFFFFFFF);
+ PRDS_START_SIM();
+ if(!(PRDS_END()))
+ {
+ TS_FAIL("Expected Signature Failed MCI20 Recoverable attention");
+ }
+ }
+
+ void TestCheckstop(void)
+ {
+ /*
+ PRDS_BEGIN("MCI20 Checkstop attention");
+ PRDS_ERROR_ENTRY("NODE{0}:PROC{0}", PRDF::CHECK_STOP);
+ PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}:MCS{4}", 0xde310003);
+ // GLOBAL_RE_FIR set bit 1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x570F001C , 0x4000000000000000);
+ // TP_CHIPLET_RE_FIR set bit 9
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x01040000, 0x0080000000000000);
+ // set bit 3
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:MCS{4}", 0x02011840, 0x1000000000000000);
+ // ACT1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:MCS{4}", 0x02011847, 0x0000000000000000);
+ PRDS_START_SIM();
+ if(!(PRDS_END()))
+ {
+ TS_FAIL("Expected Signature Failed MCI20 Checkstop attention");
+ }
+ */
+ }
+
+ void TestSpecialAttention(void)
+ {
+ PRDS_BEGIN("MCI20 Special attention");
+ PRDS_ERROR_ENTRY("NODE{0}:PROC{0}", PRDF::SPECIAL);
+ PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}:MCS{4}", 0xde310001);
+ // GLOBAL_SPA_FIR set bit 1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x570F001A , 0x4000000000000000);
+ // TP_CHIPLET_RE_FIR set bit 5
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x01040004, 0x0400000000000000);
+ // set bit 1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:MCS{4}", 0x02011840, 0x4000000000000000);
+ // ACT1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:MCS{4}", 0x02011846, 0xFFFFFFFFFFFFFFFF);
+ PRDS_START_SIM();
+ if(!(PRDS_END()))
+ {
+ TS_FAIL("Expected Signature Failed MCI20 Special attention");
+ }
+ }
+
+};
+
+
+#endif
diff --git a/src/usr/diag/prdf/test/prdfTest_Proc.H b/src/usr/diag/prdf/test/prdfTest_Proc.H
new file mode 100644
index 000000000..55b50af97
--- /dev/null
+++ b/src/usr/diag/prdf/test/prdfTest_Proc.H
@@ -0,0 +1,88 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/test/prdfTest_Proc.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef __TEST_PRDFPROCTEST_H
+#define __TEST_PRDFPROCTEST_H
+
+#ifdef __HOSTBOOT_MODULE
+ #include <cxxtest/TestSuite.H>
+ #include <errl/errlentry.H>
+ #include <errl/errlmanager.H>
+#else
+ #include <cxxtest/TestSuite.h>
+ #include <fsp/FipsGlobalFixture.H>
+ #include <errlentry.H>
+#endif
+
+#include <stdio.h>
+#include <prdfTrace.H>
+#include <prdfMain.H>
+#include "prdfsimMacros.H"
+
+class OCCFIR:public CxxTest::TestSuite
+{
+ public:
+
+ void TestRecoverable(void)
+ {
+ PRDS_BEGIN("OCCFIR recoverable attention");
+ PRDS_ERROR_ENTRY("NODE{0}:PROC{0}", PRDF::RECOVERABLE);
+ PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}", 0x6c290000);
+ // GLOBAL_RE_FIR set bit 1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}",0x570F001B , 0x4000000000000000);
+ // TP_CHIPLET_RE_FIR set bit 2
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x01040001, 0x2000000000000000);
+ // set bit 0
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x01010800, 0x8000000000000000);
+ // ACT1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x01010807, 0xFFFFFFFFFFFFFFFF);
+ PRDS_START_SIM();
+ if(!(PRDS_END()))
+ {
+ TS_FAIL("Expected Signature Failed OCCFIR recoverable attention");
+ }
+ }
+
+ void TestCheckStop(void)
+ {
+ /*
+ PRDS_BEGIN("OCCFIR checkstop attention");
+ PRDS_ERROR_ENTRY("NODE{0}:PROC{0}", PRDF::CHECK_STOP);
+ PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}", 0x6c290002);
+ // GLOBAL_RE_FIR set bit 1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x570F001C , 0x4000000000000000);
+ // TP_CHIPLET_RE_FIR set bit 4
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x01040000, 0x0800000000000000);
+ //set bit 2
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x01010800, 0x2000000000000000);
+ // ACT1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x01010807, 0x0000000000000000);
+ PRDS_START_SIM();
+ if(!(PRDS_END()))
+ {
+ TS_FAIL("Expected Signature Failed OCCFIR checkstop attention");
+ }
+ */
+ }
+
+};
+#endif
diff --git a/src/usr/diag/prdf/test/prdfTest_XBus.H b/src/usr/diag/prdf/test/prdfTest_XBus.H
new file mode 100644
index 000000000..50738a0b9
--- /dev/null
+++ b/src/usr/diag/prdf/test/prdfTest_XBus.H
@@ -0,0 +1,87 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/diag/prdf/test/prdfTest_XBus.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef __TEST_PRDFXBUSTEST_H
+#define __TEST_PRDFXBUSTEST_H
+
+#ifdef __HOSTBOOT_MODULE
+ #include <cxxtest/TestSuite.H>
+ #include <errl/errlentry.H>
+ #include <errl/errlmanager.H>
+#else
+ #include <cxxtest/TestSuite.h>
+ #include <fsp/FipsGlobalFixture.H>
+ #include <errlentry.H>
+#endif
+
+#include <prdfTrace.H>
+#include <prdfMain.H>
+#include "prdfsimMacros.H"
+
+class XBUSFIR:public CxxTest::TestSuite
+{
+ public:
+
+ void TestRecoverable(void)
+ {
+ PRDS_BEGIN("XBUSFIR Recoverable attention");
+ PRDS_ERROR_ENTRY("NODE{0}:PROC{0}", PRDF::RECOVERABLE);
+ PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}", 0xdb010000);
+ // GLOBAL_RE_FIR set bit 4
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x570F001B , 0x0800000000000000);
+ // XBUS_CHIPLET_RE_FIR set bit 1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x04040001, 0x4000000000000000);
+ // set bit 0
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x0404000a, 0x8000000000000000);
+ // ACT1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x04040011, 0xFFFFFFFFFFFFFFFF);
+ PRDS_START_SIM();
+ if(!(PRDS_END()))
+ {
+ TS_FAIL("Expected Signature Failed XBUSFIR Recoverable attention");
+ }
+ }
+
+
+ void TestCheckstop(void)
+ {
+ /*
+ PRDS_BEGIN("XBUSFIR Checkstop attention");
+ PRDS_ERROR_ENTRY("NODE{0}:PROC{0}", PRDF::CHECK_STOP);
+ PRDS_EXPECTED_SIGNATURE("NODE{0}:PROC{0}:XBUS{1}", 0xdb010002);
+ // GLOBAL_RE_FIR set bit 4
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}", 0x570F001C , 0x0800000000000000);
+ // XBUS_CHIPLET_RE_FIR set bit 3
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:XBUS{1}", 0x04040000, 0x1000000000000000);
+ // set bit 2
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:XBUS{1}", 0x0404000a, 0x2000000000000000);
+ // ACT1
+ PRDS_SCR_WRITE("NODE{0}:PROC{0}:XBUS{1}", 0x04040011, 0x0000000000000000);
+ PRDS_START_SIM();
+ if(!(PRDS_END()))
+ {
+ TS_FAIL("Expected Signature Failed XBUSFIR Checkstop attention");
+ }
+ */
+ }
+};
+#endif
diff --git a/src/usr/diag/prdf/test/prdfsimMacros.H b/src/usr/diag/prdf/test/prdfsimMacros.H
index c0d0b9f6a..6e426adbf 100755
--- a/src/usr/diag/prdf/test/prdfsimMacros.H
+++ b/src/usr/diag/prdf/test/prdfsimMacros.H
@@ -35,7 +35,7 @@
PRDF::getSimServices().startSim()
#define PRDS_END() \
- PRDF::getSimServices().endSim()
+ PRDF::getSimServices().endSim()
#define PRDS_ERROR_ENTRY(__EPATH__, __ATTNTYPE__) \
PRDF::getSimServices().addAttnEntry(__EPATH__, __ATTNTYPE__)
diff --git a/src/usr/diag/prdf/test/prdfsimServices.C b/src/usr/diag/prdf/test/prdfsimServices.C
index 5244a1e4c..e475d3da2 100755
--- a/src/usr/diag/prdf/test/prdfsimServices.C
+++ b/src/usr/diag/prdf/test/prdfsimServices.C
@@ -137,11 +137,13 @@ namespace PRDF
}
}
- void SimServices::endSim()
+ bool SimServices::endSim()
{
- summarySig();
+ bool l_testStatus = false;
+ l_testStatus = summarySig();
PRDF_TRAC( "SimServices::endSim() Test: %s",
(iv_testName ? iv_testName : "No Test Name specified"));
+ return l_testStatus;
}
void SimServices::addAttnEntry(const char * i_epath,
@@ -224,9 +226,15 @@ namespace PRDF
iv_SimSignatureParser->Report(i_chip, i_sig);
}
- void SimServices::summarySig()
+ bool SimServices::summarySig()
{
- iv_SimSignatureParser->Summary();
+ return iv_SimSignatureParser->Summary();
+ }
+
+ void SimServices::setTestName(const char * i_testName)
+ {
+ reset();
+ iv_testName = i_testName;
}
void SimServices::initTargeting()
diff --git a/src/usr/diag/prdf/test/prdfsimServices.H b/src/usr/diag/prdf/test/prdfsimServices.H
index 8e07e2ddf..0cce26299 100755
--- a/src/usr/diag/prdf/test/prdfsimServices.H
+++ b/src/usr/diag/prdf/test/prdfsimServices.H
@@ -47,11 +47,11 @@ class SimServices
void reset();
- void setTestName(const char * i_testName) { iv_testName = i_testName; }
+ void setTestName(const char * i_testName);
void startSim();
- void endSim();
+ bool endSim();
void addAttnEntry(const char * i_epath, PRDF::ATTENTION_VALUE_TYPE i_attnType);
@@ -72,7 +72,7 @@ class SimServices
//void AddSig(TARGETING::EntityPath & i_path, uint32_t i_sig);
void addSig(const char * i_epath, uint32_t i_sig);
void reportSig(uint32_t i_chip, uint32_t i_sig);
- void summarySig();
+ bool summarySig();
// SimSignatureParser functions end --------------
/**
diff --git a/src/usr/diag/prdf/test/prdsimSignatureParser.C b/src/usr/diag/prdf/test/prdsimSignatureParser.C
index 03e6e0eca..aa2927dd5 100755
--- a/src/usr/diag/prdf/test/prdsimSignatureParser.C
+++ b/src/usr/diag/prdf/test/prdsimSignatureParser.C
@@ -163,7 +163,7 @@ const char * SimSignatureParser::Description(const Signature & signature)
// --------------------------------------------------------------------
-void SimSignatureParser::Summary(void)
+bool SimSignatureParser::Summary(void)
{
PRDF_TRAC("%s", STATUS_BAR);
PRDF_TRAC("%s", SIG_SUM);
@@ -175,7 +175,6 @@ void SimSignatureParser::Summary(void)
}
else
{
- passed = false;
int iterations = actualSigList.size();
for(int i = 0; i < iterations; ++i)
{
@@ -208,10 +207,10 @@ void SimSignatureParser::Summary(void)
expectedSigList[i].chip, expectedSigList[i].code);
}
}
-
}
PRDF_TRAC("%s", STATUS_BAR);
+ return passed;
}
} // End namespace PRDF
diff --git a/src/usr/diag/prdf/test/prdsimSignatureParser.H b/src/usr/diag/prdf/test/prdsimSignatureParser.H
index db81f15b2..4627f2665 100755
--- a/src/usr/diag/prdf/test/prdsimSignatureParser.H
+++ b/src/usr/diag/prdf/test/prdsimSignatureParser.H
@@ -53,7 +53,7 @@ public:
// default dtor is ok
void Add(uint32_t i_chip, uint32_t i_sig);
void Report(uint32_t i_chip, uint32_t i_sig);
- void Summary();
+ bool Summary();
class Signature
OpenPOWER on IntegriCloud