summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
authorAndrew Geissler <andrewg@us.ibm.com>2018-05-23 15:33:24 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2018-06-12 14:28:33 -0400
commit1c1b2267a25ed3bfe3ccc64183426bd8d42e86d5 (patch)
tree2a51c18acdbda91ca83dbff6811afca9b22f4e84 /src/usr
parent4189613d36cc98d9b52ae72c1bb3727cdb16e34b (diff)
downloadtalos-hostboot-1c1b2267a25ed3bfe3ccc64183426bd8d42e86d5.tar.gz
talos-hostboot-1c1b2267a25ed3bfe3ccc64183426bd8d42e86d5.zip
Make HUID values node-relative
The HUID is composed of multiple pieces: SSSS NNNN TTTTTTTT IIIIIIIIIIIIIII SSSS : System instance NNNN : Node instance TTTTTTTT : Target type IIIIIIIIIIIIIII : Instance number (relative to node contained in) The current code correctly places the node number in the HUID but it uses an instance value relative to the entire system, instead of just the specific node. Targets affected by this change are: - Processors - All chiplets within processors A future change will be made to fix up the memory subsystem Change-Id: I25f0e23832ead80e54ca3960930d83792f3a80aa CQ:SW425239 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/59276 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: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Prachi Gupta <pragupta@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/targeting/common/Targets.pm18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/usr/targeting/common/Targets.pm b/src/usr/targeting/common/Targets.pm
index 2d9d0c78a..ffdabdc41 100644
--- a/src/usr/targeting/common/Targets.pm
+++ b/src/usr/targeting/common/Targets.pm
@@ -831,6 +831,8 @@ sub buildAffinity
my $nodepos = $self->getParentNodePos($target) ;
my $proc_ordinal_id = ($nodepos * $maxInstance{$type}) + $proc;
+ # Ensure processor HUID is node-relative
+ $self->{huid_idx}->{$type} = $proc;
$self->setHuid($target, $sys_pos, $node);
$self->setAttribute($target, "FAPI_NAME", $fapi_name);
$self->setAttribute($target, "PHYS_PATH", $parent_physical);
@@ -1137,15 +1139,21 @@ sub setCommonAttrForChiplet
my $fapi_name = $self->getFapiName($tgt_type, $node, $proc, $pos);
- #unique offset per system
- my $offset = (($node * $maxInstance{"PROC"} + $proc ) * $maxInstance{$tgt_type}) + $pos;
- $self->{huid_idx}->{$tgt_type} = $offset;
+ # Calculate a system wide offset
+ my $sys_offset = (($node * $maxInstance{"PROC"} + $proc ) *
+ $maxInstance{$tgt_type}) + $pos;
+
+ # Calculate a node specific offset
+ my $node_offset = ($proc * $maxInstance{$tgt_type}) + $pos;
+
+ # HUID is node based so use that offset
+ $self->{huid_idx}->{$tgt_type} = $node_offset;
$self->setHuid($target, $sys, $node);
$self->setAttribute($target, "FAPI_NAME", $fapi_name);
$self->setAttribute($target, "PHYS_PATH", $physical_path);
$self->setAttribute($target, "AFFINITY_PATH", $affinity_path);
- $self->setAttribute($target, "ORDINAL_ID", $offset);
- $self->setAttribute($target, "FAPI_POS", $offset);
+ $self->setAttribute($target, "ORDINAL_ID", $sys_offset);
+ $self->setAttribute($target, "FAPI_POS", $sys_offset);
$self->setAttribute($target, "REL_POS", $pos);
my $pervasive_parent= getPervasiveForUnit("$tgt_type$pos");
OpenPOWER on IntegriCloud