diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2011-12-02 16:35:57 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2011-12-08 08:53:49 -0600 |
commit | 47facf10fc682816fd7683b389451b7be9a6dadb (patch) | |
tree | 2aff857b72853444deff7d4a33dd506a119bee9c /src/usr/fsi/test/fsiprestest.H | |
parent | 3ed716d22b8e36965d874e0de8ef7b46e4a30782 (diff) | |
download | talos-hostboot-47facf10fc682816fd7683b389451b7be9a6dadb.tar.gz talos-hostboot-47facf10fc682816fd7683b389451b7be9a6dadb.zip |
Use remote xscom for remote centaur FSI ops
Task 4086
If the powerbus is alive we will use the remote master's OPB logic
directly instead of using the master proc's logic and cascading
through the MFSI port.
Added a target-specific mutex to handle concurrency issues.
Note - the new code path cannot be tested until XSCOM is completed
with Story 4382
I also modified some error handling to take care of errors exposed
by the fsipres testcase.
Verified on SALERNO and 2-proc VENICE models.
Change-Id: If48ddde60cef819ff6b921e00bdbab5027830be4
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/569
Tested-by: Jenkins Server
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/fsi/test/fsiprestest.H')
-rw-r--r-- | src/usr/fsi/test/fsiprestest.H | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/src/usr/fsi/test/fsiprestest.H b/src/usr/fsi/test/fsiprestest.H index fd9513553..912e1b75a 100644 --- a/src/usr/fsi/test/fsiprestest.H +++ b/src/usr/fsi/test/fsiprestest.H @@ -42,6 +42,7 @@ using namespace DeviceFW; extern trace_desc_t* g_trac_fsi; uint64_t target_to_uint64(const TARGETING::Target* i_target); + class FSIPresTest : public CxxTest::TestSuite { public: @@ -55,12 +56,20 @@ class FSIPresTest : public CxxTest::TestSuite */ void testPresence() { - - //@VBU workaround @todo - // This test causes an issue with sprint 7 VBU code as well as - // SIMICS VENICE model. - // Temporarily disable it - return; + //@todo + //@VBU workaround - Disable test case + //Temporarily disable this test case in VBU because of + //an MFSI/CFSI XSCOM hardware bug. + TARGETING::EntityPath syspath(TARGETING::EntityPath::PATH_PHYSICAL); + syspath.addLast(TARGETING::TYPE_SYS,0); + TARGETING::Target* sys = TARGETING::targetService().toTarget(syspath); + uint8_t vpo_mode = 0; + if( sys + && sys->tryGetAttr<TARGETING::ATTR_VPO_MODE>(vpo_mode) + && (vpo_mode == 1) ) + { + return; + } Target* l_masterChip = NULL; targetService().masterProcChipTargetHandle(l_masterChip); @@ -79,7 +88,7 @@ class FSIPresTest : public CxxTest::TestSuite while(target) { TS_TRACE("FSI-PRES: Testing target %x", - target_to_uint64(*target)); + target_to_uint64(*target)); // Read presence detect. errlHndl_t l_errl = NULL; @@ -128,6 +137,9 @@ class FSIPresTest : public CxxTest::TestSuite "FSI-PRES: FSI-read failed with %d on %x", l_errl->reasonCode(), target_to_uint64(*target)); + // commit this log for debug + l_errl->collectTrace("UNIT_TEST",512); + errlCommit(l_errl,FSI_COMP_ID); } else if (!present && !l_errl) { @@ -143,6 +155,12 @@ class FSIPresTest : public CxxTest::TestSuite TS_TRACE("FSI-PRES: Read chip-id %x on %x", fsi_data, target_to_uint64(*target)); } + + // Delete any logs that got produced + if( l_errl ) + { + delete l_errl; + } } ++target; |