diff options
| -rw-r--r-- | arch/nds32/cpu/n1213/start.S | 22 | ||||
| -rw-r--r-- | arch/nds32/include/asm/ptrace.h | 2 | ||||
| -rw-r--r-- | arch/nds32/lib/interrupts.c | 2 | 
3 files changed, 22 insertions, 4 deletions
| diff --git a/arch/nds32/cpu/n1213/start.S b/arch/nds32/cpu/n1213/start.S index 1d1fcf77e..889bf8b87 100644 --- a/arch/nds32/cpu/n1213/start.S +++ b/arch/nds32/cpu/n1213/start.S @@ -68,15 +68,17 @@ _start:	j	reset  	j	tlb_not_present  	j	tlb_misc  	j	tlb_vlpt_miss -	j	cache_parity_error +	j	machine_error  	j	debug  	j	general_exception +	j	syscall  	j	internal_interrupt		! H0I  	j	internal_interrupt		! H1I  	j	internal_interrupt		! H2I  	j	internal_interrupt		! H3I  	j	internal_interrupt		! H4I  	j	internal_interrupt		! H5I +	j	software_interrupt		! S0I  	.balign 16 @@ -477,7 +479,7 @@ tlb_vlpt_miss:  	bal	do_interruption  	.align	5 -cache_parity_error: +machine_error:  	SAVE_ALL  	move	$r0, $sp			! To get the kernel stack  	li	$r1, 5				! Determine interruption type @@ -498,13 +500,27 @@ general_exception:  	bal	do_interruption  	.align	5 -internal_interrupt: +syscall:  	SAVE_ALL  	move	$r0, $sp			! To get the kernel stack  	li	$r1, 8				! Determine interruption type  	bal	do_interruption  	.align	5 +internal_interrupt: +	SAVE_ALL +	move	$r0, $sp			! To get the kernel stack +	li	$r1, 9				! Determine interruption type +	bal	do_interruption + +	.align	5 +software_interrupt: +	SAVE_ALL +	move	$r0, $sp			! To get the kernel stack +	li	$r1, 10				! Determine interruption type +	bal	do_interruption + +	.align	5  /*   * void reset_cpu(ulong addr); diff --git a/arch/nds32/include/asm/ptrace.h b/arch/nds32/include/asm/ptrace.h index 4336083ea..ee181b267 100644 --- a/arch/nds32/include/asm/ptrace.h +++ b/arch/nds32/include/asm/ptrace.h @@ -38,6 +38,8 @@ struct pt_regs {  	NDS32_REG d1hi;  	NDS32_REG d1lo;  	NDS32_REG r[26];	/* r0 - r25 */ +	NDS32_REG p0;		/* r26 - used by OS */ +	NDS32_REG p1;		/* r27 - used by OS */  	NDS32_REG fp;		/* r28 */  	NDS32_REG gp;		/* r29 */  	NDS32_REG lp;		/* r30 */ diff --git a/arch/nds32/lib/interrupts.c b/arch/nds32/lib/interrupts.c index 974d52a1a..ca8c227b0 100644 --- a/arch/nds32/lib/interrupts.c +++ b/arch/nds32/lib/interrupts.c @@ -91,7 +91,7 @@ void show_regs(struct pt_regs *regs)  	printf("D1H: %08lx  D1L: %08lx  D0H: %08lx  D0L: %08lx\n",  		regs->d1hi, regs->d1lo, regs->d0hi, regs->d0lo);  	printf("r27: %08lx  r26: %08lx  r25: %08lx  r24: %08lx\n", -		regs->r[27], regs->r[26], regs->r[25], regs->r[24]); +		regs->p1, regs->p0, regs->r[25], regs->r[24]);  	printf("r23: %08lx  r22: %08lx  r21: %08lx  r20: %08lx\n",  		regs->r[23], regs->r[22], regs->r[21], regs->r[20]);  	printf("r19: %08lx  r18: %08lx  r17: %08lx  r16: %08lx\n", |