From b27124de63d4fa72fc9ea209e0e9444cf0205531 Mon Sep 17 00:00:00 2001
From: Rhythm Patel <rhythmp@codeaurora.org>
Date: Thu, 20 Jul 2017 15:39:01 -0700
Subject: [PATCH] lrdpv2: cachedumplib: Change LLC support for sdm845

Changing the Last Level Cache (System Cache) dump
details according to their structures. Dumps have
been collected without structure padding

Change-Id: Ic34c4517df1399b16b16007a08932d5ffe6043b8
---
 linux-ramdump-parser-v2/cachedumplib.py | 51 ++++++++++++-------------
 1 file changed, 25 insertions(+), 26 deletions(-)

diff --git a/linux-ramdump-parser-v2/cachedumplib.py b/linux-ramdump-parser-v2/cachedumplib.py
index 042295f..c0ffb06 100644
--- a/linux-ramdump-parser-v2/cachedumplib.py
+++ b/linux-ramdump-parser-v2/cachedumplib.py
@@ -571,40 +571,39 @@ class LLC_SYSTEM_CACHE_KRYO3XX(CacheDumpType_v1):
     """Refer to documentation:LLC_HDD"""
     def __init__(self):
         super(LLC_SYSTEM_CACHE_KRYO3XX, self).__init__()
-        self.tableformat.addColumn('G0 Valid')
-        self.tableformat.addColumn('G0 Dirty')
-        self.tableformat.addColumn('G1 Valid')
-        self.tableformat.addColumn('G1 Dirty')
-        self.tableformat.addColumn('SCID')
-        self.tableformat.addColumn('ECC')
-        self.tableformat.addColumn('Tag address')
-        self.unsupported_header_offset = 0
-        self.TagSize = 2
-        self.LineSize = 16
+        self.tableformat.addColumn('Valid')
+        self.tableformat.addColumn('Dirty')
+        self.tableformat.addColumn('SCID      ')
+        self.tableformat.addColumn('Tag Data  ')
+        self.tableformat.addColumn('ECC       ')
+        self.tableformat.addColumn('Physical address1')
+        self.tableformat.addColumn('Physical address2')
+
+        self.unsupported_header_offset = 12
+        self.TagSize = 7
+        self.LineSize = 0x10
         self.NumSets = 0x400
-        self.NumWays = 12
+        self.NumWays = 0x0C
 
     def parse_tag_fn(self, output, data, nset, nway):
-        if self.TagSize != 2:
+        if self.TagSize != 7:
             raise Exception('cache tag size mismatch')
 
-        G0_valid = data[0] & 0x1
-        G1_valid = (data[0] >> 2) & 0x1
-        G0_dirty = (data[0] >> 3) & 0x1
-        G1_dirty = (data[0] >> 4) & 0x1
-        SCID = (data[0] >> 7) & 0x1f
-        ECC_bits = (data[0] >> 14) & 0x7f
-
-        DONE_bit = (data[1] >> 28) & 0x1
-        addr = data[1] & 0x3fffffff
+        Valid = data[0]
+        Dirty = data[1]
+        SCID = data[2]
+        Tag_Addr = data[3]
+        ECC_bits = data[4]
+        Phy_Addr_Upper = data[5]
+        Phy_Addr_Lower = data[6]
 
-        output.append(G0_valid)
-        output.append(G0_dirty)
-        output.append(G1_valid)
-        output.append(G1_dirty)
+        output.append(Valid)
+        output.append(Dirty)
         output.append(SCID)
+        output.append(Tag_Addr)
         output.append(ECC_bits)
-        output.append(addr)
+        output.append(Phy_Addr_Upper)
+        output.append(Phy_Addr_Lower)
 
 L1_DCache_KRYO2XX_SILVER = L1_DCache_A53
 L1_ICache_KYRO2XX_SILVER = L1_ICache_A53
-- 
GitLab