summaryrefslogtreecommitdiffstats
path: root/src/build
diff options
context:
space:
mode:
authorMike Jones <mjjones@us.ibm.com>2014-03-13 10:21:03 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-04-02 17:06:52 -0500
commitec7743b1c59b7e7deae7ec5a2a2c17325c51185e (patch)
tree0b46043b421eea7e01a6ca9e11c73f73c6677e52 /src/build
parentee4a0749b5298fab4968ca5884690d75501ca45e (diff)
downloadtalos-hostboot-ec7743b1c59b7e7deae7ec5a2a2c17325c51185e.tar.gz
talos-hostboot-ec7743b1c59b7e7deae7ec5a2a2c17325c51185e.zip
Updates to Attribute Override for multi drawer systems
The Node field in an attribute override text file is now picked up. Checking and clearing attribute overrides now takes into account the node. Communication of attribute overrides between Hostboot and HWSV now takes into account the node. There is a follow-on HWSV change, but this change needs to go in first and there are no pre/co-reqs Change-Id: I6537652d2632cc22583a59567795c47304cf4876 RTC: 63163 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/9598 Tested-by: Jenkins Server Reviewed-by: STEPHEN M. CPREK <smcprek@us.ibm.com> Reviewed-by: William H. Schwartz <whs@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/build')
-rwxr-xr-xsrc/build/debug/Hostboot/HwpfAttrOverride.pm41
1 files changed, 31 insertions, 10 deletions
diff --git a/src/build/debug/Hostboot/HwpfAttrOverride.pm b/src/build/debug/Hostboot/HwpfAttrOverride.pm
index af6ac0bee..b1d9c83f5 100755
--- a/src/build/debug/Hostboot/HwpfAttrOverride.pm
+++ b/src/build/debug/Hostboot/HwpfAttrOverride.pm
@@ -6,7 +6,7 @@
#
# IBM CONFIDENTIAL
#
-# COPYRIGHT International Business Machines Corp. 2012,2013
+# COPYRIGHT International Business Machines Corp. 2012,2014
#
# p1
#
@@ -55,6 +55,7 @@ use constant TARGET_TYPE_ABUS_ENDPOINT => 0x00000100;
# From attributeTank.H
use constant ATTR_POS_NA => 0xffff;
use constant ATTR_UNIT_POS_NA => 0xff;
+use constant ATTR_NODE_NA => 0xf;
use constant ATTR_FLAG_CONST => 1;
# From fapiPlatAttrOverrideSync.C
@@ -277,7 +278,7 @@ sub main
{
chomp($line);
- if ($line =~ /^target = /)
+ if ($line =~ /^target/)
{
if ($attrString eq "")
{
@@ -536,15 +537,26 @@ sub main
} # end of processing all lines making up a single attr override
#------------------------------------------------------------------
- # Figure out the Target type/pos/unitpos
+ # Figure out the Target node/type/pos/unitpos
#------------------------------------------------------------------
my $targType = TARGET_TYPE_SYSTEM;
my $targPos = ATTR_POS_NA;
my $targUnitPos = ATTR_UNIT_POS_NA;
-
- # Figure out the target type
+ my $targNode = ATTR_NODE_NA;
my $targ = $targLine;
+ # Figure out the node number
+ if ($targ =~ /target = k0:n0:s0:?\s*$/)
+ {
+ # String representing system target
+ $targNode = ATTR_NODE_NA;
+ }
+ elsif ($targ =~ /target = k0:n(\d+)/)
+ {
+ $targNode = $1;
+ }
+
+ # Figure out the target type
if ($targ =~ /p8.ex/)
{
$targType = TARGET_TYPE_EX_CHIPLET;
@@ -609,9 +621,17 @@ sub main
# Debug output
if ($debug)
{
- ::userDisplay "OVERRIDE. ID: $attrIdVal. ";
- ::userDisplay "Targ: $targType.$targPos.$targUnitPos. ";
- ::userDisplay "Flags: $flags\n";
+ if ($fapiTank)
+ {
+ ::userDisplay "FAPI OVERRIDE.";
+ }
+ else
+ {
+ ::userDisplay "TARG OVERRIDE.";
+ }
+ ::userDisplay "ID: $attrIdVal, Node: $targNode,";
+ ::userDisplay "TargType: $targType, Pos: $targPos,";
+ ::userDisplay "UPos: $targUnitPos, Flags: $flags\n";
}
#------------------------------------------------------------------
@@ -625,7 +645,8 @@ sub main
# uint16_t iv_pos; // For chips/dimms the position
# // For chiplets the parent chip position
# uint8_t iv_unitPos; // For chiplets the position
- # uint8_t iv_flags; // AttributeFlags enum value(s)
+ # uint8_t iv_node : 4; // Target Node number
+ # uint8_t iv_flags : 4; // AttributeFlags enum value(s)
# uint32_t iv_valSize; // Size of the attribute value in bytes
# };
my $addr = $overrideHeaderAddr;
@@ -637,7 +658,7 @@ sub main
$addr += 2;
::write8($addr, $targUnitPos);
$addr += 1;
- ::write8($addr, $flags);
+ ::write8($addr, (($targNode << 4) + $flags));
$addr += 1;
::write32($addr, $valSize);
OpenPOWER on IntegriCloud