From 74ca835c212ecf6df1b671d18e92887f76817a48 Mon Sep 17 00:00:00 2001 From: Marty Gloff Date: Mon, 5 Jun 2017 11:48:27 -0500 Subject: Fix tracing for Bootloader hangs if it can't find first TOC Limit how many traces are done by recovery loop that walks back through PNOR to find a valid TOC. Use page aligned MMIO addresses. Change-Id: Icdd41fe36fc597769af57d54049c3e457b790594 RTC: 175243 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41398 Tested-by: Jenkins Server Tested-by: FSP CI Jenkins Tested-by: Jenkins OP Build CI Reviewed-by: Matt Derksen Reviewed-by: Corey V. Swenson Reviewed-by: Daniel M. Crowell --- src/build/debug/Hostboot/BlData.pm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'src/build') diff --git a/src/build/debug/Hostboot/BlData.pm b/src/build/debug/Hostboot/BlData.pm index 91d2f89d3..4cd80a7b9 100644 --- a/src/build/debug/Hostboot/BlData.pm +++ b/src/build/debug/Hostboot/BlData.pm @@ -104,6 +104,42 @@ sub main ::userDisplay "\n\n--------------------------------------------\n"; + my $savedAddr = $dataAddr + 66; + my $savedAddrStr = sprintf("0x%08X", $savedAddr); + my $saved = ::read8($savedAddr); + my $savedStr = sprintf("0x%02X", $saved); + + ::userDisplay "\nSaved Trace Index Address: "; + ::userDisplay $savedAddrStr; + ::userDisplay "\n\nSaved Trace Index: "; + ::userDisplay $savedStr; + ::userDisplay "\n\n--------------------------------------------\n"; + + + my $loopCntAddr = $dataAddr + 68; + my $loopCntAddrStr = sprintf("0x%08X", $loopCntAddr); + my $loopCnt = ::read32($loopCntAddr); + my $loopCntStr = sprintf("0x%08X", $loopCnt); + + ::userDisplay "\nPNOR Loop Counter Address: "; + ::userDisplay $loopCntAddrStr; + ::userDisplay "\n\nPNOR Loop Counter: "; + ::userDisplay $loopCntStr; + ::userDisplay "\n\n--------------------------------------------\n"; + + + my $pnorMmioAddr = $dataAddr + 72; + my $pnorMmioAddrStr = sprintf("0x%08X", $pnorMmioAddr); + my $pnorMmio = ::read64($pnorMmioAddr); + my $pnorMmioStr = sprintf("0x%016llX", $pnorMmio); + + ::userDisplay "\nFirst PNOR MMIO Address: "; + ::userDisplay $pnorMmioAddrStr; + ::userDisplay "\n\nFirst PNOR MMIO: "; + ::userDisplay $pnorMmioStr; + ::userDisplay "\n\n--------------------------------------------\n"; + + my $tiDataAreaAddr = $dataAddr + 80; my $tiDataAreaAddrStr = sprintf("0x%08X", $tiDataAreaAddr); ::sendIPCMsg("read-data", "$tiDataAreaAddr,48"); # TI Data Area is 48 bytes -- cgit v1.2.1