summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaleb Palmer <cnpalmer@us.ibm.com>2019-03-04 14:55:53 -0600
committerZane C. Shelley <zshelle@us.ibm.com>2019-03-20 23:11:36 -0500
commitbe07d93af71c9213818304af4ed125a60f458d38 (patch)
treec90642b29193f4b1b8f33fcf42f7028a2f14a73a
parent0a0fe1f2857aeeeb8be1bb6406c5e38ad861535f (diff)
downloadtalos-hostboot-be07d93af71c9213818304af4ed125a60f458d38.tar.gz
talos-hostboot-be07d93af71c9213818304af4ed125a60f458d38.zip
PRD: MEM_PORT getConnected support
Change-Id: I51e09b122f1d3b84b2d240e43882f9edafb45d3b RTC: 206186 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/72786 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/72888 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>
-rwxr-xr-xsrc/usr/diag/prdf/common/plat/prdfTargetServices.C26
1 files 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<ATTR_REL_POS>() ); } );
@@ -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
OpenPOWER on IntegriCloud