summaryrefslogtreecommitdiffstats
path: root/src/include/usr/fapi2
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/usr/fapi2')
-rw-r--r--src/include/usr/fapi2/target.H98
1 files changed, 95 insertions, 3 deletions
diff --git a/src/include/usr/fapi2/target.H b/src/include/usr/fapi2/target.H
index a77182281..5cfa0bd31 100644
--- a/src/include/usr/fapi2/target.H
+++ b/src/include/usr/fapi2/target.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2017 */
+/* Contributors Listed Below - COPYRIGHT 2015,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -238,6 +238,15 @@ inline TARGETING::TYPE convertFapi2TypeToTargeting(fapi2::TargetType i_T)
case fapi2::TARGET_TYPE_MC:
o_targetingType = TARGETING::TYPE_MC;
break;
+ case fapi2::TARGET_TYPE_OMI:
+ o_targetingType = TARGETING::TYPE_OMI;
+ break;
+ case fapi2::TARGET_TYPE_OMIC:
+ o_targetingType = TARGETING::TYPE_OMIC;
+ break;
+ case fapi2::TARGET_TYPE_MCC:
+ o_targetingType = TARGETING::TYPE_MCC;
+ break;
default:
FAPI_ERR("convertFapi2TypeToTargeting:: Chiplet type not supported 0x%.8X!", i_T);
assert(false);
@@ -338,6 +347,15 @@ inline fapi2::TargetType convertTargetingTypeToFapi2(TARGETING::TYPE i_T)
case TARGETING::TYPE_MC:
o_targetingType = fapi2::TARGET_TYPE_MC;
break;
+ case TARGETING::TYPE_OMI:
+ o_targetingType = fapi2::TARGET_TYPE_OMI;
+ break;
+ case TARGETING::TYPE_OMIC:
+ o_targetingType = fapi2::TARGET_TYPE_OMIC;
+ break;
+ case TARGETING::TYPE_MCC:
+ o_targetingType = fapi2::TARGET_TYPE_MCC;
+ break;
default:
o_targetingType = fapi2::TARGET_TYPE_NONE;
break;
@@ -372,6 +390,9 @@ inline Target<K_PARENT, V> Target<T_SELF, V>::getParent(void) const
fapi2::TARGET_TYPE_MCBIST |
fapi2::TARGET_TYPE_MC |
fapi2::TARGET_TYPE_MI |
+ fapi2::TARGET_TYPE_OMI |
+ fapi2::TARGET_TYPE_MCC |
+ fapi2::TARGET_TYPE_OMIC |
fapi2::TARGET_TYPE_CAPP |
fapi2::TARGET_TYPE_DMI |
fapi2::TARGET_TYPE_OBUS |
@@ -399,7 +420,10 @@ inline Target<K_PARENT, V> Target<T_SELF, V>::getParent(void) const
fapi2::TARGET_TYPE_MC |
fapi2::TARGET_TYPE_DMI |
fapi2::TARGET_TYPE_PEC |
- fapi2::TARGET_TYPE_PHB;
+ fapi2::TARGET_TYPE_PHB |
+ fapi2::TARGET_TYPE_OMI |
+ fapi2::TARGET_TYPE_OMIC |
+ fapi2::TARGET_TYPE_MCC;
static_assert( !((K_PARENT == fapi2::TARGET_TYPE_PERV) &&
((T_SELF & TARGET_TYPE_PERV_CHIPLETS) == fapi2::TARGET_TYPE_NONE)),
@@ -517,6 +541,44 @@ inline Target<K_PARENT, V> Target<T_SELF, V>::getParent(void) const
(K_PARENT != fapi2::TARGET_TYPE_PROC_CHIP)),
"improper parent of fapi2::TARGET_TYPE_MI");
+ // valid parents for MCC
+ // MCC -> PERV
+ // MCC -> MI
+ // MCC -> MC
+ // MCC -> PROC
+ static_assert(!((T_SELF == fapi2::TARGET_TYPE_MCC) &&
+ (K_PARENT != fapi2::TARGET_TYPE_PERV) &&
+ (K_PARENT != fapi2::TARGET_TYPE_MI) &&
+ (K_PARENT != fapi2::TARGET_TYPE_MC) &&
+ (K_PARENT != fapi2::TARGET_TYPE_PROC_CHIP)),
+ "improper parent of fapi2::TARGET_TYPE_MI");
+
+ // valid parents for OMI
+ // OMI -> PERV
+ // OMI -> MCC
+ // OMI -> MI
+ // OMI -> MC
+ // OMI -> OMIC
+ // OMI -> PROC
+ static_assert(!((T_SELF == fapi2::TARGET_TYPE_OMI) &&
+ (K_PARENT != fapi2::TARGET_TYPE_PERV) &&
+ (K_PARENT != fapi2::TARGET_TYPE_MCC) &&
+ (K_PARENT != fapi2::TARGET_TYPE_MI) &&
+ (K_PARENT != fapi2::TARGET_TYPE_MC) &&
+ (K_PARENT != fapi2::TARGET_TYPE_OMIC) &&
+ (K_PARENT != fapi2::TARGET_TYPE_PROC_CHIP)),
+ "improper parent of fapi2::TARGET_TYPE_MI");
+
+ // valid parents for OMIC
+ // OMIC -> PERV
+ // OMIC -> MC
+ // OMIC -> PROC
+ static_assert(!((T_SELF == fapi2::TARGET_TYPE_OMIC) &&
+ (K_PARENT != fapi2::TARGET_TYPE_PERV) &&
+ (K_PARENT != fapi2::TARGET_TYPE_MC) &&
+ (K_PARENT != fapi2::TARGET_TYPE_PROC_CHIP)),
+ "improper parent of fapi2::TARGET_TYPE_OMIC");
+
// valid parents for DMI
// DMI -> MI
// DMI -> MC
@@ -674,7 +736,7 @@ inline std::vector<Target<K_CHILD, V> >
// PERV -> XBUS
// PERV -> OBUS
// PERV -> CAPP
- // PERV -> NV
+ // PERV -> OBUS_BRICK
// PERV -> MCBIST
// PERV -> MCS
// PERV -> MCA
@@ -682,6 +744,9 @@ inline std::vector<Target<K_CHILD, V> >
// PERV -> PHB
// PERV -> MC
// PERV -> MI
+ // PERV -> MCC
+ // PERV -> OMIC
+ // PERV -> OMI
// PERV -> DMI
static_assert(!((T_SELF == fapi2::TARGET_TYPE_PERV) &&
(K_CHILD != fapi2::TARGET_TYPE_EQ) &&
@@ -697,6 +762,9 @@ inline std::vector<Target<K_CHILD, V> >
(K_CHILD != fapi2::TARGET_TYPE_PHB) &&
(K_CHILD != fapi2::TARGET_TYPE_MC) &&
(K_CHILD != fapi2::TARGET_TYPE_MI) &&
+ (K_CHILD != fapi2::TARGET_TYPE_MCC) &&
+ (K_CHILD != fapi2::TARGET_TYPE_OMIC) &&
+ (K_CHILD != fapi2::TARGET_TYPE_OMI) &&
(K_CHILD != fapi2::TARGET_TYPE_DMI)),
"improper child of fapi2::TARGET_TYPE_PERV");
@@ -755,18 +823,42 @@ inline std::vector<Target<K_CHILD, V> >
// Cumulus Memory
// valid children for MC
// MC -> MI
+ // MC -> MCC
+ // MC -> OMIC
+ // MC -> OMI
// MC -> DMI
static_assert(!((T_SELF == fapi2::TARGET_TYPE_MC) &&
(K_CHILD != fapi2::TARGET_TYPE_MI) &&
+ (K_CHILD != fapi2::TARGET_TYPE_MCC) &&
+ (K_CHILD != fapi2::TARGET_TYPE_OMIC) &&
+ (K_CHILD != fapi2::TARGET_TYPE_OMI) &&
(K_CHILD != fapi2::TARGET_TYPE_DMI)),
"improper child of fapi2::TARGET_TYPE_MC");
// valid children for MI
+ // MI -> MCC
+ // MI -> OMI
// MI -> DMI
static_assert(!((T_SELF == fapi2::TARGET_TYPE_MI) &&
+ (K_CHILD != fapi2::TARGET_TYPE_MCC) &&
+ (K_CHILD != fapi2::TARGET_TYPE_OMI) &&
(K_CHILD != fapi2::TARGET_TYPE_DMI)),
"improper child of fapi2::TARGET_TYPE_MI");
+ // valid children for MCC
+ // MCC -> OMI
+ static_assert(!((T_SELF == fapi2::TARGET_TYPE_MCC) &&
+ (K_CHILD != fapi2::TARGET_TYPE_OMI)),
+ "improper child of fapi2::TARGET_TYPE_MCC");
+
+ // valid children for OMIC
+ // OMIC -> OMI
+ static_assert(!((T_SELF == fapi2::TARGET_TYPE_OMIC) &&
+ (K_CHILD != fapi2::TARGET_TYPE_OMI)),
+ "improper child of fapi2::TARGET_TYPE_OMIC");
+
+ // TODO RTC:172970 When OCMB is added we need to add getchild support for OMI targets
+
// valid children for DMI
// DMI -> MEMBUF
static_assert(!((T_SELF == fapi2::TARGET_TYPE_DMI) &&
OpenPOWER on IntegriCloud