summaryrefslogtreecommitdiffstats
path: root/src/usr/fsi/fsidd.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/fsi/fsidd.C')
-rw-r--r--src/usr/fsi/fsidd.C56
1 files changed, 46 insertions, 10 deletions
diff --git a/src/usr/fsi/fsidd.C b/src/usr/fsi/fsidd.C
index 4f829df5f..bcb6810fb 100644
--- a/src/usr/fsi/fsidd.C
+++ b/src/usr/fsi/fsidd.C
@@ -56,9 +56,6 @@ TRAC_INIT(&g_trac_fsir, "FSIR", 4096); //4K
//#define TRACUCOMP(args...) TRACFCOMP(args)
#define TRACUCOMP(args...)
-//@fixme - VPO Debug
-bool INSIDE_DEBUG = false;
-
//@todo - This should come from the target/attribute code somewhere
uint64_t target_to_uint64(const TARGETING::Target* i_target)
{
@@ -864,15 +861,54 @@ errlHndl_t FsiDD::handleOpbErrors(const FsiAddrInfo_t& i_addrInfo,
i_addrInfo.absAddr),
TWO_UINT32_TO_UINT64(i_opbStatReg,0));
- if( !INSIDE_DEBUG )
+ // Collect some FFDC but avoid an infinite loop
+ if( !iv_ffdcCollection )
{
- INSIDE_DEBUG = true;
+ iv_ffdcCollection = true;
uint32_t data = 0;
- read( 0x31D0, &data ); TRACFCOMP( g_trac_fsi, "MESRB0(1D0) = %.8X", data );
- read( 0x31D4, &data ); TRACFCOMP( g_trac_fsi, "MCSCSB0(1D4) = %.8X", data );
- read( 0x31D8, &data ); TRACFCOMP( g_trac_fsi, "MATRB0(1D8) = %.8X", data );
- read( 0x31DC, &data ); TRACFCOMP( g_trac_fsi, "MDTRB0(1DC) = %.8X", data );
- INSIDE_DEBUG = false;
+ errlHndl_t l_err2 = NULL;
+
+ l_err2 = read( 0x31D0, &data );
+ if( l_err2 )
+ {
+ delete l_err2;
+ }
+ else
+ {
+ TRACFCOMP( g_trac_fsi, "MESRB0(1D0) = %.8X", data );
+ }
+
+ l_err2 = read( 0x31D4, &data );
+ if( l_err2 )
+ {
+ delete l_err2;
+ }
+ else
+ {
+ TRACFCOMP( g_trac_fsi, "MCSCSB0(1D4) = %.8X", data );
+ }
+
+ l_err2 = read( 0x31D8, &data );
+ if( l_err2 )
+ {
+ delete l_err2;
+ }
+ else
+ {
+ TRACFCOMP( g_trac_fsi, "MATRB0(1D8) = %.8X", data );
+ }
+
+ l_err2 = read( 0x31DC, &data );
+ if( l_err2 )
+ {
+ delete l_err2;
+ }
+ else
+ {
+ TRACFCOMP( g_trac_fsi, "MDTRB0(1DC) = %.8X", data );
+ }
+
+ iv_ffdcCollection = false;
}
l_err->collectTrace("FSI");
OpenPOWER on IntegriCloud