xref: /rk3399_rockchip-uboot/common/kgdb_stubs.c (revision 57dc53a72460e8e301fa1cc7951b41db8e731485)
10c909551SRobin Getz /*
2*a187559eSBin Meng  * U-Boot - stub functions for common kgdb code,
30c909551SRobin Getz  *          can be overridden in board specific files
40c909551SRobin Getz  *
50c909551SRobin Getz  * Copyright 2009 Analog Devices Inc.
60c909551SRobin Getz  *
70c909551SRobin Getz  * Licensed under the GPL-2 or later.
80c909551SRobin Getz  */
90c909551SRobin Getz 
100c909551SRobin Getz #include <common.h>
110c909551SRobin Getz #include <kgdb.h>
120c909551SRobin Getz 
130c909551SRobin Getz int (*debugger_exception_handler)(struct pt_regs *);
140c909551SRobin Getz 
150c909551SRobin Getz __attribute__((weak))
kgdb_serial_init(void)160c909551SRobin Getz void kgdb_serial_init(void)
170c909551SRobin Getz {
180c909551SRobin Getz 	puts("[on serial] ");
190c909551SRobin Getz }
200c909551SRobin Getz 
210c909551SRobin Getz __attribute__((weak))
putDebugChar(int c)220c909551SRobin Getz void putDebugChar(int c)
230c909551SRobin Getz {
240c909551SRobin Getz 	serial_putc(c);
250c909551SRobin Getz }
260c909551SRobin Getz 
270c909551SRobin Getz __attribute__((weak))
putDebugStr(const char * str)280c909551SRobin Getz void putDebugStr(const char *str)
290c909551SRobin Getz {
300c909551SRobin Getz #ifdef DEBUG
310c909551SRobin Getz 	serial_puts(str);
320c909551SRobin Getz #endif
330c909551SRobin Getz }
340c909551SRobin Getz 
350c909551SRobin Getz __attribute__((weak))
getDebugChar(void)360c909551SRobin Getz int getDebugChar(void)
370c909551SRobin Getz {
380c909551SRobin Getz 	return serial_getc();
390c909551SRobin Getz }
400c909551SRobin Getz 
410c909551SRobin Getz __attribute__((weak))
kgdb_interruptible(int yes)420c909551SRobin Getz void kgdb_interruptible(int yes)
430c909551SRobin Getz {
440c909551SRobin Getz 	return;
450c909551SRobin Getz }
460c909551SRobin Getz 
470c909551SRobin Getz __attribute__((weak))
kgdb_flush_cache_range(void * from,void * to)480c909551SRobin Getz void kgdb_flush_cache_range(void *from, void *to)
490c909551SRobin Getz {
500c909551SRobin Getz 	flush_cache((unsigned long)from, (unsigned long)(to - from));
510c909551SRobin Getz }
520c909551SRobin Getz 
530c909551SRobin Getz __attribute__((weak))
kgdb_flush_cache_all(void)540c909551SRobin Getz void kgdb_flush_cache_all(void)
550c909551SRobin Getz {
560c909551SRobin Getz 	if (dcache_status()) {
570c909551SRobin Getz 		dcache_disable();
580c909551SRobin Getz 		dcache_enable();
590c909551SRobin Getz 	}
600c909551SRobin Getz 	if (icache_status()) {
610c909551SRobin Getz 		icache_disable();
620c909551SRobin Getz 		icache_enable();
630c909551SRobin Getz 	}
640c909551SRobin Getz }
65