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 |