Commit a0a94bc9 authored by Stafford Horne's avatar Stafford Horne
Browse files

openrisc: Add syscall details to emergency syscall debugging



When bringing linux on the or1k Marocchino we ran into issues starting
init.  This patch adds the syscall number and return address to
assist tracing syscalls even before strace is able to be used.

By default this is all disabled but a developer could adjust the ifdef
to enable debugging.

Cc: Andrey Bacherov <bandvig@mail.ru>
Signed-off-by: default avatarStafford Horne <shorne@gmail.com>
parent 29bbb2a9
Loading
Loading
Loading
Loading
+15 −5
Original line number Diff line number Diff line
@@ -601,7 +601,7 @@ UNHANDLED_EXCEPTION(_vector_0xb00,0xb00)
 */

_string_syscall_return:
	.string "syscall return %ld \n\r\0"
	.string "syscall r9:0x%08x -> syscall(%ld) return %ld\0"
	.align 4

ENTRY(_sys_call_handler)
@@ -679,15 +679,25 @@ _syscall_return:
_syscall_debug:
	l.movhi r3,hi(_string_syscall_return)
	l.ori   r3,r3,lo(_string_syscall_return)
	l.ori   r27,r0,1
	l.ori   r27,r0,2
	l.sw    -4(r1),r27
	l.sw    -8(r1),r11
	l.addi  r1,r1,-8
	l.lwz	r29,PT_ORIG_GPR11(r1)
	l.sw    -12(r1),r29
	l.lwz	r29,PT_GPR9(r1)
	l.sw    -16(r1),r29
	l.movhi r27,hi(_printk)
	l.ori   r27,r27,lo(_printk)
	l.jalr  r27
	 l.nop
	l.addi  r1,r1,8
	 l.addi  r1,r1,-16
	l.addi  r1,r1,16
#endif
#if 0
_syscall_show_regs:
	l.movhi r27,hi(show_registers)
	l.ori   r27,r27,lo(show_registers)
	l.jalr  r27
	 l.or	r3,r1,r1
#endif

_syscall_check_trace_leave: