summaryrefslogtreecommitdiffstats
path: root/src/build/parsAndCutElf.py
diff options
context:
space:
mode:
authorShakeeb <shakeebbk@in.ibm.com>2016-08-28 22:23:54 -0500
committerSachin Gupta <sgupta2m@in.ibm.com>2016-08-30 06:01:42 -0400
commit593629e88423f3c652c65706d4f4648db26b0fb2 (patch)
treeae2f47deee0fddf7cc016021900a6d35701b1a38 /src/build/parsAndCutElf.py
parentb6e511f8fe906c566537e79d7fb5f3af1563d3b1 (diff)
downloadtalos-sbe-593629e88423f3c652c65706d4f4648db26b0fb2.tar.gz
talos-sbe-593629e88423f3c652c65706d4f4648db26b0fb2.zip
SBE code restructure: Build directory setup
Change-Id: I5727522fe885260dde54a94b9ae37fd1382a76ff RTC:159709 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/28888 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: RAJA DAS <rajadas2@in.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'src/build/parsAndCutElf.py')
-rwxr-xr-xsrc/build/parsAndCutElf.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/build/parsAndCutElf.py b/src/build/parsAndCutElf.py
new file mode 100755
index 00000000..1a91d969
--- /dev/null
+++ b/src/build/parsAndCutElf.py
@@ -0,0 +1,69 @@
+#!/usr/bin/python
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/build/parsAndCutElf.py $
+#
+# OpenPOWER sbe Project
+#
+# Contributors Listed Below - COPYRIGHT 2016
+#
+#
+# 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 sys
+
+# Workaround to cut SBE image from elf image.
+def parserElf():
+ cmd = "readelf -S ../../obj/sbe_seeprom.out"
+ firstSection = ".header"
+ cmd1 = "nm ../../obj/sbe_seeprom.out | grep _sbe_image_size"
+ output = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
+ i = 0;
+ for line in output.stdout:
+ line = line.strip()
+
+ if not line: continue
+
+ if( (line.find(firstSection) != -1) ):
+ tokens = line.split();
+ startSize = int( tokens[5], 16 )
+ print startSize
+ break;
+
+ # Get the location of sbe end
+ output = subprocess.Popen(cmd1, shell=True, stdout=subprocess.PIPE)
+ for line in output.stdout:
+ line = line.strip()
+ tokens = line.split();
+ endSize = int( tokens[0], 16 );
+ break;
+
+ print endSize;
+ if( (startSize == 0) or (endSize == 0)):
+ exit(-1)
+
+ # cut the image
+ cmd1 = "dd skip=" + str(startSize) + " count=" + str(endSize) + " if=../../obj/sbe_seeprom.out of=../../obj/sbe_seeprom.bin bs=1"
+ rc = os.system(cmd1)
+ if ( rc ):
+ print "ERROR running %s: %d "%( cmd1, rc )
+ exit(-1)
+
+parserElf()
+
OpenPOWER on IntegriCloud