diff options
author | Mike Jones <mjjones@us.ibm.com> | 2014-03-13 10:21:03 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-04-02 17:06:52 -0500 |
commit | ec7743b1c59b7e7deae7ec5a2a2c17325c51185e (patch) | |
tree | 0b46043b421eea7e01a6ca9e11c73f73c6677e52 /src/build | |
parent | ee4a0749b5298fab4968ca5884690d75501ca45e (diff) | |
download | talos-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-x | src/build/debug/Hostboot/HwpfAttrOverride.pm | 41 |
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); |