Commit | Line | Data |
---|---|---|
b920de1b DH |
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 |