diff options
| author | Zane Shelley <zshelle@us.ibm.com> | 2018-11-30 11:49:31 -0600 |
|---|---|---|
| committer | Zane C. Shelley <zshelle@us.ibm.com> | 2018-12-06 09:35:54 -0600 |
| commit | c6b5971be189bd7b4cc4b6898709626bf8501797 (patch) | |
| tree | d14305f7d472e9a6567f86e74dbb553a08642193 /src | |
| parent | bf6ab8287c517a6e25004a61210d7a40681e70b1 (diff) | |
| download | blackbird-hostboot-c6b5971be189bd7b4cc4b6898709626bf8501797.tar.gz blackbird-hostboot-c6b5971be189bd7b4cc4b6898709626bf8501797.zip | |
PRD: limit OBUS callouts when not in SMP mode
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>
Diffstat (limited to 'src')
| -rw-r--r-- | src/usr/diag/prdf/common/plat/p9/prdfLaneRepair.C | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/src/usr/diag/prdf/common/plat/p9/prdfLaneRepair.C b/src/usr/diag/prdf/common/plat/p9/prdfLaneRepair.C index c7ca9fd94..25978ac6b 100644 --- a/src/usr/diag/prdf/common/plat/p9/prdfLaneRepair.C +++ b/src/usr/diag/prdf/common/plat/p9/prdfLaneRepair.C @@ -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 |

