From c62842bf4a7ee092a3cc19dd10783c9d341b6c11 Mon Sep 17 00:00:00 2001 From: Aparna Das <adas@codeaurora.org> Date: Thu, 24 Apr 2014 11:23:50 -0700 Subject: [PATCH] linux-ramdump-parser-v2: add support for tmc high address Add support to locate TMC trace buffer in memory when the address width is greater than 32 bits. Change-Id: I7d916a6f9cfe0312764702b67d410778eaa55a04 --- linux-ramdump-parser-v2/qdss.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/linux-ramdump-parser-v2/qdss.py b/linux-ramdump-parser-v2/qdss.py index 99825ae..22c3586 100644 --- a/linux-ramdump-parser-v2/qdss.py +++ b/linux-ramdump-parser-v2/qdss.py @@ -312,6 +312,10 @@ class QDSSDump(): dbalo_offset, dbalo_desc = tmc_registers['DBALO'] dbalo = ram_dump.read_u32( self.tmc_etr_start + dbalo_offset, False) + dbahi_offset, dbahi_desc = tmc_registers['DBAHI'] + dbahi = ram_dump.read_u32( + self.tmc_etr_start + dbahi_offset, False) + dbaddr = (dbahi << 32) + dbalo rsz_offset, rsz_desc = tmc_registers['RSZ'] rsz = ram_dump.read_u32(self.tmc_etr_start + rsz_offset, False) @@ -320,18 +324,21 @@ class QDSSDump(): rwp_offset, rwp_desc = tmc_registers['RWP'] rwp = ram_dump.read_u32(self.tmc_etr_start + rwp_offset, False) + rwphi_offset, rwphi_desc = tmc_registers['RWPHI'] + rwphi = ram_dump.read_u32(self.tmc_etr_start + rwphi_offset, False) + rwpval = (rwphi << 32) + rwp if (sts & 0x1) == 1: - for i in range(rwp, dbalo + rsz): + for i in range(rwpval, dbaddr + rsz): val = ram_dump.read_byte(i, False) tmc_etr.write(struct.pack('<B', val)) - for i in range(dbalo, rwp): + for i in range(dbaddr, rwpval): val = ram_dump.read_byte(i, False) tmc_etr.write(struct.pack('<B', val)) else: - for i in range(dbalo, dbalo + rsz): + for i in range(dbaddr, dbaddr + rsz): val = ram_dump.read_byte(i, False) tmc_etr.write(struct.pack('<B', val)) else: -- GitLab