diff options
Diffstat (limited to 'arch/mn10300/kernel/gdb-low.S')
-rw-r--r-- | arch/mn10300/kernel/gdb-low.S | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/arch/mn10300/kernel/gdb-low.S b/arch/mn10300/kernel/gdb-low.S new file mode 100644 index 000000000000..e2725552cd82 --- /dev/null +++ b/arch/mn10300/kernel/gdb-low.S | |||
@@ -0,0 +1,115 @@ | |||
1 | ############################################################################### | ||
2 | # | ||
3 | # MN10300 Low-level gdbstub routines | ||
4 | # | ||
5 | # Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. | ||
6 | # Written by David Howells (dhowells@redhat.com) | ||
7 | # | ||
8 | # This program is free software; you can redistribute it and/or | ||
9 | # modify it under the terms of the GNU General Public Licence | ||
10 | # as published by the Free Software Foundation; either version | ||
11 | # 2 of the Licence, or (at your option) any later version. | ||
12 | # | ||
13 | ############################################################################### | ||
14 | #include <linux/sys.h> | ||
15 | #include <linux/linkage.h> | ||
16 | #include <asm/smp.h> | ||
17 | #include <asm/cache.h> | ||
18 | #include <asm/cpu-regs.h> | ||
19 | #include <asm/exceptions.h> | ||
20 | #include <asm/frame.inc> | ||
21 | #include <asm/serial-regs.h> | ||
22 | |||
23 | .text | ||
24 | |||
25 | ############################################################################### | ||
26 | # | ||
27 | # GDB stub read memory with guard | ||
28 | # - D0 holds the memory address to read | ||
29 | # - D1 holds the address to store the byte into | ||
30 | # | ||
31 | ############################################################################### | ||
32 | .globl gdbstub_read_byte_guard | ||
33 | .globl gdbstub_read_byte_cont | ||
34 | ENTRY(gdbstub_read_byte) | ||
35 | mov d0,a0 | ||
36 | mov d1,a1 | ||
37 | clr d0 | ||
38 | gdbstub_read_byte_guard: | ||
39 | movbu (a0),d1 | ||
40 | gdbstub_read_byte_cont: | ||
41 | movbu d1,(a1) | ||
42 | ret [],0 | ||
43 | |||
44 | .globl gdbstub_read_word_guard | ||
45 | .globl gdbstub_read_word_cont | ||
46 | ENTRY(gdbstub_read_word) | ||
47 | mov d0,a0 | ||
48 | mov d1,a1 | ||
49 | clr d0 | ||
50 | gdbstub_read_word_guard: | ||
51 | movhu (a0),d1 | ||
52 | gdbstub_read_word_cont: | ||
53 | movhu d1,(a1) | ||
54 | ret [],0 | ||
55 | |||
56 | .globl gdbstub_read_dword_guard | ||
57 | .globl gdbstub_read_dword_cont | ||
58 | ENTRY(gdbstub_read_dword) | ||
59 | mov d0,a0 | ||
60 | mov d1,a1 | ||
61 | clr d0 | ||
62 | gdbstub_read_dword_guard: | ||
63 | mov (a0),d1 | ||
64 | gdbstub_read_dword_cont: | ||
65 | mov d1,(a1) | ||
66 | ret [],0 | ||
67 | |||
68 | ############################################################################### | ||
69 | # | ||
70 | # GDB stub write memory with guard | ||
71 | # - D0 holds the byte to store | ||
72 | # - D1 holds the memory address to write | ||
73 | # | ||
74 | ############################################################################### | ||
75 | .globl gdbstub_write_byte_guard | ||
76 | .globl gdbstub_write_byte_cont | ||
77 | ENTRY(gdbstub_write_byte) | ||
78 | mov d0,a0 | ||
79 | mov d1,a1 | ||
80 | clr d0 | ||
81 | gdbstub_write_byte_guard: | ||
82 | movbu a0,(a1) | ||
83 | gdbstub_write_byte_cont: | ||
84 | ret [],0 | ||
85 | |||
86 | .globl gdbstub_write_word_guard | ||
87 | .globl gdbstub_write_word_cont | ||
88 | ENTRY(gdbstub_write_word) | ||
89 | mov d0,a0 | ||
90 | mov d1,a1 | ||
91 | clr d0 | ||
92 | gdbstub_write_word_guard: | ||
93 | movhu a0,(a1) | ||
94 | gdbstub_write_word_cont: | ||
95 | ret [],0 | ||
96 | |||
97 | .globl gdbstub_write_dword_guard | ||
98 | .globl gdbstub_write_dword_cont | ||
99 | ENTRY(gdbstub_write_dword) | ||
100 | mov d0,a0 | ||
101 | mov d1,a1 | ||
102 | clr d0 | ||
103 | gdbstub_write_dword_guard: | ||
104 | mov a0,(a1) | ||
105 | gdbstub_write_dword_cont: | ||
106 | ret [],0 | ||
107 | |||
108 | ############################################################################### | ||
109 | # | ||
110 | # GDB stub BUG() trap | ||
111 | # | ||
112 | ############################################################################### | ||
113 | ENTRY(__gdbstub_bug_trap) | ||
114 | .byte 0xF7,0xF7 # don't use 0xFF as the JTAG unit preempts that | ||
115 | ret [],0 | ||