diff options
author | Christian Geddes <crgeddes@us.ibm.com> | 2018-04-24 14:20:43 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-05-04 17:32:33 -0400 |
commit | 1cc7a88e11df1f6a07dabd70bc6acac421c951c2 (patch) | |
tree | 97602fd76cbec4341685b92090addd5c08aa970c | |
parent | 43c4502d3b0b87020665a65ad2843e0ddc319063 (diff) | |
download | talos-hostboot-1cc7a88e11df1f6a07dabd70bc6acac421c951c2.tar.gz talos-hostboot-1cc7a88e11df1f6a07dabd70bc6acac421c951c2.zip |
Add PEER_PATH attribute to xbus and obus targets
Currently there is a bug where PRD will attempt to handle a OBUS
fir before the OBUS's peer target is known to hostboot. During IPL
the OBUS's peer target is not known because each hostboot instance
only knows about its own node. In order to get around this we will
save the OBUS's peer target's path in the attribute PEER_PATH so
later during HBRT when we know about other nodes we can correctly
set the OBUS's PEER_TARGET attribute with the correct value.
Change-Id: I24733733c14442f1d5124a0489a28263e05014c3
CQ: SW425530
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/57769
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-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>
Reviewed-by: Roland Veloz <rveloz@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
8 files changed, 117 insertions, 21 deletions
diff --git a/src/usr/targeting/common/genHwsvMrwXml.pl b/src/usr/targeting/common/genHwsvMrwXml.pl index 7ae1f9372..ee2bcb35e 100755 --- a/src/usr/targeting/common/genHwsvMrwXml.pl +++ b/src/usr/targeting/common/genHwsvMrwXml.pl @@ -5223,6 +5223,10 @@ sub generate_xbus <id>PEER_TARGET</id> <default>$peerPhysPath</default> </attribute> + <attribute> + <id>PEER_PATH</id> + <default>$peerPhysPath</default> + </attribute> <compileAttribute> <id>PEER_HUID</id> <default>${peerHuid}</default> diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl index 90d2e554c..39948bb3b 100755 --- a/src/usr/targeting/common/processMrw.pl +++ b/src/usr/targeting/common/processMrw.pl @@ -1497,7 +1497,7 @@ sub processXbus my $xbus_child_conn = $targetObj->getFirstConnectionDestination($target); if ($xbus_child_conn ne "") { - # The CONFIG_APPLY bus attribute carries a comma seperated values for each + # The CONFIG_APPLY bus attribute carries a comma seperated values for each # X-bus connection. It can currently take the following values. # "w" - This connection is applicable only in wrap config # "d" - This connection is applicable in default config (non-wrap mode). @@ -1521,6 +1521,11 @@ sub processXbus $targetObj->setAttribute($target, "PEER_TARGET", $targetObj->getAttribute($xbus_child_conn, "PHYS_PATH")); + $targetObj->setAttribute($xbus_child_conn, "PEER_PATH", + $targetObj->getAttribute($target, "PHYS_PATH")); + $targetObj->setAttribute($target, "PEER_PATH", + $targetObj->getAttribute($xbus_child_conn, "PHYS_PATH")); + $targetObj->setAttribute($xbus_child_conn, "PEER_HUID", $targetObj->getAttribute($target, "HUID")); $targetObj->setAttribute($target, "PEER_HUID", @@ -1532,6 +1537,8 @@ sub processXbus { $targetObj->setAttribute($xbus_child_conn, "PEER_TARGET", "NULL"); $targetObj->setAttribute($target, "PEER_TARGET","NULL"); + $targetObj->setAttribute($xbus_child_conn, "PEER_PATH", "physical:na"); + $targetObj->setAttribute($target, "PEER_PATH", "physical:na"); } } @@ -1561,8 +1568,8 @@ sub processAbus my $fournode = "4"; my @configs = split(',',$config); - # The CONFIG_APPLY bus attribute carries a comma seperated values for each - # A-bus connection. For eg., + # The CONFIG_APPLY bus attribute carries a comma seperated values for each + # A-bus connection. For eg., # "2,3,4" - This connection is applicable in 2,3 and 4 node config # "w" - This connection is applicable only in wrap config # "2" - This connection is applicable only in 2 node config @@ -1604,40 +1611,40 @@ sub processAbus ## set attributes for both directions my $phys1 = $targetObj->getAttribute($target, "PHYS_PATH"); my $phys2 = $targetObj->getAttribute($abus_dest_parent, "PHYS_PATH"); - + $targetObj->setAttribute($abus_dest_parent, "PEER_TARGET",$phys1); $targetObj->setAttribute($target, "PEER_TARGET",$phys2); $targetObj->setAttribute($abus_dest_parent, "PEER_PATH", $phys1); $targetObj->setAttribute($target, "PEER_PATH", $phys2); - + $targetObj->setAttribute($abus_dest_parent, "PEER_HUID", $targetObj->getAttribute($target, "HUID")); $targetObj->setAttribute($target, "PEER_HUID", $targetObj->getAttribute($abus_dest_parent, "HUID")); - + $targetObj->setAttribute($abussource, "PEER_TARGET", $targetObj->getAttribute($abusdest, "PHYS_PATH")); $targetObj->setAttribute($abusdest, "PEER_TARGET", $targetObj->getAttribute($abussource, "PHYS_PATH")); - + $targetObj->setAttribute($abussource, "PEER_PATH", $targetObj->getAttribute($abusdest, "PHYS_PATH")); $targetObj->setAttribute($abusdest, "PEER_PATH", $targetObj->getAttribute($abussource, "PHYS_PATH")); - + $targetObj->setAttribute($abussource, "PEER_HUID", $targetObj->getAttribute($abusdest, "HUID")); $targetObj->setAttribute($abusdest, "PEER_HUID", $targetObj->getAttribute($abussource, "HUID")); - + # copy Abus attributes from the connection to the chiplet my $abus = $targetObj->getFirstConnectionBus($target); - + $targetObj->setAttribute($target, "EI_BUS_TX_MSBSWAP", $abus->{bus_attribute}->{SOURCE_TX_MSBSWAP}->{default}); $targetObj->setAttribute($abus_dest_parent, "EI_BUS_TX_MSBSWAP", $abus->{bus_attribute}->{DEST_TX_MSBSWAP}->{default}); - + # copy attributes for wrap config my $link_set = "SET_NONE"; if ($targetObj->isBusAttributeDefined($aBus->{SOURCE},$aBus->{BUS_NUM},"MFG_WRAP_TEST_ABUS_LINKS_SET")) diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml index da2244f39..c7444306a 100755 --- a/src/usr/targeting/common/xmltohb/attribute_types.xml +++ b/src/usr/targeting/common/xmltohb/attribute_types.xml @@ -2478,11 +2478,12 @@ </attribute> <attribute> - <description>Entity path of the peer target of an Abus + <description>Entity path of the peer target of a bus target </description> <id>PEER_PATH</id> <nativeType> <name>EntityPath</name> + <default>physical:na</default> </nativeType> <persistency>non-volatile</persistency> <readable></readable> diff --git a/src/usr/targeting/common/xmltohb/simics_CUMULUS.system.xml b/src/usr/targeting/common/xmltohb/simics_CUMULUS.system.xml index 68a5f6a3c..6912dd62e 100644 --- a/src/usr/targeting/common/xmltohb/simics_CUMULUS.system.xml +++ b/src/usr/targeting/common/xmltohb/simics_CUMULUS.system.xml @@ -6573,7 +6573,10 @@ <id>AFFINITY_PATH</id> <default>affinity:sys-0/node-0/proc-0/obus-0</default> </attribute> - + <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> <attribute> <id>CDM_DOMAIN</id> <default>FABRIC</default> @@ -6651,7 +6654,10 @@ <id>AFFINITY_PATH</id> <default>affinity:sys-0/node-0/proc-0/obus-1</default> </attribute> - + <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> <attribute> <id>CDM_DOMAIN</id> <default>FABRIC</default> @@ -6729,7 +6735,10 @@ <id>AFFINITY_PATH</id> <default>affinity:sys-0/node-0/proc-0/obus-2</default> </attribute> - + <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> <attribute> <id>CDM_DOMAIN</id> <default>FABRIC</default> @@ -6807,7 +6816,10 @@ <id>AFFINITY_PATH</id> <default>affinity:sys-0/node-0/proc-0/obus-3</default> </attribute> - + <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> <attribute> <id>CDM_DOMAIN</id> <default>FABRIC</default> @@ -13416,6 +13428,10 @@ <default>NULL</default> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> + <attribute> <id>PHYS_PATH</id> <default>physical:sys-0/node-0/proc-0/xbus-0</default> </attribute> @@ -13506,6 +13522,10 @@ <default>NULL</default> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> + <attribute> <id>PHYS_PATH</id> <default>physical:sys-0/node-0/proc-0/xbus-1</default> </attribute> @@ -13596,6 +13616,10 @@ <default>NULL</default> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> + <attribute> <id>PHYS_PATH</id> <default>physical:sys-0/node-0/proc-0/xbus-2</default> </attribute> diff --git a/src/usr/targeting/common/xmltohb/simics_CUMULUS_CDIMM.system.xml b/src/usr/targeting/common/xmltohb/simics_CUMULUS_CDIMM.system.xml index acd0d6d62..1d050fe72 100644 --- a/src/usr/targeting/common/xmltohb/simics_CUMULUS_CDIMM.system.xml +++ b/src/usr/targeting/common/xmltohb/simics_CUMULUS_CDIMM.system.xml @@ -6598,7 +6598,10 @@ </attribute> - + <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> @@ -6649,7 +6652,10 @@ <id>CDM_DOMAIN</id> <default>FABRIC</default> </attribute> - + <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> <attribute> <id>CHIP_UNIT</id> <default>1</default> @@ -6727,7 +6733,10 @@ <id>CDM_DOMAIN</id> <default>FABRIC</default> </attribute> - + <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> <attribute> <id>CHIP_UNIT</id> <default>2</default> @@ -6805,7 +6814,10 @@ <id>CDM_DOMAIN</id> <default>FABRIC</default> </attribute> - + <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> <attribute> <id>CHIP_UNIT</id> <default>3</default> diff --git a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml index b38ffa5bb..afc3b2f80 100644 --- a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml +++ b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml @@ -3124,6 +3124,10 @@ <default>affinity:sys-0/node-0/proc-0/obus-0</default> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> + <attribute> <id>FAPI_POS</id> <default>0</default> </attribute> @@ -3177,6 +3181,10 @@ <default>0x0C</default> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> + <attribute> <id>PARENT_PERVASIVE</id> <default>physical:sys-0/node-0/proc-0/perv-12</default> </attribute> @@ -5115,6 +5123,10 @@ <default>physical:sys-0/node-0/proc-1/xbus-1</default> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:sys-0/node-0/proc-1/xbus-1</default> + </attribute> + <attribute> <id>PARENT_PERVASIVE</id> <default>physical:sys-0/node-0/proc-0/perv-6</default> </attribute> @@ -5156,6 +5168,10 @@ <default>physical:sys-0/node-0/proc-1/xbus-1</default> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:sys-0/node-0/proc-1/xbus-1</default> + </attribute> + <attribute> <id>PARENT_PERVASIVE</id> <default>physical:sys-0/node-0/proc-0/perv-6</default> </attribute> @@ -8496,6 +8512,10 @@ <default>physical:sys-0/node-0/proc-0/xbus-1</default> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:sys-0/node-0/proc-0/xbus-1</default> + </attribute> + <attribute> <id>PARENT_PERVASIVE</id> <default>physical:sys-0/node-0/proc-1/perv-6</default> </attribute> @@ -8541,6 +8561,10 @@ <default>physical:sys-0/node-0/proc-0/xbus-1</default> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:sys-0/node-0/proc-0/xbus-1</default> + </attribute> + <attribute> <id>PARENT_PERVASIVE</id> <default>physical:sys-0/node-0/proc-1/perv-6</default> </attribute> diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml index b187a4a79..5763b6ba0 100644 --- a/src/usr/targeting/common/xmltohb/target_types.xml +++ b/src/usr/targeting/common/xmltohb/target_types.xml @@ -1714,6 +1714,10 @@ <id>PEER_TARGET</id> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> + <attribute> <default>FABRIC</default> <id>CDM_DOMAIN</id> </attribute> @@ -1794,7 +1798,7 @@ <attribute><id>DECONFIG_GARDABLE</id><default>0</default></attribute> <attribute><id>HUID</id></attribute> <attribute><id>HWAS_STATE_CHANGED_SUBSCRIPTION_MASK</id> - <default>0</default> + <default>0</default> </attribute> </targetType> @@ -1924,6 +1928,10 @@ <id>PEER_TARGET</id> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:na</default> + </attribute> + <attribute> <default>FABRIC</default> <id>CDM_DOMAIN</id> </attribute> diff --git a/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml b/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml index c46e00cf8..a011a2434 100644 --- a/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml +++ b/src/usr/targeting/common/xmltohb/vbu_NIMBUS.system.xml @@ -5042,6 +5042,10 @@ <default>physical:sys-0/node-0/proc-1/xbus-1</default> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:sys-0/node-0/proc-1/xbus-1</default> + </attribute> + <attribute> <id>PARENT_PERVASIVE</id> <default>physical:sys-0/node-0/proc-0/perv-6</default> </attribute> @@ -5083,6 +5087,10 @@ <default>physical:sys-0/node-0/proc-1/xbus-1</default> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:sys-0/node-0/proc-1/xbus-1</default> + </attribute> + <attribute> <id>PARENT_PERVASIVE</id> <default>physical:sys-0/node-0/proc-0/perv-6</default> </attribute> @@ -8366,6 +8374,10 @@ <default>physical:sys-0/node-0/proc-0/xbus-1</default> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:sys-0/node-0/proc-0/xbus-1</default> + </attribute> + <attribute> <id>PARENT_PERVASIVE</id> <default>physical:sys-0/node-0/proc-1/perv-6</default> </attribute> @@ -8411,6 +8423,10 @@ <default>physical:sys-0/node-0/proc-0/xbus-1</default> </attribute> <attribute> + <id>PEER_PATH</id> + <default>physical:sys-0/node-0/proc-0/xbus-1</default> + </attribute> + <attribute> <id>PARENT_PERVASIVE</id> <default>physical:sys-0/node-0/proc-1/perv-6</default> </attribute> |