debugging crash for arm64

Frank Wunderlich frank-w at
Wed Dec 8 12:12:03 CET 2021


i got a crash on uboot while running reset-command in rk3568 board (bananapi-r2 pro, currently not in upstream).

maybe a callback is missing (e.g. reset_cpu())??

i tried to analyse it using the documentation:

Resetting CPU ...

resetting ...
"Synchronous Abort" handler, esr 0x96000045
elr: 0000000000a25f78 lr : 0000000000a25f48 (reloc)
elr: 000000007ff94f78 lr : 000000007ff94f48
x0 : 00000000fdd20000 x1 : 0000000014000001
x2 : 000000000000fdb9 x3 : 000000007df5cd48
x4 : 000000007df4fe88 x5 : 000000007df5c710
x6 : 000000000000001a x7 : 000000007df459f0
x8 : 0000000000000001 x9 : 000000000000000c
x10: 00000000000186a0 x11: 00000000ffffffd0
x12: 0000000000000010 x13: 000000000001869f
x14: 000000007ff70158 x15: 0000000000000021
x16: 000000007ff94f2c x17: 0000000000000000
x18: 000000007df4fdd0 x19: 0000000000000000
x20: 0000000000000001 x21: 0000000000000000
x22: 000000007df5ddd0 x23: 0000000000000001
x24: 000000007ffe8800 x25: 0000000000000000
x26: 0000000000000000 x27: 0000000000000000
x28: 000000007df5e980 x29: 000000007df45990

Code: d65f03c0 d5033fbf b9400661 529d9502 (b8206822)

$ echo 'Code: d65f03c0 d5033fbf b9400661 529d9502 (b8206822)' |   CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 scripts/decodecode
Code: d65f03c0 d5033fbf b9400661 529d9502 (b8206822)
All code
   0:	d65f03c0 	ret
   4:	d5033fbf 	dmb	sy
   8:	b9400661 	ldr	w1, [x19, #4]
   c:	529d9502 	mov	w2, #0xeca8                	// #60584
  10:*	b8206822 	str	w2, [x1, x0]		<-- trapping instruction

Code starting with the faulting instruction
   0:	b8206822 	str	w2, [x1, x0]

now i'm here

"Now lets use the locations provided by the elr and lr registers after subtracting the relocation offset to find out where in the code the crash occurred and from where it was invoked."

does that means that i have to subtract values of first 2 lines of trace?

0x7ff94f78 - 0x00a25f78 = 0x7F56F000

"File contains the memory layout of the U-Boot binary. Here we find these lines:"

this is not clear enough for me too...i did not found 0x7F56F000 in the file.

i expect to do anything with the address in the disassembled code (0xb8206822), but i do not know what :p

i've uploaded the matching and u-boot.dbg (output of objdump) here:

regards Frank

More information about the U-Boot mailing list