From ad035dece2657ebdb343ded56a33810622c6d816 Mon Sep 17 00:00:00 2001
From: Soumen Ghosh <soumeng@codeaurora.org>
Date: Wed, 8 Feb 2017 11:05:48 +0530
Subject: [PATCH] lrdp_v2:changes for getting serial number

   This changes to fetch serila number of HW from dump

Change-Id: I93ee37feafd9e407fe380761c0e6469fabe40f7d
---
 linux-ramdump-parser-v2/ramdump.py  | 17 +++++++++++++++++
 linux-ramdump-parser-v2/ramparse.py |  3 +++
 2 files changed, 20 insertions(+)
 mode change 100755 => 100644 linux-ramdump-parser-v2/ramdump.py
 mode change 100755 => 100644 linux-ramdump-parser-v2/ramparse.py

diff --git a/linux-ramdump-parser-v2/ramdump.py b/linux-ramdump-parser-v2/ramdump.py
old mode 100755
new mode 100644
index e0a379c..8d12608
--- a/linux-ramdump-parser-v2/ramdump.py
+++ b/linux-ramdump-parser-v2/ramdump.py
@@ -804,6 +804,23 @@ class RamDump():
             print_out_str('!!! Could not lookup saved command line address')
             return False
 
+    def print_socinfo(self):
+        content_socinfo = hex(self.read_pointer('socinfo'))
+        content_socinfo = content_socinfo.strip('L')
+        sernum_offset = self.field_offset('struct socinfo_v10', 'serial_number')
+        if sernum_offset is None:
+            sernum_offset = self.field_offset('struct socinfo_v0_10', 'serial_number')
+            if sernum_offset is None:
+                print_out_str("No serial number information available")
+                return False
+        addr_of_sernum = hex(int(content_socinfo, 16) + sernum_offset)
+        addr_of_sernum = addr_of_sernum.strip('L')
+        serial_number = self.read_u32(int(addr_of_sernum, 16))
+        if serial_number is not None:
+            print_out_str('Serial number %s' % hex(serial_number))
+            return True
+        return False
+
     def auto_parse(self, file_path):
         for cls in sorted(AutoDumpInfo.__subclasses__(),
                           key=lambda x: x.priority, reverse=True):
diff --git a/linux-ramdump-parser-v2/ramparse.py b/linux-ramdump-parser-v2/ramparse.py
old mode 100755
new mode 100644
index 78c77cd..7245e9b
--- a/linux-ramdump-parser-v2/ramparse.py
+++ b/linux-ramdump-parser-v2/ramparse.py
@@ -349,6 +349,9 @@ if __name__ == '__main__':
         print_out_str('!!! Exiting now...')
         sys.exit(1)
 
+    if not dump.print_socinfo():
+        print_out_str('!!! No serial number information available.')
+
     if options.qdss:
         print_out_str('!!! --parse-qdss is now deprecated')
         print_out_str(
-- 
GitLab