diff options
| -rw-r--r-- | arch/mn10300/include/asm/exceptions.h | 5 | ||||
| -rw-r--r-- | arch/mn10300/kernel/entry.S | 25 | ||||
| -rw-r--r-- | arch/mn10300/kernel/traps.c | 22 | ||||
| -rw-r--r-- | arch/mn10300/mm/fault.c | 5 |
4 files changed, 2 insertions, 55 deletions
diff --git a/arch/mn10300/include/asm/exceptions.h b/arch/mn10300/include/asm/exceptions.h index fa16466ef3f9..3f3826abc745 100644 --- a/arch/mn10300/include/asm/exceptions.h +++ b/arch/mn10300/include/asm/exceptions.h | |||
| @@ -15,8 +15,8 @@ | |||
| 15 | 15 | ||
| 16 | /* | 16 | /* |
| 17 | * define the breakpoint instruction opcode to use | 17 | * define the breakpoint instruction opcode to use |
| 18 | * - note that the JTAG unit steals 0xFF, so we want to avoid that if we can | 18 | * - note that the JTAG unit steals 0xFF, so you can't use JTAG and GDBSTUB at |
| 19 | * (can use 0xF7) | 19 | * the same time. |
| 20 | */ | 20 | */ |
| 21 | #define GDBSTUB_BKPT 0xFF | 21 | #define GDBSTUB_BKPT 0xFF |
| 22 | 22 | ||
| @@ -90,7 +90,6 @@ enum exception_code { | |||
| 90 | 90 | ||
| 91 | extern void __set_intr_stub(enum exception_code code, void *handler); | 91 | extern void __set_intr_stub(enum exception_code code, void *handler); |
| 92 | extern void set_intr_stub(enum exception_code code, void *handler); | 92 | extern void set_intr_stub(enum exception_code code, void *handler); |
| 93 | extern void set_jtag_stub(enum exception_code code, void *handler); | ||
| 94 | 93 | ||
| 95 | struct pt_regs; | 94 | struct pt_regs; |
| 96 | 95 | ||
diff --git a/arch/mn10300/kernel/entry.S b/arch/mn10300/kernel/entry.S index 3d394b4eefba..b82ce7b47fcb 100644 --- a/arch/mn10300/kernel/entry.S +++ b/arch/mn10300/kernel/entry.S | |||
| @@ -216,31 +216,6 @@ ENTRY(irq_handler) | |||
| 216 | 216 | ||
| 217 | ############################################################################### | 217 | ############################################################################### |
| 218 | # | 218 | # |
| 219 | # Monitor Signal handler entry point | ||
| 220 | # | ||
| 221 | ############################################################################### | ||
| 222 | ENTRY(monitor_signal) | ||
| 223 | movbu (0xae000001),d1 | ||
| 224 | cmp 1,d1 | ||
| 225 | beq monsignal | ||
| 226 | ret [],0 | ||
| 227 | |||
| 228 | monsignal: | ||
| 229 | or EPSW_NMID,epsw | ||
| 230 | mov d0,a0 | ||
| 231 | mov a0,sp | ||
| 232 | mov (REG_EPSW,fp),d1 | ||
| 233 | and ~EPSW_nSL,d1 | ||
| 234 | mov d1,(REG_EPSW,fp) | ||
| 235 | movm (sp),[d2,d3,a2,a3,exreg0,exreg1,exother] | ||
| 236 | mov (sp),a1 | ||
| 237 | mov a1,usp | ||
| 238 | movm (sp),[other] | ||
| 239 | add 4,sp | ||
| 240 | here: jmp 0x8e000008-here+0x8e000008 | ||
| 241 | |||
| 242 | ############################################################################### | ||
| 243 | # | ||
| 244 | # Double Fault handler entry point | 219 | # Double Fault handler entry point |
| 245 | # - note that there will not be a stack, D0/A0 will hold EPSW/PC as were | 220 | # - note that there will not be a stack, D0/A0 will hold EPSW/PC as were |
| 246 | # | 221 | # |
diff --git a/arch/mn10300/kernel/traps.c b/arch/mn10300/kernel/traps.c index 91365adba4f5..a64604b512d5 100644 --- a/arch/mn10300/kernel/traps.c +++ b/arch/mn10300/kernel/traps.c | |||
| @@ -538,28 +538,6 @@ void __init set_intr_stub(enum exception_code code, void *handler) | |||
| 538 | } | 538 | } |
| 539 | 539 | ||
| 540 | /* | 540 | /* |
| 541 | * set an interrupt stub to invoke the JTAG unit and then jump to a handler | ||
| 542 | */ | ||
| 543 | void __init set_jtag_stub(enum exception_code code, void *handler) | ||
| 544 | { | ||
| 545 | unsigned long addr; | ||
| 546 | u8 *vector = (u8 *)(CONFIG_INTERRUPT_VECTOR_BASE + code); | ||
| 547 | |||
| 548 | addr = (unsigned long) handler - ((unsigned long) vector + 1); | ||
| 549 | vector[0] = 0xff; /* PI to jump into JTAG debugger */ | ||
| 550 | vector[1] = 0xdc; /* jmp handler */ | ||
| 551 | vector[2] = addr; | ||
| 552 | vector[3] = addr >> 8; | ||
| 553 | vector[4] = addr >> 16; | ||
| 554 | vector[5] = addr >> 24; | ||
| 555 | vector[6] = 0xcb; | ||
| 556 | vector[7] = 0xcb; | ||
| 557 | |||
| 558 | mn10300_dcache_flush_inv(); | ||
| 559 | flush_icache_range((unsigned long) vector, (unsigned long) vector + 8); | ||
| 560 | } | ||
| 561 | |||
| 562 | /* | ||
| 563 | * initialise the exception table | 541 | * initialise the exception table |
| 564 | */ | 542 | */ |
| 565 | void __init trap_init(void) | 543 | void __init trap_init(void) |
diff --git a/arch/mn10300/mm/fault.c b/arch/mn10300/mm/fault.c index 81f153fa51b4..906e4c8f9ab1 100644 --- a/arch/mn10300/mm/fault.c +++ b/arch/mn10300/mm/fault.c | |||
| @@ -100,8 +100,6 @@ static void print_pagetable_entries(pgd_t *pgdir, unsigned long address) | |||
| 100 | } | 100 | } |
| 101 | #endif | 101 | #endif |
| 102 | 102 | ||
| 103 | asmlinkage void monitor_signal(struct pt_regs *); | ||
| 104 | |||
| 105 | /* | 103 | /* |
| 106 | * This routine handles page faults. It determines the address, | 104 | * This routine handles page faults. It determines the address, |
| 107 | * and the problem, and then passes it off to one of the appropriate | 105 | * and the problem, and then passes it off to one of the appropriate |
| @@ -279,7 +277,6 @@ good_area: | |||
| 279 | */ | 277 | */ |
| 280 | bad_area: | 278 | bad_area: |
| 281 | up_read(&mm->mmap_sem); | 279 | up_read(&mm->mmap_sem); |
| 282 | monitor_signal(regs); | ||
| 283 | 280 | ||
| 284 | /* User mode accesses just cause a SIGSEGV */ | 281 | /* User mode accesses just cause a SIGSEGV */ |
| 285 | if ((fault_code & MMUFCR_xFC_ACCESS) == MMUFCR_xFC_ACCESS_USR) { | 282 | if ((fault_code & MMUFCR_xFC_ACCESS) == MMUFCR_xFC_ACCESS_USR) { |
| @@ -292,7 +289,6 @@ bad_area: | |||
| 292 | } | 289 | } |
| 293 | 290 | ||
| 294 | no_context: | 291 | no_context: |
| 295 | monitor_signal(regs); | ||
| 296 | /* Are we prepared to handle this kernel fault? */ | 292 | /* Are we prepared to handle this kernel fault? */ |
| 297 | if (fixup_exception(regs)) | 293 | if (fixup_exception(regs)) |
| 298 | return; | 294 | return; |
| @@ -345,7 +341,6 @@ out_of_memory: | |||
| 345 | 341 | ||
| 346 | do_sigbus: | 342 | do_sigbus: |
| 347 | up_read(&mm->mmap_sem); | 343 | up_read(&mm->mmap_sem); |
| 348 | monitor_signal(regs); | ||
| 349 | 344 | ||
| 350 | /* | 345 | /* |
| 351 | * Send a sigbus, regardless of whether we were in kernel | 346 | * Send a sigbus, regardless of whether we were in kernel |
