summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2018-08-01 16:04:35 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2018-08-08 16:05:56 -0500
commitf8e8d7c203dcd6ff31459253ba42a3dbe970765e (patch)
treee33dfe5fa1e6c562930d31f53652e89b9c3553d8 /src/usr
parent3cb9eb102386c50d0e7b7b67f64b702097b7eb16 (diff)
downloadtalos-hostboot-f8e8d7c203dcd6ff31459253ba42a3dbe970765e.tar.gz
talos-hostboot-f8e8d7c203dcd6ff31459253ba42a3dbe970765e.zip
Base targeting support for Axone memory complex
Added 3 new target types to start things off. These are the OMI (open-capi memory interface), the OMIC (open-capi memory interface controller), and the MCC (memory channel controller). These new targets will help us represent the new memory complex we are using for axone. The axone memory hiearchy will look like this: MI--MCC / \ Proc--MC < __ OMI--OCMB--MEMPORT--DIMM \ / OMIC **Note that OCMB/MEMPORT have not been implemented in hostboot yet Change-Id: I3df4eb3e279f825f0bdee86448ea23cb975e5511 RTC:172969 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/63744 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> 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> Reviewed-by: ILYA SMIRNOV <ismirno@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Prachi Gupta <pragupta@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/fapi2/plat_attr_override_sync.C9
-rw-r--r--src/usr/fapi2/plat_utils.C43
-rwxr-xr-xsrc/usr/targeting/attroverride/attrTextToBinaryBlob.C3
-rw-r--r--src/usr/targeting/common/entitypath.C7
-rwxr-xr-xsrc/usr/targeting/common/xmltohb/attribute_types.xml17
-rw-r--r--src/usr/targeting/common/xmltohb/target_types.xml137
6 files changed, 198 insertions, 18 deletions
diff --git a/src/usr/fapi2/plat_attr_override_sync.C b/src/usr/fapi2/plat_attr_override_sync.C
index d81589973..8b72b4299 100644
--- a/src/usr/fapi2/plat_attr_override_sync.C
+++ b/src/usr/fapi2/plat_attr_override_sync.C
@@ -207,6 +207,15 @@ void directOverride()
case fapi2::TARGET_TYPE_PHB:
l_targetType = TARGETING::TYPE_PHB;
break;
+ case fapi2::TARGET_TYPE_OMI:
+ l_targetType = TARGETING::TYPE_OMI;
+ break;
+ case fapi2::TARGET_TYPE_OMIC:
+ l_targetType = TARGETING::TYPE_OMIC;
+ break;
+ case fapi2::TARGET_TYPE_MCC:
+ l_targetType = TARGETING::TYPE_MCC;
+ break;
default:
l_targetType = TARGETING::TYPE_NA;
}
diff --git a/src/usr/fapi2/plat_utils.C b/src/usr/fapi2/plat_utils.C
index e340b2d60..cb62eb45e 100644
--- a/src/usr/fapi2/plat_utils.C
+++ b/src/usr/fapi2/plat_utils.C
@@ -680,20 +680,32 @@ void xlateTargetType(const fapi2::TargetType i_targetType,
o_type = TARGETING::TYPE_PERV;
break;
case fapi2::TARGET_TYPE_PEC:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_PEC;
- break;
- case fapi2::TARGET_TYPE_PHB:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_PHB;
- break;
- case fapi2::TARGET_TYPE_MC:
- o_class = TARGETING::CLASS_UNIT;
- o_type = TARGETING::TYPE_MC;
- break;
- default:
- o_class = TARGETING::CLASS_NA;
- o_type = TARGETING::TYPE_NA;
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_PEC;
+ break;
+ case fapi2::TARGET_TYPE_PHB:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_PHB;
+ break;
+ case fapi2::TARGET_TYPE_MC:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_MC;
+ break;
+ case fapi2::TARGET_TYPE_OMI:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_OMI;
+ break;
+ case fapi2::TARGET_TYPE_OMIC:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_OMIC;
+ break;
+ case fapi2::TARGET_TYPE_MCC:
+ o_class = TARGETING::CLASS_UNIT;
+ o_type = TARGETING::TYPE_MCC;
+ break;
+ default:
+ o_class = TARGETING::CLASS_NA;
+ o_type = TARGETING::TYPE_NA;
}
}
@@ -717,6 +729,9 @@ bool isPhysParentChild(const TargetType i_parentType,
TARGET_TYPE_MCA |
TARGET_TYPE_MCBIST |
TARGET_TYPE_MC |
+ TARGET_TYPE_MCC |
+ TARGET_TYPE_OMIC |
+ TARGET_TYPE_OMI |
TARGET_TYPE_MI |
TARGET_TYPE_CAPP |
TARGET_TYPE_DMI |
diff --git a/src/usr/targeting/attroverride/attrTextToBinaryBlob.C b/src/usr/targeting/attroverride/attrTextToBinaryBlob.C
index eb8a923e7..ae0013b90 100755
--- a/src/usr/targeting/attroverride/attrTextToBinaryBlob.C
+++ b/src/usr/targeting/attroverride/attrTextToBinaryBlob.C
@@ -130,6 +130,9 @@ TargStrToType CHIP_UNIT_TYPE_TARG_STR_TO_TYPE [] =
{"mba" , fapi2::TARGET_TYPE_MBA , TARGETING::TYPE_MBA},
{"dmi" , fapi2::TARGET_TYPE_DMI , TARGETING::TYPE_DMI},
{"mi" , fapi2::TARGET_TYPE_MI , TARGETING::TYPE_MI},
+ {"omi" , fapi2::TARGET_TYPE_OMI , TARGETING::TYPE_OMI},
+ {"omic" , fapi2::TARGET_TYPE_OMIC , TARGETING::TYPE_OMIC},
+ {"mcc" , fapi2::TARGET_TYPE_MCC , TARGETING::TYPE_MCC},
{"LAST" , 0 , 0}
};
diff --git a/src/usr/targeting/common/entitypath.C b/src/usr/targeting/common/entitypath.C
index 8123efe5b..95e9ce10c 100644
--- a/src/usr/targeting/common/entitypath.C
+++ b/src/usr/targeting/common/entitypath.C
@@ -471,7 +471,12 @@ const char* EntityPath::pathElementTypeAsString(
return "FANCTLR";
case TYPE_SMPGROUP:
return "SMPGROUP";
-
+ case TYPE_OMI:
+ return "OMI";
+ case TYPE_OMIC:
+ return "OMIC";
+ case TYPE_MCC:
+ return "MCC";
// case TYPE_FSI_LINK:
// return "FSI-link";
// case TYPE_CFAM:
diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml
index 27088ad2a..1bc12de7a 100755
--- a/src/usr/targeting/common/xmltohb/attribute_types.xml
+++ b/src/usr/targeting/common/xmltohb/attribute_types.xml
@@ -5078,9 +5078,21 @@
<value>71</value>
</enumerator>
<enumerator>
- <name>LAST_IN_RANGE</name>
+ <name>OMI</name>
<value>72</value>
</enumerator>
+ <enumerator>
+ <name>MCC</name>
+ <value>73</value>
+ </enumerator>
+ <enumerator>
+ <name>OMIC</name>
+ <value>74</value>
+ </enumerator>
+ <enumerator>
+ <name>LAST_IN_RANGE</name>
+ <value>75</value>
+ </enumerator>
<id>TYPE</id>
</enumerationType>
@@ -5111,6 +5123,9 @@
<name>CUMULUS</name>
</enumerator>
<enumerator>
+ <name>AXONE</name>
+ </enumerator>
+ <enumerator>
<name>CENTAUR</name>
<value>48</value>
</enumerator>
diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
index 2c3024759..a868d5a47 100644
--- a/src/usr/targeting/common/xmltohb/target_types.xml
+++ b/src/usr/targeting/common/xmltohb/target_types.xml
@@ -1512,7 +1512,8 @@
<!-- MC
Nimbus : None
- Cumulus: 2 per chip -->
+ Cumulus: 2 per chip
+ Axone : 2 per chip -->
<targetType>
<id>unit-mc-power9</id>
<parent>unit</parent>
@@ -1541,9 +1542,19 @@
</attribute>
</targetType>
+<targetType>
+ <id>unit-mc-axone</id>
+ <parent>unit-mc-power9</parent>
+ <attribute>
+ <id>MODEL</id>
+ <default>AXONE</default>
+ </attribute>
+</targetType>
+
<!-- MI
Nimbus : None
- Cumulus: total of 4 per chip -->
+ Cumulus: 4 total per chip (2 per MC)
+ Axone : 4 total per chip (2 per MC)-->
<targetType>
<id>unit-mi-power9</id>
<parent>unit</parent>
@@ -1577,6 +1588,89 @@
</attribute>
</targetType>
+<targetType>
+ <id>unit-mi-axone</id>
+ <parent>unit-mi-power9</parent>
+ <attribute>
+ <default>AXONE</default>
+ <id>MODEL</id>
+ </attribute>
+</targetType>
+
+<!-- OMIC
+ Nimbus : None
+ Cumulus: None
+ Axone : 6 total per chip (3 per MC)-->
+<targetType>
+ <id>unit-omic-power9</id>
+ <parent>unit</parent>
+ <attribute>
+ <default>OMIC</default>
+ <id>TYPE</id>
+ </attribute>
+ <attribute>
+ <default>1</default>
+ <id>DECONFIG_GARDABLE</id>
+ </attribute>
+ <attribute>
+ <default>0x00000033</default>
+ <id>HWAS_STATE_CHANGED_SUBSCRIPTION_MASK</id>
+ </attribute>
+ <attribute>
+ <id>PARENT_PERVASIVE</id>
+ </attribute>
+ <attribute>
+ <id>CDM_DOMAIN</id>
+ <default>MEM</default>
+ </attribute>
+</targetType>
+
+<targetType>
+ <id>unit-omic-axone</id>
+ <parent>unit-omic-power9</parent>
+ <attribute>
+ <default>AXONE</default>
+ <id>MODEL</id>
+ </attribute>
+</targetType>
+
+<!-- MCC
+ Nimbus : None
+ Cumulus: None
+ Axone : 8 total per chip (2 per MI) -->
+<targetType>
+ <id>unit-mcc-power9</id>
+ <parent>unit</parent>
+ <attribute>
+ <default>MCC</default>
+ <id>TYPE</id>
+ </attribute>
+ <attribute>
+ <default>1</default>
+ <id>DECONFIG_GARDABLE</id>
+ </attribute>
+ <attribute>
+ <default>0x00000033</default>
+ <id>HWAS_STATE_CHANGED_SUBSCRIPTION_MASK</id>
+ </attribute>
+ <attribute>
+ <id>PARENT_PERVASIVE</id>
+ </attribute>
+ <attribute>
+ <id>CDM_DOMAIN</id>
+ <default>MEM</default>
+ </attribute>
+</targetType>
+
+<targetType>
+ <id>unit-mcc-axone</id>
+ <parent>unit-mcc-power9</parent>
+ <attribute>
+ <default>AXONE</default>
+ <id>MODEL</id>
+ </attribute>
+</targetType>
+
<!-- DMI
Nimbus : None
Cumulus: 2 per MI (total of 8 per chip) -->
@@ -1613,6 +1707,45 @@
</attribute>
</targetType>
+<!-- OMI (Special has two parents)
+ Nimbus : None
+ Cumulus: None
+ Axone: 4 per MI (total of 16 per chip)
+ 3 on OMIC0,1,3,4
+ 2 on OMIC2,5 (still total 16) -->
+<targetType>
+ <id>unit-omi-power9</id>
+ <parent>unit</parent>
+ <attribute>
+ <default>OMI</default>
+ <id>TYPE</id>
+ </attribute>
+ <attribute>
+ <default>1</default>
+ <id>DECONFIG_GARDABLE</id>
+ </attribute>
+ <attribute>
+ <default>0x00000033</default>
+ <id>HWAS_STATE_CHANGED_SUBSCRIPTION_MASK</id>
+ </attribute>
+ <attribute>
+ <id>PARENT_PERVASIVE</id>
+ </attribute>
+ <attribute>
+ <id>CDM_DOMAIN</id>
+ <default>MEM</default>
+ </attribute>
+</targetType>
+
+<targetType>
+ <id>unit-omi-axone</id>
+ <parent>unit-omi-power9</parent>
+ <attribute>
+ <default>AXONE</default>
+ <id>MODEL</id>
+ </attribute>
+</targetType>
+
<!-- PEC corresponds to IOP. Use same PEC target for Nimbus and Cumulus
Nimbus : 3 per chip
Cumulus: 3 per chip -->
OpenPOWER on IntegriCloud