Skip to content

Commit

Permalink
PRD: limit OBUS callouts when not in SMP mode
Browse files Browse the repository at this point in the history
Change-Id: I6b44a518bea00c2940b27f864c0cc5d78397b3bf
CQ: SW452296
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/69309
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Caleb N. Palmer <cnpalmer@us.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/69460
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
  • Loading branch information
zane131 committed Dec 6, 2018
1 parent bf6ab82 commit c6b5971
Showing 1 changed file with 25 additions and 6 deletions.
31 changes: 25 additions & 6 deletions src/usr/diag/prdf/common/plat/p9/prdfLaneRepair.C
Original file line number Diff line number Diff line change
Expand Up @@ -507,18 +507,37 @@ void obus_getSmpTarget( TargetHandle_t &i_obusTgt,
void obus_smpCallout_link( TargetHandle_t &i_obusTgt, uint32_t i_link,
STEP_CODE_DATA_STRUCT & i_sc )
{
TargetHandle_t l_smpTarg = nullptr;
#define PRDF_FUNC "[LaneRepair::obus_smpCallout_link] "

if ( !obusInSmpMode(i_obusTgt) )
{
// There is no support in for calling out the other end of an NV or
// openCAPI bus. By design, any FIR bits associated with those bus types
// should not be driving attentions. So instead use the default callout.

PRDF_ERR( PRDF_FUNC "Bus callouts only supported in SMP mode: "
"i_obusTgt=0x%08x", getHuid(i_obusTgt) );

// Get the associated SMP target for this OBUS target
obus_getSmpTarget( i_obusTgt, i_link, l_smpTarg );
PRDF_ASSERT(nullptr != l_smpTarg);
i_sc.service_data->SetCallout( LEVEL2_SUPPORT, MRU_MED, NO_GARD );
i_sc.service_data->SetCallout( SP_CODE, MRU_MED, NO_GARD );
i_sc.service_data->setServiceCall();
}
else
{
TargetHandle_t l_smpTarg = nullptr;

// Callout both SMPGROUPS
obus_smpCallout( l_smpTarg, i_obusTgt, i_sc );
// Get the associated SMP target for this OBUS target
obus_getSmpTarget( i_obusTgt, i_link, l_smpTarg );
PRDF_ASSERT(nullptr != l_smpTarg);

// Callout both SMPGROUPS
obus_smpCallout( l_smpTarg, i_obusTgt, i_sc );
}

return;

#undef PRDF_FUNC

} // end obus_smpCallout_link - smp link number


Expand Down

0 comments on commit c6b5971

Please sign in to comment.