diff --git a/src/bootloader/Makefile b/src/bootloader/Makefile index 726e226..12a0a68 100644 --- a/src/bootloader/Makefile +++ b/src/bootloader/Makefile @@ -12,7 +12,7 @@ else ENDIAN_FLAGS=-EB endif -CFLAGS=$(ENDIAN_FLAGS) -Os -flto -Wl,-M -I. -I../libsys -msoft-float -march=r3000 -G0 -I../libsys/boards/$(BOARD) -D$(BOARD) +CFLAGS=$(ENDIAN_FLAGS) -Os -flto -Wl,-M -I. -I../libsys -msoft-float -march=r3000 -G0 -I../libsys/boards/$(BOARD) -D$(BOARD) -DWITH_GDB_STUB LFLAGS=$(ENDIAN_FLAGS) -Os -flto ifeq ($(TLB),yes) diff --git a/src/bootloader/boards/denano/board.c b/src/bootloader/boards/denano/board.c index 797cd68..5dc45d8 100644 --- a/src/bootloader/boards/denano/board.c +++ b/src/bootloader/boards/denano/board.c @@ -13,11 +13,17 @@ extern uart_if_t uart_if[]; extern void handle_exception (unsigned long *registers); -extern int gdb_stub(struct xcptcontext * xcp) __attribute__ ((section (".gdb"))) __attribute__ ((used)); -int gdb_stub(struct xcptcontext * xcp) +extern int dbg_stub(struct xcptcontext * xcp) __attribute__ ((section (".dbg_stub"))) __attribute__ ((used)); + +int dbg_stub(struct xcptcontext * xcp) { +#ifdef WITH_GDB_STUB handle_exception((unsigned long *)xcp); return 0; +#else + return dbg_handler(xcp); +#endif + } void dbg_putchar(char c) diff --git a/src/bootloader/bootloader.ld b/src/bootloader/bootloader.ld index f23b5b1..92faeed 100644 --- a/src/bootloader/bootloader.ld +++ b/src/bootloader/bootloader.ld @@ -22,7 +22,7 @@ SECTIONS *(.text*) *(.rodata*) . = ORIGIN(rom) + 0x1F00; - *(.gdb*) + *(.dbg_stub*) } > rom .data ORIGIN(ram) : diff --git a/src/libsys/gdb_stub.c b/src/libsys/gdb_stub.c index d96e814..b551b63 100644 --- a/src/libsys/gdb_stub.c +++ b/src/libsys/gdb_stub.c @@ -116,7 +116,7 @@ void flush_i_cache() /* at least NUMREGBYTES*2 are needed for register packets */ #define BUFMAX 2048 -static const char hexchars[]="0123456789abcdef"; +const char hexchars[]="0123456789abcdef"; #define NUMREGS 72 diff --git a/src/libsys/kernel.S b/src/libsys/kernel.S index 354890b..ef08cb4 100644 --- a/src/libsys/kernel.S +++ b/src/libsys/kernel.S @@ -5,8 +5,7 @@ .section .exc_vect, "ax" .align 2 _xcpt_vector_tbl: - la k0, _xcpt_handler - jr k0 + j _xcpt_handler nop .text