summaryrefslogtreecommitdiffstats
path: root/src/hwpf/target.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/hwpf/target.H')
-rw-r--r--src/hwpf/target.H29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/hwpf/target.H b/src/hwpf/target.H
index 190b3da3..09f5793d 100644
--- a/src/hwpf/target.H
+++ b/src/hwpf/target.H
@@ -6,6 +6,7 @@
/* OpenPOWER sbe Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2012,2017 */
+/* [+] International Business Machines Corp. */
/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
@@ -114,6 +115,12 @@ namespace fapi2
}
template<>
+ constexpr plat_target_type_t fapiTargetTypeToPlatTargetType<TARGET_TYPE_MI>()
+ {
+ return PPE_TARGET_TYPE_MI;
+ }
+
+ template<>
constexpr plat_target_type_t fapiTargetTypeToPlatTargetType<TARGET_TYPE_PHB>()
{
return PPE_TARGET_TYPE_PHB;
@@ -126,6 +133,12 @@ namespace fapi2
}
template<>
+ constexpr plat_target_type_t fapiTargetTypeToPlatTargetType<TARGET_TYPE_MC>()
+ {
+ return PPE_TARGET_TYPE_MC;
+ }
+
+ template<>
constexpr plat_target_type_t fapiTargetTypeToPlatTargetType<TARGET_TYPE_PERV>()
{
return PPE_TARGET_TYPE_PERV;
@@ -186,7 +199,8 @@ namespace fapi2
constexpr TargetType TARGET_TYPE_PROC_CHILDREN =
TARGET_TYPE_EQ | TARGET_TYPE_PERV | TARGET_TYPE_EX |
TARGET_TYPE_MCBIST | TARGET_TYPE_CORE |
- TARGET_TYPE_MCS | TARGET_TYPE_PROC_CHIP | TARGET_TYPE_PHB;
+ TARGET_TYPE_MCS | TARGET_TYPE_PROC_CHIP | TARGET_TYPE_PHB |
+ TARGET_TYPE_MC | TARGET_TYPE_MI;
static_assert(((
((K & TARGET_TYPE_PROC_CHILDREN) != TARGET_TYPE_NONE) ||
@@ -213,6 +227,12 @@ namespace fapi2
"Invalid parent for MCBIST target, must be PERV or "
"PROC_CHIP");
+ static_assert(!((K == TARGET_TYPE_MC) &&
+ (T != TARGET_TYPE_PERV) &&
+ (T != TARGET_TYPE_PROC_CHIP)),
+ "Invalid parent for MC target, must be PERV or "
+ "PROC_CHIP");
+
static_assert(!((K == TARGET_TYPE_CORE) &&
(T != TARGET_TYPE_PERV) &&
(T != TARGET_TYPE_PROC_CHIP) &&
@@ -233,11 +253,11 @@ namespace fapi2
"Invalid parent for EX target, must be PERV or "
"PROC_CHIP or EQ");
- if(TARGET_TYPE_PERV == T) // EQ/EC/MCBIST/PERV ===> PERV
+ if(TARGET_TYPE_PERV == T) // EQ/EC/MCBIST/MC/PERV ===> PERV
{
return static_cast<V>(this->iv_handle);
}
- if(TARGET_TYPE_PROC_CHIP == T) // EQ/EC/EX/MCBIST/PERV ===> PROC
+ if(TARGET_TYPE_PROC_CHIP == T) // EQ/EC/EX/MCBIST/MC/PERV ===> PROC
{
return static_cast<V>(G_vec_targets[CHIP_TARGET_OFFSET]);
}
@@ -326,7 +346,8 @@ namespace fapi2
static_assert((K == TARGET_TYPE_PROC_CHIP), "Parent target must be the proc chip");
static_assert((T == TARGET_TYPE_EQ) || (T == TARGET_TYPE_CORE)
- || (T == TARGET_TYPE_PERV) || (T == TARGET_TYPE_MCBIST),
+ || (T == TARGET_TYPE_PERV) || (T == TARGET_TYPE_MCBIST)
+ || (T == TARGET_TYPE_MC),
"Child target type must be a pervasive chiplet");
std::vector<Target<T> > l_children;
OpenPOWER on IntegriCloud