summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2002-03-08 16:26:03 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2002-03-08 16:26:03 +0000
commitffdc6591eeb8639f57dc5ab1c9fc5b25c2b8f950 (patch)
tree72e890af90bf212a78c8ef367813fda7aec6de77 /c
parent2002-03-05 Greg Menke <gregory.menke@gsfc.nasa.gov> (diff)
downloadrtems-ffdc6591eeb8639f57dc5ab1c9fc5b25c2b8f950.tar.bz2
2002-03-05 Greg Menke <gregory.menke@gsfc.nasa.gov>
* startup/gdb-support.c: Added calls into the mips-support gdb stub for configuring the memory regions. Any bsp that wants to use the gdbstub will need to do something similar. * startup/Makefile.am: Added shared/gdbstub directory to include path.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/mips/genmongoosev/ChangeLog7
-rw-r--r--c/src/lib/libbsp/mips/genmongoosev/startup/Makefile.am2
-rw-r--r--c/src/lib/libbsp/mips/genmongoosev/startup/gdb-support.c50
3 files changed, 53 insertions, 6 deletions
diff --git a/c/src/lib/libbsp/mips/genmongoosev/ChangeLog b/c/src/lib/libbsp/mips/genmongoosev/ChangeLog
index a065277c95..6bc1a2397d 100644
--- a/c/src/lib/libbsp/mips/genmongoosev/ChangeLog
+++ b/c/src/lib/libbsp/mips/genmongoosev/ChangeLog
@@ -1,3 +1,10 @@
+2002-03-05 Greg Menke <gregory.menke@gsfc.nasa.gov>
+
+ * startup/gdb-support.c: Added calls into the mips-support gdb stub
+ for configuring the memory regions. Any bsp that wants to use the
+ gdbstub will need to do something similar.
+ * startup/Makefile.am: Added shared/gdbstub directory to include path.
+
2002-02-27 Greg Menke <gregory.menke@gsfc.nasa.gov>
* start/start.S: Added kseg1 test to enable cache flush code
diff --git a/c/src/lib/libbsp/mips/genmongoosev/startup/Makefile.am b/c/src/lib/libbsp/mips/genmongoosev/startup/Makefile.am
index f0ff499f67..0fb52c2f8a 100644
--- a/c/src/lib/libbsp/mips/genmongoosev/startup/Makefile.am
+++ b/c/src/lib/libbsp/mips/genmongoosev/startup/Makefile.am
@@ -22,6 +22,8 @@ include $(top_srcdir)/../../../../../../automake/lib.am
# (OPTIONAL) Add local stuff here using +=
#
+AM_CPPFLAGS += -I @srcdir@/../../shared/gdbstub
+
$(PGM): $(OBJS)
$(make-rel)
diff --git a/c/src/lib/libbsp/mips/genmongoosev/startup/gdb-support.c b/c/src/lib/libbsp/mips/genmongoosev/startup/gdb-support.c
index 5aebbb936a..fed5437137 100644
--- a/c/src/lib/libbsp/mips/genmongoosev/startup/gdb-support.c
+++ b/c/src/lib/libbsp/mips/genmongoosev/startup/gdb-support.c
@@ -14,6 +14,7 @@
#include <rtems.h>
#include <rtems/bspIo.h>
#include <libcpu/mongoose-v.h>
+#include "gdb_if.h"
#include <rtems/libio.h>
@@ -36,10 +37,9 @@ extern void mg5uart_write_polled(int minor, char c );
extern int mg5uart_inbyte_nonblocking_polled(int minor);
-extern void mips_gdb_stub_install(void);
+static int debugUartEnabled = 0;
-static int debugUartEnabled = 0;
@@ -61,24 +61,36 @@ int mg5rdbgOpenGDBuart(int breakoninit)
printf("gdbstub: Failed to configure UART 2 for 19200N82\n");
return -1;
}
+ printf("gdbstub: UART 2 configured for 19200N82\n");
debugUartEnabled = -1;
/* set up vectoring for gdb */
- mips_gdb_stub_install();
+ mips_gdb_stub_install(-1);
+
+ /*
+ this is a rough approximation of our memory map. Yours is
+ probably different. It only needs to be sufficient for the stub
+ to know what it can and can't do and where.
+ */
+ gdbstub_add_memsegment(0 , 0x8001ffff, MEMOPT_READABLE );
+ gdbstub_add_memsegment(0x80020000, 0x80afffff, MEMOPT_READABLE | MEMOPT_WRITEABLE );
+ gdbstub_add_memsegment(0x80b00000, 0x814fffff, MEMOPT_READABLE );
+ gdbstub_add_memsegment(0x81500000, 0x81ffffff, MEMOPT_READABLE | MEMOPT_WRITEABLE );
- printf("gdbstub: Remote GDB stub listening on UART 2 at 19200N82\n");
if( breakoninit )
{
+ printf("gdbstub: GDB stub entered, connect host debugger now\n");
/*
break to gdb. We'll wait there for the operator to get their gdb
going, then they can 'continue' or do whatever.
*/
mips_break(0);
+ printf("gdbstub: User code running\n");
}
-
- printf("gdbstub: User code running\n");
+ else
+ printf("gdbstub: GDB stub ready for exceptions\n");
return RTEMS_SUCCESSFUL;
}
@@ -113,3 +125,29 @@ void putDebugChar (char c)
return mg5uart_write_polled(1,c);
}
+
+
+
+/*
+ {
+ * initialize hardware pc and data breakpoints to quiet state*
+ unsigned32 dcic, reg, mask;
+
+ reg = 0xffffffff;
+ mask = 0xffffffff;
+
+ mips_set_bpcrm( reg, mask );
+ mips_set_bdarm( reg, mask );
+
+ mips_get_dcic( dcic );
+ * configure dcic for trapping, user & kernel mode, PC traps and enable it *
+ dcic = DCIC_TR | DCIC_UD | DCIC_KD | DCIC_PCE | DCIC_DE;
+ * dcic = DCIC_UD | DCIC_KD | DCIC_PCE | DCIC_DE; *
+ mips_set_dcic( dcic );
+
+ mips_get_bpcrm( reg, mask );
+ mips_get_dcic( dcic );
+ * printf("bpc is %08X, bpc_mask is %08X, dcic is now %08X\n", reg, mask, dcic ); *
+ }
+*/
+