From ae03dc12f7eada2ff3766c3f8f3a3e761d1e8dbe Mon Sep 17 00:00:00 2001 From: Mike Jones Date: Thu, 26 Sep 2013 14:23:00 -0500 Subject: 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 Reviewed-by: Brian H. Horton Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III --- src/build/debug/Hostboot/HwpfAttrOverride.pm | 2 +- src/build/debug/ecmd-debug-framework.pl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/build') 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); -- cgit v1.2.1