aboutsummaryrefslogtreecommitdiff
path: root/gdb/ppc-bdm.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/ppc-bdm.c')
-rw-r--r--gdb/ppc-bdm.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/gdb/ppc-bdm.c b/gdb/ppc-bdm.c
index 38878d0..dcc2690 100644
--- a/gdb/ppc-bdm.c
+++ b/gdb/ppc-bdm.c
@@ -50,12 +50,23 @@ extern struct target_ops bdm_ppc_ops; /* Forward decl */
/* Open a connection to a remote debugger.
NAME is the filename used for communication. */
+char nowatchdog[4] = {0xff,0xff,0xff,0x88};
+
static void
bdm_ppc_open (name, from_tty)
char *name;
int from_tty;
{
+ CORE_ADDR watchdogaddr = 0xff000004;
+
ocd_open (name, from_tty, OCD_TARGET_MOTO_PPC, &bdm_ppc_ops);
+
+ /* We want interrupts to drop us into debugging mode. */
+ /* Modify the DER register to accomplish this. */
+ ocd_write_bdm_register (149, 0x20024000);
+
+ /* Disable watchdog timer on the board */
+ ocd_write_bytes (watchdogaddr, nowatchdog, 4);
}
/* Wait until the remote machine stops, then return,
@@ -225,8 +236,8 @@ struct target_ops bdm_ppc_ops = {
ocd_prepare_to_store, /* to_prepare_to_store */
ocd_xfer_memory, /* to_xfer_memory */
ocd_files_info, /* to_files_info */
- memory_insert_breakpoint, /* to_insert_breakpoint */
- memory_remove_breakpoint, /* to_remove_breakpoint */
+ ocd_insert_breakpoint, /* to_insert_breakpoint */
+ ocd_remove_breakpoint, /* to_remove_breakpoint */
NULL, /* to_terminal_init */
NULL, /* to_terminal_inferior */
NULL, /* to_terminal_ours_for_output */