summaryrefslogtreecommitdiffstats
path: root/sbe/build/tools
diff options
context:
space:
mode:
Diffstat (limited to 'sbe/build/tools')
-rwxr-xr-xsbe/build/tools/Debug/sbe-debug.py137
1 files changed, 137 insertions, 0 deletions
diff --git a/sbe/build/tools/Debug/sbe-debug.py b/sbe/build/tools/Debug/sbe-debug.py
new file mode 100755
index 00000000..75ea689c
--- /dev/null
+++ b/sbe/build/tools/Debug/sbe-debug.py
@@ -0,0 +1,137 @@
+#!/usr/bin/python
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: sbe/build/tools/Debug/sbe-debug.py $
+#
+# OpenPOWER sbe Project
+#
+# Contributors Listed Below - COPYRIGHT 2016
+# [+] International Business Machines Corp.
+#
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+#
+# IBM_PROLOG_END_TAG
+import os
+import subprocess
+import re
+import random
+import argparse
+import sys
+err = False
+
+syms = {};
+
+def fillSymTable(sbeObjDir):
+ symFile = sbeObjDir + "/sbe.syms"
+ f = open( symFile, 'r' )
+ for line in f:
+ words = line.split()
+ if( len( words ) == 4 ):
+ syms[words[3]] = [words[0], words[1]]
+
+def collectTrace( hwpBinDir, sbeObjDir, target, proc ):
+ cmd1 = ("."+hwpBinDir+"/p9_sbe_pibMemDump_wrap.exe " + \
+ syms['g_pk_trace_buf'][0] +\
+ " " + syms['g_pk_trace_buf'][1] + " " + target)
+ cmd2 = "." + "/ppe2fsp dumpPibMem sbetrace.bin "
+ cmd3 = ("." + "/fsp-trace -s " + sbeObjDir +\
+ "/trexStringFile sbetrace.bin > "+\
+ "sbe_"+str(proc)+"_tracMERG")
+ cmd4 = "mv dumpPibMem dumpPibMem_trace"
+ print "\ncollecting trace with commands -\n"
+ print "cmd1:", cmd1
+ rc = os.system( cmd1 )
+ if ( rc ):
+ print "ERROR running %s: %d " % ( cmd1, rc )
+ return 1
+
+ print "cmd2:", cmd2
+ rc = os.system( cmd2 )
+ if ( rc ):
+ print "ERROR running %s: %d " % ( cmd2, rc )
+ return 1
+
+ print "cmd3:", cmd3
+ rc = os.system( cmd3 )
+ if ( rc ):
+ print "ERROR running %s: %d " % ( cmd3, rc )
+ return 1
+
+ print "cmd4:", cmd4
+ rc = os.system( cmd4 )
+ if ( rc ):
+ print "ERROR running %s: %d " % ( cmd4, rc )
+ return 1
+
+def collectAttr( hwpBinDir, sbeObjDir, target, proc ):
+ cmd1 = ("."+hwpBinDir+"/p9_sbe_pibMemDump_wrap.exe " +\
+ syms['G_sbe_attrs'][0] + " " + \
+ syms['G_sbe_attrs'][1] + " " + target)
+ cmd2 = "mv dumpPibMem sbeAttr.bin"
+ cmd3 = ("."+ sbeObjDir + "/p9_xip_tool " +\
+ sbeObjDir + "/sbe_seeprom.bin -ifs attrdump sbeAttr.bin > "+\
+ "sbe_"+str(proc)+"_attrs")
+ print "\ncollecting attributes with commands -\n"
+ print "cmd1:", cmd1
+ rc = os.system( cmd1 )
+ if ( rc ):
+ print "ERROR running %s: %d " % ( cmd1, rc )
+ return 1
+
+ print "cmd2:", cmd2
+ rc = os.system( cmd2 )
+ if ( rc ):
+ print "ERROR running %s: %d " % ( cmd2, rc )
+ return 1
+
+ print "cmd3:", cmd3
+ rc = os.system( cmd3 )
+ if ( rc ):
+ print "ERROR running %s: %d " % ( cmd3, rc )
+ return 1
+
+def main( argv ):
+ parser = argparse.ArgumentParser( description = "SBE Dump Parser" )
+
+ parser.add_argument( '-hwpBinDir', type=str, default = os.getcwd(), \
+ help = 'Path of p9_sbe_pibMemDump_wrap.exe')
+ parser.add_argument( '-sbeObjDir', type=str, default = os.getcwd(), \
+ help = 'Path of sbe.syms file')
+ parser.add_argument( '-l', '--level', choices = ['all', 'trace', 'attr'],\
+ default='all', help = 'Parser level' )
+ parser.add_argument( '-t', '--target', choices = ['AWAN', 'HW'], \
+ required = 'true', help = 'Target type' )
+ parser.add_argument( '-p', '--proc', type=int , default = 0, \
+ help = 'Proc Number' )
+
+ args = parser.parse_args()
+
+ if ( args.target == 'AWAN' ):
+ target = "1"
+ elif ( args.target == 'HW' ):
+ target = "0"
+
+ fillSymTable(args.sbeObjDir)
+ if ( args.level == 'all' ):
+ print "Parsing everything"
+ collectTrace( args.hwpBinDir, args.sbeObjDir, target, args.proc )
+ collectAttr( args.hwpBinDir, args.sbeObjDir, target, args.proc )
+ elif ( args.level == 'trace' ):
+ collectTrace( args.hwpBinDir, args.sbeObjDir, target, args.proc )
+ elif ( args.level == 'attr' ):
+ collectAttr( args.hwpBinDir, args.sbeObjDir, target, args.proc )
+
+if __name__ == "__main__":
+ main( sys.argv )
OpenPOWER on IntegriCloud