blob: 256d88697d7e5b2d879b94841624f5071e4b0b72 [file] [log] [blame]
Robin Getzed9d08e2009-12-21 18:40:42 -05001/*
Bin Meng75574052016-02-05 19:30:11 -08002 * U-Boot - stub functions for common kgdb code,
Robin Getzed9d08e2009-12-21 18:40:42 -05003 * can be overridden in board specific files
4 *
5 * Copyright 2009 Analog Devices Inc.
6 *
7 * Licensed under the GPL-2 or later.
8 */
9
Simon Glass1d91ba72019-11-14 12:57:37 -070010#include <cpu_func.h>
Robin Getzed9d08e2009-12-21 18:40:42 -050011#include <kgdb.h>
Simon Glass36736182019-11-14 12:57:24 -070012#include <serial.h>
Simon Glass6b9f0102020-05-10 11:40:06 -060013#include <asm/ptrace.h>
Robin Getzed9d08e2009-12-21 18:40:42 -050014
15int (*debugger_exception_handler)(struct pt_regs *);
16
17__attribute__((weak))
18void kgdb_serial_init(void)
19{
20 puts("[on serial] ");
21}
22
23__attribute__((weak))
24void putDebugChar(int c)
25{
26 serial_putc(c);
27}
28
29__attribute__((weak))
30void putDebugStr(const char *str)
31{
32#ifdef DEBUG
33 serial_puts(str);
34#endif
35}
36
37__attribute__((weak))
38int getDebugChar(void)
39{
40 return serial_getc();
41}
42
43__attribute__((weak))
44void kgdb_interruptible(int yes)
45{
46 return;
47}
48
49__attribute__((weak))
50void kgdb_flush_cache_range(void *from, void *to)
51{
52 flush_cache((unsigned long)from, (unsigned long)(to - from));
53}
54
55__attribute__((weak))
56void kgdb_flush_cache_all(void)
57{
58 if (dcache_status()) {
59 dcache_disable();
60 dcache_enable();
61 }
62 if (icache_status()) {
63 icache_disable();
64 icache_enable();
65 }
66}