diff options
author | Andrew Geissler <andrewg@us.ibm.com> | 2018-05-23 15:33:24 -0500 |
---|---|---|
committer | William G. Hoffa <wghoffa@us.ibm.com> | 2018-06-12 14:28:33 -0400 |
commit | 1c1b2267a25ed3bfe3ccc64183426bd8d42e86d5 (patch) | |
tree | 2a51c18acdbda91ca83dbff6811afca9b22f4e84 /src/usr | |
parent | 4189613d36cc98d9b52ae72c1bb3727cdb16e34b (diff) | |
download | talos-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.pm | 18 |
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"); |