mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-28 01:51:33 +00:00
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
This commit is contained in:
commit
636f77a5a6
3 changed files with 22 additions and 4 deletions
|
@ -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:
|
||||||
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:
|
||||||
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 {
|
||||||
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)
|
||||||
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",
|
||||||
|
|
Loading…
Add table
Reference in a new issue