############################################################################### # # MN10300 Low-level gdbstub routines # # Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. # Written by David Howells (dhowells@redhat.com) # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public Licence # as published by the Free Software Foundation; either version # 2 of the Licence, or (at your option) any later version. # ############################################################################### #include <linux/sys.h> #include <linux/linkage.h> #include <asm/smp.h> #include <asm/cache.h> #include <asm/cpu-regs.h> #include <asm/exceptions.h> #include <asm/frame.inc> #include <asm/serial-regs.h> .text ############################################################################### # # GDB stub read memory with guard # - D0 holds the memory address to read # - D1 holds the address to store the byte into # ############################################################################### .globl gdbstub_read_byte_guard .globl gdbstub_read_byte_cont ENTRY(gdbstub_read_byte) mov d0,a0 mov d1,a1 clr d0 gdbstub_read_byte_guard: movbu (a0),d1 gdbstub_read_byte_cont: movbu d1,(a1) ret [],0 .globl gdbstub_read_word_guard .globl gdbstub_read_word_cont ENTRY(gdbstub_read_word) mov d0,a0 mov d1,a1 clr d0 gdbstub_read_word_guard: movhu (a0),d1 gdbstub_read_word_cont: movhu d1,(a1) ret [],0 .globl gdbstub_read_dword_guard .globl gdbstub_read_dword_cont ENTRY(gdbstub_read_dword) mov d0,a0 mov d1,a1 clr d0 gdbstub_read_dword_guard: mov (a0),d1 gdbstub_read_dword_cont: mov d1,(a1) ret [],0 ############################################################################### # # GDB stub write memory with guard # - D0 holds the byte to store # - D1 holds the memory address to write # ############################################################################### .globl gdbstub_write_byte_guard .globl gdbstub_write_byte_cont ENTRY(gdbstub_write_byte) mov d0,a0 mov d1,a1 clr d0 gdbstub_write_byte_guard: movbu a0,(a1) gdbstub_write_byte_cont: ret [],0 .globl gdbstub_write_word_guard .globl gdbstub_write_word_cont ENTRY(gdbstub_write_word) mov d0,a0 mov d1,a1 clr d0 gdbstub_write_word_guard: movhu a0,(a1) gdbstub_write_word_cont: ret [],0 .globl gdbstub_write_dword_guard .globl gdbstub_write_dword_cont ENTRY(gdbstub_write_dword) mov d0,a0 mov d1,a1 clr d0 gdbstub_write_dword_guard: mov a0,(a1) gdbstub_write_dword_cont: ret [],0 ############################################################################### # # GDB stub BUG() trap # ############################################################################### ENTRY(__gdbstub_bug_trap) .byte 0xF7,0xF7 # don't use 0xFF as the JTAG unit preempts that ret [],0