diff options
author | Mike Jones <mjjones@us.ibm.com> | 2013-09-26 14:23:00 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-10-03 11:36:01 -0500 |
commit | ae03dc12f7eada2ff3766c3f8f3a3e761d1e8dbe (patch) | |
tree | 3af802a87bdaab77b8c0c55db318b64cd12d5e41 /src/build | |
parent | 6c2c08f207bcc9b31de885d57b0fba95fa13b939 (diff) | |
download | talos-hostboot-ae03dc12f7eada2ff3766c3f8f3a3e761d1e8dbe.tar.gz talos-hostboot-ae03dc12f7eada2ff3766c3f8f3a3e761d1e8dbe.zip |
Allow Hostboot Debug tools that do unaligned writes to work on Cronus
The ecmd debug framework support uses cipputmempba to write to Hostboot memory,
this was changed some time ago to disallow non cache-line aligned writes. But
some tools (e.g. HwpfAttrOverride) do unaligned writes and they therefore fail.
Also any tool that calls a Hostboot function using CallFunc will fail because
that also does unaligned writes. The emcd team changed cipputmempba to do a
read-modify-write for unaligned writes if the inj mode is specified. Also a
small fix to HwpfAttrOverride here, it was interpreting a decimal value (the
attribute id) as hex which must be due to something changing because this
used to work.
Change-Id: I6535340e41d802489070bc6cffff85b9e33337db
RTC: 70350
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/6362
Reviewed-by: Donald E. Dahle <dedahle@us.ibm.com>
Reviewed-by: Brian H. Horton <brianh@linux.ibm.com>
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/build')
-rwxr-xr-x | src/build/debug/Hostboot/HwpfAttrOverride.pm | 2 | ||||
-rwxr-xr-x | src/build/debug/ecmd-debug-framework.pl | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/build/debug/Hostboot/HwpfAttrOverride.pm b/src/build/debug/Hostboot/HwpfAttrOverride.pm index 7ab2f25d3..daff19f5b 100755 --- a/src/build/debug/Hostboot/HwpfAttrOverride.pm +++ b/src/build/debug/Hostboot/HwpfAttrOverride.pm @@ -629,7 +629,7 @@ sub main # uint32_t iv_valSize; // Size of the attribute value in bytes # }; my $addr = $overrideHeaderAddr; - ::write32($addr, hex $attrIdVal); + ::write32($addr, $attrIdVal); $addr += 4; ::write32($addr, $targType); $addr += 4; diff --git a/src/build/debug/ecmd-debug-framework.pl b/src/build/debug/ecmd-debug-framework.pl index 1981d3fee..e02081eba 100755 --- a/src/build/debug/ecmd-debug-framework.pl +++ b/src/build/debug/ecmd-debug-framework.pl @@ -201,7 +201,7 @@ sub writeData print $file $value; close $file; - my $command = sprintf("cipputmempba -cft -fb %s %x -quiet > %s", + my $command = sprintf("cipputmempba -cft -fb %s %x -quiet -mode inj > %s", $filename, $addr, $debugfile); |