Skip to content

Commit

Permalink
PRD: Channel Fail fix OCMB UCS query
Browse files Browse the repository at this point in the history
Change-Id: I196d7df26fe6e0773a7041f94d488b62fde0668a
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/93674
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Benjamen G Tyner <ben.tyner@ibm.com>
Reviewed-by: Brian J Stegmiller <bjs@us.ibm.com>
Reviewed-by: Zane C Shelley <zshelle@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/93713
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
  • Loading branch information
cnpalmer authored and zane131 committed Mar 20, 2020
1 parent b6badfc commit 004dbba
Showing 1 changed file with 11 additions and 22 deletions.
33 changes: 11 additions & 22 deletions src/usr/diag/prdf/common/plat/mem/prdfMemUtils.C
Expand Up @@ -1508,22 +1508,20 @@ bool __queryUcsOcmb( ExtensibleChip * i_ocmb )

bool o_activeAttn = false;

/* TODO
// We can't use the GLOBAL_CS_FIR. It will not clear automatically when a
// channel has failed because the hardware clocks have stopped. Also, since
// it is a virtual register there really is no way to clear it. Fortunately
// we have the INTER_STATUS_REG that will tell us if there is an active
// attention. Note that we clear this register as part of the channel
// failure cleanup. So we can rely on this register to determine if there is
// a new channel failure.
SCAN_COMM_REGISTER_CLASS * fir = i_ocmb->getRegister("INTER_STATUS_REG");
// Query the OCMB chiplet level FIR to determine if we have a UNIT_CS.
SCAN_COMM_REGISTER_CLASS * fir = i_ocmb->getRegister("OCMB_CHIPLET_CS_FIR");
SCAN_COMM_REGISTER_CLASS * mask =
i_ocmb->getRegister("OCMB_CHIPLET_FIR_MASK");

if ( SUCCESS == fir->Read() )
if ( SUCCESS == (fir->Read() | mask->Read()) )
{
o_activeAttn = fir->IsBitSet(2); // Checkstop bit.
if ( 0 != ( fir->GetBitFieldJustified(0,64) &
~mask->GetBitFieldJustified(0,64) &
0x1fffffffffffffff ) )
{
o_activeAttn = true;
}
}
*/

return o_activeAttn;
}
Expand Down Expand Up @@ -1921,15 +1919,6 @@ void __cleanupChnlFail<TYPE_OMI>( TargetHandle_t i_omi,
reg->setAllBits(); // Blindly mask everything
reg->Write();


/* TODO
// To ensure FSP ATTN doesn't think there is an active attention on this
// OCMB, manually clear the interrupt status register.
reg = ocmbChip->getRegister( "INTER_STATUS_REG" );
reg->clearAllBits(); // Blindly clear everything
reg->Write();
*/

// During runtime, send a dynamic memory deallocation message.
// During Memory Diagnostics, tell MDIA to stop pattern tests.
#ifdef __HOSTBOOT_RUNTIME
Expand Down

0 comments on commit 004dbba

Please sign in to comment.