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 <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Robin Getz 2009-12-21 18:40:42 -05:00 committed by Wolfgang Denk
parent fa2744de65
commit 0c909551f8
2 changed files with 65 additions and 1 deletions

View file

@ -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

64
common/kgdb_stubs.c Normal file
View file

@ -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 <common.h>
#include <kgdb.h>
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();
}
}