From: Robin Getz Date: Mon, 21 Dec 2009 23:40:42 +0000 (-0500) Subject: kgdb: add default generic stubs X-Git-Tag: v2010.03-rc1~146 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=0c909551f88c0d92a919ff70127df7b33cdd473d;p=u-boot kgdb: add default generic stubs The default kgdb functions can be implemented with common U-Boot functions, so rather than force everyone to copy & paste these things, create a set of weak stubs. Signed-off-by: Robin Getz Signed-off-by: Mike Frysinger --- diff --git a/common/Makefile b/common/Makefile index 778418086c..13b3298793 100644 --- a/common/Makefile +++ b/common/Makefile @@ -157,7 +157,7 @@ COBJS-$(CONFIG_DDR_SPD) += ddr_spd.o COBJS-$(CONFIG_HWCONFIG) += hwconfig.o COBJS-$(CONFIG_CONSOLE_MUX) += iomux.o COBJS-y += flash.o -COBJS-$(CONFIG_CMD_KGDB) += kgdb.o +COBJS-$(CONFIG_CMD_KGDB) += kgdb.o kgdb_stubs.o COBJS-$(CONFIG_KALLSYMS) += kallsyms.o COBJS-$(CONFIG_LCD) += lcd.o COBJS-$(CONFIG_LYNXKDI) += lynxkdi.o diff --git a/common/kgdb_stubs.c b/common/kgdb_stubs.c new file mode 100644 index 0000000000..19b0c1824d --- /dev/null +++ b/common/kgdb_stubs.c @@ -0,0 +1,64 @@ +/* + * U-boot - stub functions for common kgdb code, + * can be overridden in board specific files + * + * Copyright 2009 Analog Devices Inc. + * + * Licensed under the GPL-2 or later. + */ + +#include +#include + +int (*debugger_exception_handler)(struct pt_regs *); + +__attribute__((weak)) +void kgdb_serial_init(void) +{ + puts("[on serial] "); +} + +__attribute__((weak)) +void putDebugChar(int c) +{ + serial_putc(c); +} + +__attribute__((weak)) +void putDebugStr(const char *str) +{ +#ifdef DEBUG + serial_puts(str); +#endif +} + +__attribute__((weak)) +int getDebugChar(void) +{ + return serial_getc(); +} + +__attribute__((weak)) +void kgdb_interruptible(int yes) +{ + return; +} + +__attribute__((weak)) +void kgdb_flush_cache_range(void *from, void *to) +{ + flush_cache((unsigned long)from, (unsigned long)(to - from)); +} + +__attribute__((weak)) +void kgdb_flush_cache_all(void) +{ + if (dcache_status()) { + dcache_disable(); + dcache_enable(); + } + if (icache_status()) { + icache_disable(); + icache_enable(); + } +}