Skip to content
Snippets Groups Projects
Commit 636f77a5 authored by Wolfgang Denk's avatar Wolfgang Denk
Browse files

Merge branch 'master' of git://git.denx.de/u-boot-nds32

* 'master' of git://git.denx.de/u-boot-nds32:
  nds32/n1213: correct vector table in start.S
  nds32: fix ptrace and interrupt register overflow
parents 3fa4977a 1a05bb3c
No related branches found
No related tags found
No related merge requests found
...@@ -68,15 +68,17 @@ _start: j reset ...@@ -68,15 +68,17 @@ _start: j reset
j tlb_not_present j tlb_not_present
j tlb_misc j tlb_misc
j tlb_vlpt_miss j tlb_vlpt_miss
j cache_parity_error j machine_error
j debug j debug
j general_exception j general_exception
j syscall
j internal_interrupt ! H0I j internal_interrupt ! H0I
j internal_interrupt ! H1I j internal_interrupt ! H1I
j internal_interrupt ! H2I j internal_interrupt ! H2I
j internal_interrupt ! H3I j internal_interrupt ! H3I
j internal_interrupt ! H4I j internal_interrupt ! H4I
j internal_interrupt ! H5I j internal_interrupt ! H5I
j software_interrupt ! S0I
.balign 16 .balign 16
...@@ -477,7 +479,7 @@ tlb_vlpt_miss: ...@@ -477,7 +479,7 @@ tlb_vlpt_miss:
bal do_interruption bal do_interruption
.align 5 .align 5
cache_parity_error: machine_error:
SAVE_ALL SAVE_ALL
move $r0, $sp ! To get the kernel stack move $r0, $sp ! To get the kernel stack
li $r1, 5 ! Determine interruption type li $r1, 5 ! Determine interruption type
...@@ -498,12 +500,26 @@ general_exception: ...@@ -498,12 +500,26 @@ general_exception:
bal do_interruption bal do_interruption
.align 5 .align 5
internal_interrupt: syscall:
SAVE_ALL SAVE_ALL
move $r0, $sp ! To get the kernel stack move $r0, $sp ! To get the kernel stack
li $r1, 8 ! Determine interruption type li $r1, 8 ! Determine interruption type
bal do_interruption 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 .align 5
/* /*
......
...@@ -38,6 +38,8 @@ struct pt_regs { ...@@ -38,6 +38,8 @@ struct pt_regs {
NDS32_REG d1hi; NDS32_REG d1hi;
NDS32_REG d1lo; NDS32_REG d1lo;
NDS32_REG r[26]; /* r0 - r25 */ 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 fp; /* r28 */
NDS32_REG gp; /* r29 */ NDS32_REG gp; /* r29 */
NDS32_REG lp; /* r30 */ NDS32_REG lp; /* r30 */
......
...@@ -91,7 +91,7 @@ void show_regs(struct pt_regs *regs) ...@@ -91,7 +91,7 @@ void show_regs(struct pt_regs *regs)
printf("D1H: %08lx D1L: %08lx D0H: %08lx D0L: %08lx\n", printf("D1H: %08lx D1L: %08lx D0H: %08lx D0L: %08lx\n",
regs->d1hi, regs->d1lo, regs->d0hi, regs->d0lo); regs->d1hi, regs->d1lo, regs->d0hi, regs->d0lo);
printf("r27: %08lx r26: %08lx r25: %08lx r24: %08lx\n", 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", printf("r23: %08lx r22: %08lx r21: %08lx r20: %08lx\n",
regs->r[23], regs->r[22], regs->r[21], regs->r[20]); regs->r[23], regs->r[22], regs->r[21], regs->r[20]);
printf("r19: %08lx r18: %08lx r17: %08lx r16: %08lx\n", printf("r19: %08lx r18: %08lx r17: %08lx r16: %08lx\n",
......
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