Skip to content
Snippets Groups Projects
Commit 9a80cf7f authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ldrpv2: cachedumplib: Add support for sdm845."

parents 0421fadb 527640d8
No related branches found
No related tags found
No related merge requests found
......@@ -567,6 +567,45 @@ class L1_ICache_KRYO3XX_GOLD(CacheDumpType_v1):
output.append(ns)
output.append(addr)
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.NumSets = 0x400
self.NumWays = 12
def parse_tag_fn(self, output, data, nset, nway):
if self.TagSize != 2:
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
output.append(G0_valid)
output.append(G0_dirty)
output.append(G1_valid)
output.append(G1_dirty)
output.append(SCID)
output.append(ECC_bits)
output.append(addr)
L1_DCache_KRYO2XX_SILVER = L1_DCache_A53
L1_ICache_KYRO2XX_SILVER = L1_ICache_A53
......@@ -590,6 +629,12 @@ lookuptable[("sdm845", 0x65, 0x14)] = L1_ICache_KRYO3XX_GOLD()
lookuptable[("sdm845", 0x66, 0x14)] = L1_ICache_KRYO3XX_GOLD()
lookuptable[("sdm845", 0x67, 0x14)] = L1_ICache_KRYO3XX_GOLD()
lookuptable[("sdm845", 0x121, 0x14)] = LLC_SYSTEM_CACHE_KRYO3XX()
lookuptable[("sdm845", 0x122, 0x14)] = LLC_SYSTEM_CACHE_KRYO3XX()
lookuptable[("sdm845", 0x123, 0x14)] = LLC_SYSTEM_CACHE_KRYO3XX()
lookuptable[("sdm845", 0x124, 0x14)] = LLC_SYSTEM_CACHE_KRYO3XX()
# "msmcobalt"
lookuptable[("cobalt", 0x80, 0x14)] = L1_DCache_KRYO2XX_SILVER()
lookuptable[("cobalt", 0x81, 0x14)] = L1_DCache_KRYO2XX_SILVER()
......
......@@ -52,6 +52,7 @@ class client(object):
MSM_DUMP_DATA_LOG_BUF = 0x110
MSM_DUMP_DATA_LOG_BUF_FIRST_IDX = 0x111
MSM_DUMP_DATA_L2_TLB = 0x120
MSM_DUMP_DATA_LLC_CACHE = 0x121
MSM_DUMP_DATA_SCANDUMP = 0xEB
MSM_DUMP_DATA_MAX = MAX_NUM_ENTRIES
......@@ -74,6 +75,7 @@ client_types = [
('MSM_DUMP_DATA_TMC_ETF', 'parse_qdss_common'),
('MSM_DUMP_DATA_TMC_REG', 'parse_qdss_common'),
('MSM_DUMP_DATA_L2_TLB', 'parse_l2_tlb'),
('MSM_DUMP_DATA_LLC_CACHE', 'parse_system_cache_common'),
]
qdss_tag_to_field_name = {
......@@ -213,6 +215,23 @@ class DebugImage_v2():
print_out_exception()
outfile.close()
def parse_system_cache_common(self, version, start, end, client_id, ramdump):
client_name = self.dump_data_id_lookup_table[client_id]
bank_number = client_id - client.MSM_DUMP_DATA_LLC_CACHE
filename = '{0}_0x{1:x}'.format(client_name, bank_number)
outfile = ramdump.open_file(filename)
cache_type = lookup_cache_type(ramdump.hw_id, client_id, version)
try:
cache_type.parse(start, end, ramdump, outfile)
except NotImplementedError:
print_out_str('System cache dumping not supported'
% client_name)
except:
print_out_str('!!! Unhandled exception while running {0}'.format(client_name))
print_out_exception()
outfile.close()
def parse_tlb_common(self, version, start, end, client_id, ramdump):
client_name = self.dump_data_id_lookup_table[client_id]
core = client_id & 0xF
......@@ -488,6 +507,10 @@ class DebugImage_v2():
client.MSM_DUMP_DATA_L2_CACHE + i] = 'MSM_DUMP_DATA_L2_CACHE'
self.dump_data_id_lookup_table[
client.MSM_DUMP_DATA_ETM_REG + i] = 'MSM_DUMP_DATA_ETM_REG'
for i in range(0, 4):
self.dump_data_id_lookup_table[
client.MSM_DUMP_DATA_LLC_CACHE + i] = 'MSM_DUMP_DATA_LLC_CACHE'
# 0x100 - tmc-etr registers and 0x101 - for tmc-etf registers
self.dump_data_id_lookup_table[
client.MSM_DUMP_DATA_TMC_REG + 1] = 'MSM_DUMP_DATA_TMC_REG'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment