Skip to content

Commit

Permalink
Various targeting fixes for Fleetwood system
Browse files Browse the repository at this point in the history
  -Add chip-fcdimm-ddr4 target for CDIMMs
  -Properly set FSI_OPTIONS flipport
  -Correctly count MI an DMI positions for ATTR overrides
  -Set CDIMM as logical card

Change-Id: Ia8b4e7a8019f2209746c491d87624d1e4ca9c7e5
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/50927
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Reviewed-by: Elizabeth K. Liner <eliner@us.ibm.com>
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>
  • Loading branch information
sannerd authored and dcrowell77 committed Jan 10, 2018
1 parent 1e15041 commit 1233c10
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 6 deletions.
3 changes: 2 additions & 1 deletion src/usr/targeting/common/Targets.pm
Expand Up @@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2015,2017
# Contributors Listed Below - COPYRIGHT 2015,2018
# [+] International Business Machines Corp.
#
#
Expand Down Expand Up @@ -1467,6 +1467,7 @@ sub processMc
my $dimm=$dimms->{DEST_PARENT};
$self->setAttribute($dimm,"MBA_PORT",$port_num);
$self->setAttribute($dimm,"MBA_DIMM",$dimm_num);
$self->setAttribute($dimm,"CLASS","LOGICAL_CARD");

#Centaur/Membufs use CEN_MBA_PORT and not MBA_PORT
#For now, support both.
Expand Down
41 changes: 39 additions & 2 deletions src/usr/targeting/common/processMrw.pl
Expand Up @@ -6,7 +6,7 @@
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2015,2017
# Contributors Listed Below - COPYRIGHT 2015,2018
# [+] International Business Machines Corp.
#
#
Expand Down Expand Up @@ -937,6 +937,7 @@ sub processProcessor
"1");
$targetObj->setAttributeField($target, "SCOM_SWITCHES", "useFsiScom",
"0");
$targetObj->setAttributeField($target, "FSI_OPTION_FLAGS", "flipPort", "1");
}
else
{
Expand Down Expand Up @@ -1399,9 +1400,45 @@ sub processFsi
my $fsi_link = $targetObj->getAttribute($target, "FSI_LINK");
my $fsi_port = $targetObj->getAttribute($target, "FSI_PORT");
my $cmfsi = $targetObj->getAttribute($target, "CMFSI");
my $flip_port = 0;
my $proc_path = $targetObj->getAttribute($parentTarget,"PHYS_PATH");
my $fsi_child_target = $targetObj->getTargetParent($fsi_child_conn);
my $flip_port = 0;
# If this is a proc that can be a master, then we need to set flip_port
# attribute in FSI_OPTIONS. $flip_port tells us which FSI port to expect
# to recieve instructions on. The default setting ( with flip_port not set)
# is to recieve instructions on port A. In High End systems there are 2 master
# capable procs per node, If a processor is master capable then it will expect
# to recieve instructions from FSI port B instaed of A. The master processor
# will recieve from FSP A on the master proc's fsi port B. The alt-master will
# recieve from the master proc on the alt-master's port B.
# Note: On all systems we expect the master to have flip_port set.
# |--------| |--------|
# | FSP A | | FSP B |
# |--------| |--------|
# | |
# |--------| |--------|
# | (b) | | (a) |
# | Master | |Alt Mast|
# | (a)|------->|(b) |
# |--------|\ |--------|
# | \ |
# | \ |
# |--------| \ |---------|
# | (b)| \->|(b) |
# | Slave | | Slave |
# | | | |
# |--------| |---------|
my $fsi_child_type = $targetObj->getType($fsi_child_target);
if ( $fsi_child_type eq "PROC" )
{
my $proc_type = $targetObj->getAttribute($fsi_child_target, "PROC_MASTER_TYPE");
if ($proc_type eq "ACTING_MASTER" || $proc_type eq "MASTER_CANDIDATE" )
{
$flip_port = 1;
}
}
$targetObj->setFsiAttributes($fsi_child_target,
$type,$cmfsi,$proc_path,$fsi_link,$flip_port);
}
Expand Down
6 changes: 3 additions & 3 deletions src/usr/targeting/common/target.C
Expand Up @@ -550,9 +550,7 @@ void Target::getAttrTankTargetPosData(uint16_t & o_pos,
(l_element.type == TYPE_ABUS) ||
(l_element.type == TYPE_EQ) ||
(l_element.type == TYPE_MCBIST) ||
(l_element.type == TYPE_MI) ||
(l_element.type == TYPE_CAPP) ||
(l_element.type == TYPE_DMI) ||
(l_element.type == TYPE_OBUS) ||
(l_element.type == TYPE_OBUS_BRICK) ||
(l_element.type == TYPE_SBE) ||
Expand Down Expand Up @@ -584,7 +582,9 @@ void Target::getAttrTankTargetPosData(uint16_t & o_pos,
else if ((l_element.type == TYPE_EX) ||
(l_element.type == TYPE_CORE) ||
(l_element.type == TYPE_MCS) ||
(l_element.type == TYPE_MCA))
(l_element.type == TYPE_MCA) ||
(l_element.type == TYPE_MI) ||
(l_element.type == TYPE_DMI))
{
//previous o_unitPos was MCBIST/MCS or EQ/EX.
// Multiply by 2 and add in instance number
Expand Down
5 changes: 5 additions & 0 deletions src/usr/targeting/common/xmltohb/target_types.xml
Expand Up @@ -533,6 +533,11 @@
<parent>lcard-dimm</parent>
</targetType>

<targetType>
<id>chip-fcdimm-ddr4</id>
<parent>lcard-dimm-cdimm</parent>
</targetType>

<targetType>
<id>occ</id>
<parent>unit</parent>
Expand Down

0 comments on commit 1233c10

Please sign in to comment.