diff options
author | Marty Gloff <mgloff@us.ibm.com> | 2017-05-26 14:55:13 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-06-19 09:48:10 -0400 |
commit | 32fb239ad902a4df0dc715996de42830a98307b0 (patch) | |
tree | 43ef69f53d613a9cdcf4083e75fcff9c9dd850d7 /src/build/debug/Hostboot | |
parent | 8702e5d3e8832111abf44dd2ea16f24312fd773f (diff) | |
download | talos-hostboot-32fb239ad902a4df0dc715996de42830a98307b0.tar.gz talos-hostboot-32fb239ad902a4df0dc715996de42830a98307b0.zip |
Update Bootloader debug scripts to run in other environments
Bootloader debug scripts run in the Simics environment. They are
being updated to run in hardware environments.
Change-Id: I7bf2367ff59c2dda920cf1df922cb647f20e86f0
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41067
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/build/debug/Hostboot')
-rw-r--r-- | src/build/debug/Hostboot/BlData.pm | 43 | ||||
-rw-r--r-- | src/build/debug/Hostboot/BlTrace.pm | 16 |
2 files changed, 32 insertions, 27 deletions
diff --git a/src/build/debug/Hostboot/BlData.pm b/src/build/debug/Hostboot/BlData.pm index 4cd80a7b9..83e6e2866 100644 --- a/src/build/debug/Hostboot/BlData.pm +++ b/src/build/debug/Hostboot/BlData.pm @@ -29,6 +29,7 @@ package Hostboot::BlData; use Exporter; our @EXPORT_OK = ('main'); +# Format data into 4-byte segments and 16-byte lines for display sub formatData { my $data = shift; @@ -56,31 +57,37 @@ sub main { ::setBootloader(); - my $btLdrHrmor = 0x0000000008200000; + my $btLdrHrmorOffset = 0x0000000000200000; my ($dataSym, $dataSize) = ::findSymbolAddress("Bootloader::g_blData"); if (not defined $dataSym) { ::userDisplay "Cannot find symbol.\n"; die; } my $dataSymStr = sprintf("0x%08X", $dataSym); + my $dataAddr = ::read64($dataSym|$btLdrHrmorOffset); + my $dataAddrStr = sprintf("0x%016llX", $dataAddr); ::userDisplay "------------Bootloader Data------------"; ::userDisplay "\nData Symbol Address: "; ::userDisplay $dataSymStr; + ::userDisplay "\nData Address: "; + ::userDisplay $dataAddrStr; my ($scratchSym, $scratchSize) = ::findSymbolAddress("Bootloader::g_blScratchSpace"); if (not defined $scratchSym) { ::userDisplay "Cannot find symbol.\n"; die; } my $scratchSymStr = sprintf("0x%08X", $scratchSym); + my $scratchAddr = ::read64($scratchSym|$btLdrHrmorOffset); + my $scratchAddrStr = sprintf("0x%016llX", $scratchAddr); - ::userDisplay "\nScratch Space Symbol Address: "; + ::userDisplay "\n\nScratch Space Symbol Address: "; ::userDisplay $scratchSymStr; + ::userDisplay "\nScratch Space Address: "; + ::userDisplay $scratchAddrStr; ::userDisplay "\n--------------------------------------------\n"; - my $dataAddr = 0x0000000008208000; - my $traceAddr = $dataAddr; my $traceAddrStr = sprintf("0x%08X", $traceAddr); - ::sendIPCMsg("read-data", "$traceAddr,64"); # Trace buffer is 64 bytes - my ($type1, $trace) = ::recvIPCMsg(); + my $traceSize = 64; + my $trace = ::readData($traceAddr,$traceSize); my $traceData = formatData($trace); ::userDisplay "\nTrace Buffer Address: "; @@ -92,10 +99,8 @@ sub main my $indexAddr = $dataAddr + 64; my $indexAddrStr = sprintf("0x%08X", $indexAddr); - ::sendIPCMsg("read-data", "$indexAddr,1"); # Trace index is 1 byte - my ($type2, $index) = ::recvIPCMsg(); - $index =~ s/\0+//g; #strip off nulls - my $indexStr = sprintf("0x%02X", ord($index)); + my $index = ::read8($indexAddr); + my $indexStr = sprintf("0x%02X", $index); ::userDisplay "\nTrace Index Address: "; ::userDisplay $indexAddrStr; @@ -142,8 +147,8 @@ sub main my $tiDataAreaAddr = $dataAddr + 80; my $tiDataAreaAddrStr = sprintf("0x%08X", $tiDataAreaAddr); - ::sendIPCMsg("read-data", "$tiDataAreaAddr,48"); # TI Data Area is 48 bytes - my ($type6, $tiDataArea) = ::recvIPCMsg(); + my $tiDataAreaSize = 48; + my $tiDataArea = ::readData($tiDataAreaAddr,$tiDataAreaSize); my $tiDataAreaData = formatData($tiDataArea); ::userDisplay "\nTI Data Area Address: "; @@ -155,8 +160,8 @@ sub main my $hbbPnorSecAddr = $dataAddr + 128; my $hbbPnorSecAddrStr = sprintf("0x%08X", $hbbPnorSecAddr); - ::sendIPCMsg("read-data", "$hbbPnorSecAddr,32"); # Section data is 32 bytes - my ($type5, $hbbPnorSec) = ::recvIPCMsg(); + my $hbbPnorSecSize = 32; + my $hbbPnorSec = ::readData($hbbPnorSecAddr,$hbbPnorSecSize); my $hbbPnorSecData = formatData($hbbPnorSec); ::userDisplay "\nHBB PNOR Section Data Address: "; @@ -168,10 +173,8 @@ sub main my $secRomValAddr = $dataAddr + 160; my $secRomValAddrStr = sprintf("0x%08X", $secRomValAddr); - ::sendIPCMsg("read-data", "$secRomValAddr,1"); # Secure ROM Valid is 1 byte - my ($type4, $secRomVal) = ::recvIPCMsg(); - $secRomVal =~ s/\0+//g; #strip off nulls - my $secRomValStr = sprintf("0x%02X", ord($secRomVal)); + my $secRomVal = ::read8($secRomValAddr); + my $secRomValStr = sprintf("0x%02X", $secRomVal); ::userDisplay "\nSecure ROM Valid Address: "; ::userDisplay $secRomValAddrStr; @@ -182,8 +185,8 @@ sub main my $blToHbAddr = $dataAddr + 176; my $blToHbAddrStr = sprintf("0x%08X", $blToHbAddr); - ::sendIPCMsg("read-data", "$blToHbAddr,89"); # BL to HB data is 89 bytes - my ($type3, $blToHb) = ::recvIPCMsg(); + my $blToHbSize = 89; + my $blToHb = ::readData($blToHbAddr,$blToHbSize); my $blToHbData = formatData($blToHb); ::userDisplay "\nBL to HB Data Address: "; diff --git a/src/build/debug/Hostboot/BlTrace.pm b/src/build/debug/Hostboot/BlTrace.pm index 57890d868..27a5e6aa6 100644 --- a/src/build/debug/Hostboot/BlTrace.pm +++ b/src/build/debug/Hostboot/BlTrace.pm @@ -129,13 +129,15 @@ sub main { ::setBootloader(); - my $dataAddr = 0x0000000008208000; + my $btLdrHrmorOffset = 0x0000000000200000; + + my ($dataSym, $dataSize) = ::findSymbolAddress("Bootloader::g_blData"); + if (not defined $dataSym) { ::userDisplay "Cannot find symbol.\n"; die; } + my $dataAddr = ::read64($dataSym|$btLdrHrmorOffset); my $indexAddr = $dataAddr + 64; - ::sendIPCMsg("read-data", "$indexAddr,1"); # Trace index is 1 byte - my ($type1, $index) = ::recvIPCMsg(); - $index =~ s/\0+//g; #strip off nulls - my $indexStr = sprintf("0x%02X", ord($index)); + my $index = ::read8($indexAddr); + my $indexStr = sprintf("0x%02X", $index); ::userDisplay "\n------------Bootloader Trace------------"; ::userDisplay "\nNext Entry Index: "; @@ -143,8 +145,8 @@ sub main my $traceAddr = $dataAddr; my $traceAddrStr = sprintf("0x%08X", $traceAddr); - ::sendIPCMsg("read-data", "$traceAddr,64"); # Trace buffer is 64 bytes - my ($type2, $trace) = ::recvIPCMsg(); + my $traceSize = 64; + my $trace = ::readData($traceAddr,$traceSize); $trace =~ s/\0+//g; #strip off nulls my $traceData = formatTrace($trace); |