summaryrefslogtreecommitdiffstats
path: root/src/tools
diff options
context:
space:
mode:
authorspashabk-in <shakeebbk@in.ibm.com>2017-05-31 00:33:53 -0500
committerSachin Gupta <sgupta2m@in.ibm.com>2017-06-02 02:02:35 -0400
commit50c0c6604927ec9a7cb6b47cd8c141467143b782 (patch)
tree8f8cdaab65a5e7d43fb1b30526cf7a7ac1aa96e0 /src/tools
parent0a6c00308918a09b33cdeb39b273c655c382e707 (diff)
downloadtalos-sbe-50c0c6604927ec9a7cb6b47cd8c141467143b782.tar.gz
talos-sbe-50c0c6604927ec9a7cb6b47cd8c141467143b782.zip
Figure out DD level in simics
Command to get ddlevel of sbe - "sbe-ddlevel 0" Rename stack usage tool to "sbe-stack" Change-Id: I504a827b46957673335156dbc100e64709ef041a Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41150 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'src/tools')
-rwxr-xr-xsrc/tools/debug/simics-debug-framework.py38
1 files changed, 28 insertions, 10 deletions
diff --git a/src/tools/debug/simics-debug-framework.py b/src/tools/debug/simics-debug-framework.py
index 186f41d3..dee9984c 100755
--- a/src/tools/debug/simics-debug-framework.py
+++ b/src/tools/debug/simics-debug-framework.py
@@ -39,6 +39,22 @@ def check_sbe_tools_path ():
global SBE_TOOLS_PATH
SBE_TOOLS_PATH = os.environ['SBE_TOOLS_PATH'];
+def get_dd_level(procNr = 0):
+ cmd = "pipe \"p9Proc"+str(procNr)+".sbe.mibo_space.map\" \"cat > temp.map\""
+ ( rc, out ) = quiet_run_command( cmd, output_modes.regular )
+ if ( rc ):
+ print "simics ERROR running %s: %d "%( cmd, rc )
+ ddlevel = 'DD1'
+ with open('temp.map', 'r') as f:
+ map = f.read()
+ map = map.split()
+ if map[map.index('p9Proc0.sbe.fi2c_bo:fi2cfsm')-1] == '0x80000000':
+ ddlevel = "DD1"
+ if map[map.index('p9Proc0.sbe.fi2c_bo:fi2cfsm')-1] == '0xff800000':
+ ddlevel = "DD2"
+ print "running image - ["+ddlevel+"]"
+ return ddlevel
+
def register_sbe_debug_framework_tools():
check_sbe_tools_path ()
fillSymTable()
@@ -55,23 +71,26 @@ def register_sbe_debug_framework_tools():
type = ["sbe-commands"],
short = "Runs the debug framework for trace ",
doc = "")
- new_command("sbe-su", collectStackUsage,
+ new_command("sbe-stack", collectStackUsage,
args = [arg(int_t, "procNr")],
- alias = "susage",
+ alias = "sstack",
type = ["sbe-commands"],
short = "Runs the debug framework for stack usage ",
doc = "")
+ new_command("sbe-ddlevel", get_dd_level,
+ args = [arg(int_t, "procNr")],
+ alias = "sddlevel",
+ type = ["sbe-commands"],
+ short = "Runs the debug framework for dd level ",
+ doc = "")
print "SBE Debug Framework: Registered tool:", "sbe-istep"
print "SBE Debug Framework: Registered tool:", "sbe-trace"
- print "SBE Debug Framework: Registered tool:", "sbe-su"
+ print "SBE Debug Framework: Registered tool:", "sbe-stack"
+ print "SBE Debug Framework: Registered tool:", "sbe-ddlevel"
def fillSymTable():
-# symFile = os.environ['SBE_IMG_OUT_LOC'] + "/sbe.syms"
-# TODO via RTC:168436 - figure out the DD level from simics flag,
-# as of now defaulting to DD1
- symFile = SBE_TOOLS_PATH + "/sbe_DD1.syms"
-# symFile = os.environ['sb'] + "/../obj/ppc/sbei/sbfw/simics/sbe.syms"
+ symFile = SBE_TOOLS_PATH + "/sbe_"+get_dd_level()+".syms"
f = open( symFile, 'r')
for line in f:
words = line.split()
@@ -114,8 +133,7 @@ def collectTrace ( procNr ):
fileName = "sbe_" + `procNr` + "_tracMERG"
cmd1 = "pipe \"p9Proc" + `procNr` + ".sbe.mibo_space.x 0x" + syms['g_pk_trace_buf'][0] + " 0x2028\" \"sed 's/^p:0x........ //g' | sed 's/ ................$//g' | sed 's/ //g' | xxd -r -p> ppetrace.bin\""
cmd2 = "shell \"" + SBE_TOOLS_PATH + "/ppe2fsp ppetrace.bin sbetrace.bin \""
-# TODO via RTC:168436 - figure out the DD level from simics flag, as of now defaulting to DD1
- cmd3 = "shell \"" + "fsp-trace -s " + SBE_TOOLS_PATH + "/sbeStringFile_DD1 sbetrace.bin >" + fileName + "\""
+ cmd3 = "shell \"" + "fsp-trace -s " + SBE_TOOLS_PATH + "/sbeStringFile_"+get_dd_level(procNr)+" sbetrace.bin >" + fileName + "\""
cmd4 = "shell \"" + "cat " + fileName + "\""
( rc, out ) = quiet_run_command( cmd1, output_modes.regular )
OpenPOWER on IntegriCloud