Skip to content

Commit f07d459

Browse files
cnpalmerzane131
authored andcommitted
PRD: Disable OCMB UCS check and clear subchnl specific attn
Change-Id: I92996edae849b1b92b58d1b309df7c555ac5b90f CQ: SW487664 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/93534 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Zane C Shelley <zshelle@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/93634 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>
1 parent a8368a4 commit f07d459

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

src/usr/diag/prdf/common/plat/explorer/explorer_ocmb_regs.rule

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#
66
# OpenPOWER HostBoot Project
77
#
8-
# Contributors Listed Below - COPYRIGHT 2019
8+
# Contributors Listed Below - COPYRIGHT 2019,2020
99
# [+] International Business Machines Corp.
1010
#
1111
#
@@ -469,13 +469,3 @@
469469
capture group default;
470470
};
471471

472-
############################################################################
473-
# Interrupt status register
474-
############################################################################
475-
476-
register INTER_STATUS_REG
477-
{
478-
name "TPTOP.PIB.PCBMS.INTERRUPT_TYPE_REG";
479-
scomaddr 0x000F001A;
480-
capture group default;
481-
};

src/usr/diag/prdf/common/plat/mem/prdfMemUtils.C

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -678,13 +678,19 @@ void cleanupChnlAttns<TYPE_OCMB_CHIP>( ExtensibleChip * i_chip,
678678

679679
#ifdef __HOSTBOOT_MODULE // only do cleanup in Hostboot, no-op in FSP
680680

681-
// Clear the associated FIR bits for all attention types. DSTLFIR[0:7]
681+
// Get the subchannel pos (0:1)
682+
TargetHandle_t ocmb = i_chip->getTrgt();
683+
TargetHandle_t omi = getConnectedParent( ocmb, TYPE_OMI );
684+
uint8_t chnlPos = getTargetPosition(omi) % MAX_OMI_PER_MCC;
685+
686+
// Clear the associated FIR bits for all attention types. DSTLFIR[0:3]
687+
// for subchannel 0 or DSTLFIR[4:7] for subchannel 1
682688
ExtensibleChip * mcc = getConnectedParent( i_chip, TYPE_MCC );
683689

684690
SCAN_COMM_REGISTER_CLASS * reg = mcc->getRegister( "DSTLFIR_AND" );
685691

686692
reg->setAllBits();
687-
reg->SetBitFieldJustified( 0, 8, 0 );
693+
reg->SetBitFieldJustified( chnlPos*4, 4, 0 );
688694
reg->Write();
689695

690696
#endif // Hostboot only
@@ -1502,6 +1508,7 @@ bool __queryUcsOcmb( ExtensibleChip * i_ocmb )
15021508

15031509
bool o_activeAttn = false;
15041510

1511+
/* TODO
15051512
// We can't use the GLOBAL_CS_FIR. It will not clear automatically when a
15061513
// channel has failed because the hardware clocks have stopped. Also, since
15071514
// it is a virtual register there really is no way to clear it. Fortunately
@@ -1516,6 +1523,7 @@ bool __queryUcsOcmb( ExtensibleChip * i_ocmb )
15161523
{
15171524
o_activeAttn = fir->IsBitSet(2); // Checkstop bit.
15181525
}
1526+
*/
15191527

15201528
return o_activeAttn;
15211529
}
@@ -1914,11 +1922,13 @@ void __cleanupChnlFail<TYPE_OMI>( TargetHandle_t i_omi,
19141922
reg->Write();
19151923

19161924

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

19231933
// During runtime, send a dynamic memory deallocation message.
19241934
// During Memory Diagnostics, tell MDIA to stop pattern tests.

0 commit comments

Comments
 (0)