Skip to content
Snippets Groups Projects
Commit dee178d1 authored by Laura Abbott's avatar Laura Abbott
Browse files

linux-ramdump-parser-v2: Pass the framepointer to watchdog unwinding

The frame pointer is needed for unwinding when not using lookup tables.
Make sure the frame pointer is passed in for the watchdog_v2 which
is used by arm64 which does not have unwinding tables.

Change-Id: If281a6fb398d1be30451374279605cfa5033306e
parent 91c46a3c
No related branches found
No related tags found
No related merge requests found
...@@ -275,9 +275,11 @@ class TZRegDump_v2(): ...@@ -275,9 +275,11 @@ class TZRegDump_v2():
if ram_dump.arm64: if ram_dump.arm64:
lr = self.core_regs.regs['x30'] lr = self.core_regs.regs['x30']
bt = self.core_regs.regs['sp_el1'] bt = self.core_regs.regs['sp_el1']
fp = self.core_regs.regs['x29']
else: else:
lr = self.core_regs.regs['r14_svc'] lr = self.core_regs.regs['r14_svc']
bt = self.core_regs.regs['r13_svc'] bt = self.core_regs.regs['r13_svc']
fp = self.core_regs.regs['r11']
a = ram_dump.unwind_lookup(pc) a = ram_dump.unwind_lookup(pc)
if a is not None: if a is not None:
...@@ -296,7 +298,7 @@ class TZRegDump_v2(): ...@@ -296,7 +298,7 @@ class TZRegDump_v2():
print_out_str( print_out_str(
'Core {3} LR: {0}+{1:x} <{2:x}>'.format(symname, offset, lr, self.core)) 'Core {3} LR: {0}+{1:x} <{2:x}>'.format(symname, offset, lr, self.core))
print_out_str('') print_out_str('')
ram_dump.unwind.unwind_backtrace(bt, 0, pc, lr, '') ram_dump.unwind.unwind_backtrace(bt, fp, pc, lr, '')
print_out_str('') print_out_str('')
def init_regs(self, start_addr, end_addr, core, ram_dump): def init_regs(self, start_addr, end_addr, core, ram_dump):
......
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