summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/usr/fsi/fsidd.C22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/usr/fsi/fsidd.C b/src/usr/fsi/fsidd.C
index 9f651f173..bbbdce165 100644
--- a/src/usr/fsi/fsidd.C
+++ b/src/usr/fsi/fsidd.C
@@ -2670,13 +2670,21 @@ errlHndl_t FsiDD::errorCleanup( FSI::FsiAddrInfo_t& i_addrInfo,
l_err = write( i_addrInfo.fsiTarg, FSI::SLRES_34, &data );
if(l_err) break;
- //further step is to issue a PIB reset to the FSI2PIB engine
- //in busy state, i.e. write arbitrary data to 101c
- //(putcfam 1007) register of the previously failed FSI2PIB
- //engine on Centaur.
- data = 0xFFFFFFFF;
- l_err = write( i_addrInfo.fsiTarg, FSI::FSI2PIB_STATUS, &data );
- if(l_err) break;
+ //Note: Not issuing PIB reset here to recent chips as it
+ // causes bad things to the rest of the logic
+ if( i_addrInfo.fsiTarg->getAttr<TARGETING::ATTR_MODEL>()
+ == TARGETING::MODEL_CENTAUR )
+ {
+ //further step is to issue a PIB reset to the FSI2PIB engine
+ //in busy state, i.e. write arbitrary data to 101c
+ //(putcfam 1007) register of the previously failed FSI2PIB
+ //engine on Centaur.
+ data = 0xFFFFFFFF;
+ l_err = write( i_addrInfo.fsiTarg,
+ FSI::FSI2PIB_STATUS,
+ &data );
+ if(l_err) break;
+ }
//Need to save/restore the true/comp masks or the FSP will
// get annoyed
OpenPOWER on IntegriCloud