summaryrefslogtreecommitdiffstats
path: root/src/hwpf/src
diff options
context:
space:
mode:
authorSantosh Puranik <santosh.puranik@in.ibm.com>2016-12-07 03:19:35 -0600
committerSantosh S. Puranik <santosh.puranik@in.ibm.com>2017-01-12 04:45:50 -0500
commit9cb883e5647c2e02d07fa49d93ea9dbbfd4443d6 (patch)
treeb4c59e8c30d19fd61504da16db74d409753150cc /src/hwpf/src
parentdf7e2b85dbf9e51987a9b79a5e18f258bf5dac45 (diff)
downloadtalos-sbe-9cb883e5647c2e02d07fa49d93ea9dbbfd4443d6.tar.gz
talos-sbe-9cb883e5647c2e02d07fa49d93ea9dbbfd4443d6.zip
Specialization of getParent for compound targets
Change-Id: I14f9a99a4f645d9560a96503fc3941abc18c3c04 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/33516 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Santosh S. Puranik <santosh.puranik@in.ibm.com>
Diffstat (limited to 'src/hwpf/src')
-rw-r--r--src/hwpf/src/plat/target.C35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/hwpf/src/plat/target.C b/src/hwpf/src/plat/target.C
index 301e8534..dbf8413b 100644
--- a/src/hwpf/src/plat/target.C
+++ b/src/hwpf/src/plat/target.C
@@ -162,6 +162,41 @@ namespace fapi2
return l_targetType;
}
+ plat_target_handle_t plat_target_handle_t::getParent(
+ const TargetType i_parentType) const
+ {
+ plat_target_handle_t l_handle;
+ switch(i_parentType)
+ {
+ case TARGET_TYPE_PROC_CHIP:
+ l_handle = G_vec_targets[CHIP_TARGET_OFFSET];
+ break;
+ case TARGET_TYPE_PERV:
+ assert(fields.type & PPE_TARGET_TYPE_PERV);
+ l_handle = *this;
+ break;
+ case TARGET_TYPE_EX:
+ assert(fields.type & PPE_TARGET_TYPE_CORE);
+ l_handle = G_vec_targets
+ [(fields.type_target_num / EX_PER_QUAD) + EX_TARGET_OFFSET];
+ break;
+ case TARGET_TYPE_EQ:
+ assert(fields.type &
+ (PPE_TARGET_TYPE_EX | PPE_TARGET_TYPE_CORE));
+ {
+ uint32_t l_perQuad = (fields.type & PPE_TARGET_TYPE_EX) ?
+ EX_PER_QUAD : CORES_PER_QUAD;
+ l_handle = G_vec_targets
+ [(fields.type_target_num / l_perQuad) +
+ EX_TARGET_OFFSET];
+ }
+ break;
+ default:
+ assert(false);
+ }
+ return l_handle;
+ }
+
void plat_target_handle_t::getChildren(const TargetType i_parentType,
const TargetType i_childType,
const plat_target_type_t i_platType,
OpenPOWER on IntegriCloud