MN10300: Remove monitor/JTAG functions
Remove the monitor trap function and the set_jtag_stub function as they're not really necessary. Signed-off-by: Akira Takeuchi <takeuchi.akr@jp.panasonic.com> Signed-off-by: Kiyoshi Owada <owada.kiyoshi@jp.panasonic.com> Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
parent
8fbbf7c76a
commit
86c0f935c1
4 changed files with 2 additions and 55 deletions
|
@ -15,8 +15,8 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* define the breakpoint instruction opcode to use
|
* define the breakpoint instruction opcode to use
|
||||||
* - note that the JTAG unit steals 0xFF, so we want to avoid that if we can
|
* - note that the JTAG unit steals 0xFF, so you can't use JTAG and GDBSTUB at
|
||||||
* (can use 0xF7)
|
* the same time.
|
||||||
*/
|
*/
|
||||||
#define GDBSTUB_BKPT 0xFF
|
#define GDBSTUB_BKPT 0xFF
|
||||||
|
|
||||||
|
@ -90,7 +90,6 @@ enum exception_code {
|
||||||
|
|
||||||
extern void __set_intr_stub(enum exception_code code, void *handler);
|
extern void __set_intr_stub(enum exception_code code, void *handler);
|
||||||
extern void set_intr_stub(enum exception_code code, void *handler);
|
extern void set_intr_stub(enum exception_code code, void *handler);
|
||||||
extern void set_jtag_stub(enum exception_code code, void *handler);
|
|
||||||
|
|
||||||
struct pt_regs;
|
struct pt_regs;
|
||||||
|
|
||||||
|
|
|
@ -214,31 +214,6 @@ ENTRY(irq_handler)
|
||||||
|
|
||||||
jmp ret_from_intr
|
jmp ret_from_intr
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
#
|
|
||||||
# Monitor Signal handler entry point
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
ENTRY(monitor_signal)
|
|
||||||
movbu (0xae000001),d1
|
|
||||||
cmp 1,d1
|
|
||||||
beq monsignal
|
|
||||||
ret [],0
|
|
||||||
|
|
||||||
monsignal:
|
|
||||||
or EPSW_NMID,epsw
|
|
||||||
mov d0,a0
|
|
||||||
mov a0,sp
|
|
||||||
mov (REG_EPSW,fp),d1
|
|
||||||
and ~EPSW_nSL,d1
|
|
||||||
mov d1,(REG_EPSW,fp)
|
|
||||||
movm (sp),[d2,d3,a2,a3,exreg0,exreg1,exother]
|
|
||||||
mov (sp),a1
|
|
||||||
mov a1,usp
|
|
||||||
movm (sp),[other]
|
|
||||||
add 4,sp
|
|
||||||
here: jmp 0x8e000008-here+0x8e000008
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
# Double Fault handler entry point
|
# Double Fault handler entry point
|
||||||
|
|
|
@ -537,28 +537,6 @@ void __init set_intr_stub(enum exception_code code, void *handler)
|
||||||
mn10300_icache_inv();
|
mn10300_icache_inv();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* set an interrupt stub to invoke the JTAG unit and then jump to a handler
|
|
||||||
*/
|
|
||||||
void __init set_jtag_stub(enum exception_code code, void *handler)
|
|
||||||
{
|
|
||||||
unsigned long addr;
|
|
||||||
u8 *vector = (u8 *)(CONFIG_INTERRUPT_VECTOR_BASE + code);
|
|
||||||
|
|
||||||
addr = (unsigned long) handler - ((unsigned long) vector + 1);
|
|
||||||
vector[0] = 0xff; /* PI to jump into JTAG debugger */
|
|
||||||
vector[1] = 0xdc; /* jmp handler */
|
|
||||||
vector[2] = addr;
|
|
||||||
vector[3] = addr >> 8;
|
|
||||||
vector[4] = addr >> 16;
|
|
||||||
vector[5] = addr >> 24;
|
|
||||||
vector[6] = 0xcb;
|
|
||||||
vector[7] = 0xcb;
|
|
||||||
|
|
||||||
mn10300_dcache_flush_inv();
|
|
||||||
flush_icache_range((unsigned long) vector, (unsigned long) vector + 8);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* initialise the exception table
|
* initialise the exception table
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -100,8 +100,6 @@ static void print_pagetable_entries(pgd_t *pgdir, unsigned long address)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
asmlinkage void monitor_signal(struct pt_regs *);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This routine handles page faults. It determines the address,
|
* This routine handles page faults. It determines the address,
|
||||||
* and the problem, and then passes it off to one of the appropriate
|
* and the problem, and then passes it off to one of the appropriate
|
||||||
|
@ -279,7 +277,6 @@ good_area:
|
||||||
*/
|
*/
|
||||||
bad_area:
|
bad_area:
|
||||||
up_read(&mm->mmap_sem);
|
up_read(&mm->mmap_sem);
|
||||||
monitor_signal(regs);
|
|
||||||
|
|
||||||
/* User mode accesses just cause a SIGSEGV */
|
/* User mode accesses just cause a SIGSEGV */
|
||||||
if ((fault_code & MMUFCR_xFC_ACCESS) == MMUFCR_xFC_ACCESS_USR) {
|
if ((fault_code & MMUFCR_xFC_ACCESS) == MMUFCR_xFC_ACCESS_USR) {
|
||||||
|
@ -292,7 +289,6 @@ bad_area:
|
||||||
}
|
}
|
||||||
|
|
||||||
no_context:
|
no_context:
|
||||||
monitor_signal(regs);
|
|
||||||
/* Are we prepared to handle this kernel fault? */
|
/* Are we prepared to handle this kernel fault? */
|
||||||
if (fixup_exception(regs))
|
if (fixup_exception(regs))
|
||||||
return;
|
return;
|
||||||
|
@ -345,7 +341,6 @@ out_of_memory:
|
||||||
|
|
||||||
do_sigbus:
|
do_sigbus:
|
||||||
up_read(&mm->mmap_sem);
|
up_read(&mm->mmap_sem);
|
||||||
monitor_signal(regs);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Send a sigbus, regardless of whether we were in kernel
|
* Send a sigbus, regardless of whether we were in kernel
|
||||||
|
|
Loading…
Add table
Reference in a new issue