Skip to content
Snippets Groups Projects
Commit e5440d30 authored by Mulu He's avatar Mulu He
Browse files

linux-ramdump-parser-v2: Add support for etf swao


Add ETF SWAO dump region need to parser.

Change-Id: I1792d009b667c7e7b8933c01ecaf4ccceb494ad2
Signed-off-by: default avatarMulu He <muluhe@codeaurora.org>
parent 1b6a91f7
No related branches found
No related tags found
No related merge requests found
......@@ -51,8 +51,10 @@ class client(object):
MSM_DUMP_DATA_MISC = 0xE8
MSM_DUMP_DATA_VSENSE = 0xE9
MSM_DUMP_DATA_TMC_ETF = 0xF0
MSM_DUMP_DATA_TMC_ETF_SWAO = 0xF1
MSM_DUMP_DATA_TMC_ETR_REG = 0x100
MSM_DUMP_DATA_TMC_ETF_REG = 0x101
MSM_DUMP_DATA_TMC_ETF_SWAO_REG = 0x102
MSM_DUMP_DATA_LOG_BUF = 0x110
MSM_DUMP_DATA_LOG_BUF_FIRST_IDX = 0x111
MSM_DUMP_DATA_L2_TLB = 0x120
......@@ -81,7 +83,9 @@ client_types = [
('MSM_DUMP_DATA_DCC_REG', 'parse_dcc_reg'),
('MSM_DUMP_DATA_DCC_SRAM', 'parse_dcc_sram'),
('MSM_DUMP_DATA_TMC_ETF', 'parse_qdss_common'),
('MSM_DUMP_DATA_TMC_ETF_SWAO', 'parse_qdss_common'),
('MSM_DUMP_DATA_TMC_ETR_REG', 'parse_qdss_common'),
('MSM_DUMP_DATA_TMC_ETF_SWAO_REG', 'parse_qdss_common'),
('MSM_DUMP_DATA_TMC_REG', 'parse_qdss_common'),
('MSM_DUMP_DATA_L2_TLB', 'parse_tlb_common'),
('MSM_DUMP_DATA_LLC_CACHE', 'parse_system_cache_common'),
......@@ -92,6 +96,8 @@ qdss_tag_to_field_name = {
'MSM_DUMP_DATA_TMC_ETR_REG': 'tmc_etr_start',
'MSM_DUMP_DATA_TMC_REG': 'tmc_etr_start',
'MSM_DUMP_DATA_TMC_ETF': 'etf_start',
'MSM_DUMP_DATA_TMC_ETF_SWAO': 'tmc_etf_swao_start',
'MSM_DUMP_DATA_TMC_ETF_SWAO_REG': 'tmc_etf_swao_reg_start',
'MSM_DUMP_DATA_DBGUI_REG': 'dbgui_start',
}
......@@ -877,6 +883,7 @@ class DebugImage_v2():
self.qdss.dump_standard(ram_dump)
if not ram_dump.skip_qdss_bin:
self.qdss.save_etf_bin(ram_dump)
self.qdss.save_etf_swao_bin(ram_dump)
self.qdss.save_etr_bin(ram_dump)
if ram_dump.qtf:
self.parse_qtf(ram_dump)
......
......@@ -217,6 +217,8 @@ class QDSSDump():
self.etm_regs2 = None
self.etm_regs3 = None
self.dbgui_start = None
self.tmc_etf_swao_start = None
self.tmc_etf_swao_reg_start = None
# Assumptions: Any address given here has been checked for correct magic
def print_tmc_etf(self, ram_dump):
......@@ -306,6 +308,32 @@ class QDSSDump():
tmc_etf.close()
def save_etf_swao_bin(self, ram_dump):
tmc_etf_swao = ram_dump.open_file('tmc-etf-swao.bin')
if self.tmc_etf_swao_reg_start is None or self.tmc_etf_swao_start is None:
print_out_str('!!! ETF SWAO was not the current sink!')
tmc_etf_swao.close()
return
ctl_offset, ctl_desc = tmc_registers['CTL']
mode_offset, mode_desc = tmc_registers['MODE']
rsz_offset, rsz_desc = tmc_registers['RSZ']
ctl = ram_dump.read_u32(self.tmc_etf_swao_reg_start + ctl_offset, False)
mode = ram_dump.read_u32(self.tmc_etf_swao_reg_start + mode_offset, False)
rsz = ram_dump.read_u32(self.tmc_etf_swao_reg_start + rsz_offset, False)
# rsz is given in words so convert to bytes
rsz = 4 * rsz
if (ctl & 0x1) == 1 and (mode == 0):
for i in range(0, rsz):
val = ram_dump.read_byte(self.tmc_etf_swao_start + i, False)
tmc_etf_swao.write(struct.pack('<B', val))
else:
print_out_str('!!! ETF SWAO was not the current sink!')
tmc_etf_swao.close()
def read_sg_data(self, dbaddr, sts, rwpval, ram_dump, tmc_etr):
start = dbaddr
continue_looping = True
......
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