diff --git a/linux-ramdump-parser-v2/qdss.py b/linux-ramdump-parser-v2/qdss.py
index 99825ae5e1ed4724101b4ba999c67bab8f439b6a..22c3586ba45c7525ac9641ef783e9233202095f2 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: