summaryrefslogtreecommitdiffstats
path: root/src/usr/fsi/test/fsiprestest.H
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2011-12-02 16:35:57 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2011-12-08 08:53:49 -0600
commit47facf10fc682816fd7683b389451b7be9a6dadb (patch)
tree2aff857b72853444deff7d4a33dd506a119bee9c /src/usr/fsi/test/fsiprestest.H
parent3ed716d22b8e36965d874e0de8ef7b46e4a30782 (diff)
downloadtalos-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.H32
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;
OpenPOWER on IntegriCloud