From be07d93af71c9213818304af4ed125a60f458d38 Mon Sep 17 00:00:00 2001 From: Caleb Palmer Date: Mon, 4 Mar 2019 14:55:53 -0600 Subject: PRD: MEM_PORT getConnected support Change-Id: I51e09b122f1d3b84b2d240e43882f9edafb45d3b RTC: 206186 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/72786 Tested-by: Jenkins Server Reviewed-by: Zane C. Shelley Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/72888 Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Tested-by: FSP CI Jenkins --- src/usr/diag/prdf/common/plat/prdfTargetServices.C | 26 ++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/usr/diag/prdf/common/plat/prdfTargetServices.C b/src/usr/diag/prdf/common/plat/prdfTargetServices.C index 3f54469c6..70686a765 100755 --- a/src/usr/diag/prdf/common/plat/prdfTargetServices.C +++ b/src/usr/diag/prdf/common/plat/prdfTargetServices.C @@ -453,11 +453,12 @@ struct conn_t case TYPE_MCC: order = 21; break; case TYPE_OMI: order = 22; break; case TYPE_OCMB_CHIP: order = 23; break; - case TYPE_DMI: order = 24; break; - case TYPE_MEMBUF: order = 25; break; - case TYPE_L4: order = 26; break; - case TYPE_MBA: order = 27; break; - case TYPE_DIMM: order = 28; break; + case TYPE_MEM_PORT: order = 24; break; + case TYPE_DMI: order = 25; break; + case TYPE_MEMBUF: order = 26; break; + case TYPE_L4: order = 27; break; + case TYPE_MBA: order = 28; break; + case TYPE_DIMM: order = 29; break; default: ; } @@ -586,8 +587,12 @@ TargetService::ASSOCIATION_TYPE getAssociationType( TargetHandle_t i_target, { TYPE_OMI, TYPE_OCMB_CHIP, TargetService::CHILD_BY_AFFINITY }, { TYPE_OCMB_CHIP, TYPE_OMI, TargetService::PARENT_BY_AFFINITY }, + { TYPE_OCMB_CHIP, TYPE_MEM_PORT,TargetService::CHILD_BY_AFFINITY }, { TYPE_OCMB_CHIP, TYPE_DIMM, TargetService::CHILD_BY_AFFINITY }, + { TYPE_MEM_PORT, TYPE_OCMB_CHIP,TargetService::PARENT_BY_AFFINITY }, + { TYPE_MEM_PORT, TYPE_DIMM, TargetService::CHILD_BY_AFFINITY }, + { TYPE_DMI, TYPE_PROC, TargetService::PARENT_BY_AFFINITY }, { TYPE_DMI, TYPE_MC, TargetService::PARENT_BY_AFFINITY }, { TYPE_DMI, TYPE_MI, TargetService::PARENT_BY_AFFINITY }, @@ -609,6 +614,7 @@ TargetService::ASSOCIATION_TYPE getAssociationType( TargetHandle_t i_target, { TYPE_DIMM, TYPE_MCA, TargetService::PARENT_BY_AFFINITY }, { TYPE_DIMM, TYPE_OCMB_CHIP, TargetService::PARENT_BY_AFFINITY }, + { TYPE_DIMM, TYPE_MEM_PORT, TargetService::PARENT_BY_AFFINITY }, { TYPE_DIMM, TYPE_MBA, TargetService::PARENT_BY_AFFINITY }, }; @@ -832,7 +838,8 @@ TargetHandle_t getConnectedChild( TargetHandle_t i_target, TYPE i_connType, (i_connPos == (mcaPos % MAX_MCA_PER_MCS)); } ); } - else if ( TYPE_MCA == trgtType && TYPE_DIMM == i_connType ) + else if ( (TYPE_MCA == trgtType && TYPE_DIMM == i_connType) || + (TYPE_MEM_PORT == trgtType && TYPE_DIMM == i_connType) ) { // i_connPos is the DIMM select (0-1). Note that we don't use // getTargetPosition() on the DIMM because that does not return a @@ -842,8 +849,8 @@ TargetHandle_t getConnectedChild( TargetHandle_t i_target, TYPE i_connType, // will always match the DIMM select. This does not let us match the // parent unit like all of the other checks in this functions. // Fortunately, it will be very difficult to have a bug where the - // getConnected code returns DIMMs on a different MCA target. So - // this is an acceptible risk. + // getConnected code returns DIMMs on a different MCA/MEM_PORT + // target. So this is an acceptable risk. itr = std::find_if( list.begin(), list.end(), [&](const TargetHandle_t & t) { return ( i_connPos == t->getAttr() ); } ); @@ -893,7 +900,8 @@ TargetHandle_t getConnectedChild( TargetHandle_t i_target, TYPE i_connType, } ); } else if ( (TYPE_DMI == trgtType && TYPE_MEMBUF == i_connType) || - (TYPE_OMI == trgtType && TYPE_OCMB_CHIP == i_connType) ) + (TYPE_OMI == trgtType && TYPE_OCMB_CHIP == i_connType) || + (TYPE_OCMB_CHIP == trgtType && TYPE_MEM_PORT == i_connType) ) { // There should only be one in the list. PRDF_ASSERT( 1 == list.size() ); // just in case -- cgit v1.2.1