diff options
| author | crgeddes <crgeddes@us.ibm.com> | 2016-04-07 16:44:52 -0500 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-04-27 11:46:53 -0400 |
| commit | 566ab6c4c49dd27220f26f76f19a72bf95ac00cc (patch) | |
| tree | a202dcbbb57ffbac86b6e2fcee587325ca158985 /src/usr/scom/runtime/test | |
| parent | 29319e3a075801a154e4b95434bd7d49797274ca (diff) | |
| download | blackbird-hostboot-566ab6c4c49dd27220f26f76f19a72bf95ac00cc.tar.gz blackbird-hostboot-566ab6c4c49dd27220f26f76f19a72bf95ac00cc.zip | |
Implement IGNORE_HW_ERROR opMode for Scom access
Some scoms will want to ignore HW errors from the various devices
used to perform scoms. This new opMode provides an option to let
the scom code know that errors from HW should be ignored
Change-Id: I88ea9c7a64e1d09e68ee85225b15babb434a4813
RTC: 150453
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/23041
Tested-by: Jenkins Server
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
Tested-by: FSP CI Jenkins
Reviewed-by: Matthew A. Ploetz <maploetz@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/scom/runtime/test')
| -rw-r--r-- | src/usr/scom/runtime/test/testscom_rt.H | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/src/usr/scom/runtime/test/testscom_rt.H b/src/usr/scom/runtime/test/testscom_rt.H index fbb15548f..1bc81884d 100644 --- a/src/usr/scom/runtime/test/testscom_rt.H +++ b/src/usr/scom/runtime/test/testscom_rt.H @@ -426,8 +426,8 @@ public: { scom_targets[myEX1], 0x000F0166, 0xabcdabcdabcdabcd, fapi2::NORMAL, true}, // invalid address range for target { scom_targets[myEX1], 0x21000000 ,0x7676767676767676, fapi2::IGNORE_HW_ERROR, false}, // pervasive addr does not req wakeup { scom_targets[myEX5], 0x20010A02, 0x9191919191919191, fapi2::IGNORE_HW_ERROR, false}, - { scom_targets[myEX5], 0x13040002, 0xabcdabcdabcdabcd, fapi2::IGNORE_HW_ERROR, true}, // invalid unit 0 address - { scom_targets[myEX1], 0x000F0166, 0xabcdabcdabcdabcd, fapi2::IGNORE_HW_ERROR, true}, // invalid address range for target + { scom_targets[myEX5], 0x2E010010, 0xabcdabcdabcdabcd, fapi2::IGNORE_HW_ERROR, true}, // invalid unit 0 address + { scom_targets[myEX1], 0x2E010009, 0xabcdabcdabcdabcd, fapi2::IGNORE_HW_ERROR, true}, // invalid address range for target { scom_targets[myEX1], 0x21000000 ,0x7676767676767676, fapi2::DO_NOT_DO_WAKEUP, false}, // pervasive addr does not req wakeup { scom_targets[myEX5], 0x20010A02, 0x9191919191919191, fapi2::DO_NOT_DO_WAKEUP, false}, { scom_targets[myEX5], 0x13040002, 0xabcdabcdabcdabcd, fapi2::DO_NOT_DO_WAKEUP, true}, // invalid unit 0 address @@ -453,8 +453,16 @@ public: TRACFCOMP( g_trac_scom, "ScomTest::test_opModes> Target %d is not functional", x ); continue; } - - + if(test_data[x].expectErr) + { + TRACFCOMP(g_trac_scom, "ScomTest::test_opModes> Writing 0x%X to the addr: 0x%X with opMode: 0x%X and an error is expected", + test_data[x].data,test_data[x].addr,test_data[x].mode); + } + else + { + TRACFCOMP(g_trac_scom, "ScomTest::test_opModes> Writing 0x%X to the addr: 0x%X with opMode: 0x%X and an error is NOT expected", + test_data[x].data,test_data[x].addr,test_data[x].mode); + } op_size = sizeof(uint64_t); total++; @@ -469,7 +477,7 @@ public: if( l_err ) { TRACFCOMP(g_trac_scom, "ScomTest::test_opModes> [%d] Write: Error from device : addr=0x%X, RC=%X", x, test_data[x].addr, l_err->reasonCode() ); - TS_FAIL( "ScomTest::test_opModes> ERROR : Unexpected error log from write1" ); + TS_FAIL( "ScomTest::test_opModes> ERROR : Unexpected error log from deviceWrite" ); fails++; errlCommit(l_err,SCOM_COMP_ID); } @@ -482,8 +490,8 @@ public: } else { - TRACFCOMP( g_trac_scom, "ScomTest::test_opModes.. Expected Error log and did not get one for addr 0x%X " ,test_data[x].addr ); - TS_FAIL( "ScomTest::test_opModes> ERROR : Expected Error log and did not get one" ); + TRACFCOMP( g_trac_scom, "ScomTest::test_opModes.. Expected an error log and did not get one for addr 0x%X " ,test_data[x].addr ); + TS_FAIL( "ScomTest::test_opModes> ERROR : Expected an Error log and did not get one" ); fails++; } } @@ -508,6 +516,17 @@ public: op_size = sizeof(uint64_t); + if(test_data[x].expectErr) + { + TRACFCOMP(g_trac_scom, "ScomTest::test_opModes> Reading from the addr: 0x%X with opMode: 0x%X and an error is expected", + test_data[x].data,test_data[x].addr, test_data[x].mode); + } + else + { + TRACFCOMP(g_trac_scom, "ScomTest::test_opModes> Reading from the addr: 0x%X with opMode: 0x%X and an error is not expected", + test_data[x].data,test_data[x].addr, test_data[x].mode); + } + total++; l_err = deviceRead( test_data[x].target, &(read_data[x]), @@ -518,7 +537,7 @@ public: if( l_err ) { TRACFCOMP(g_trac_scom, "ScomTest::test_opModes> [%d] Read: Error from device : addr=0x%X, RC=%X", x, test_data[x].addr, l_err->reasonCode() ); - TS_FAIL( "ScomTest::test_opModes> ERROR : Unexpected error log from write1" ); + TS_FAIL( "ScomTest::test_opModes> ERROR : Unexpected error log from deviceRead" ); fails++; errlCommit(l_err,SCOM_COMP_ID); } |

