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 Getzvoid kgdb_serial_init(void) 170c909551SRobin Getz { 180c909551SRobin Getz puts("[on serial] "); 190c909551SRobin Getz } 200c909551SRobin Getz 210c909551SRobin Getz __attribute__((weak)) putDebugChar(int c)220c909551SRobin Getzvoid putDebugChar(int c) 230c909551SRobin Getz { 240c909551SRobin Getz serial_putc(c); 250c909551SRobin Getz } 260c909551SRobin Getz 270c909551SRobin Getz __attribute__((weak)) putDebugStr(const char * str)280c909551SRobin Getzvoid 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 Getzint getDebugChar(void) 370c909551SRobin Getz { 380c909551SRobin Getz return serial_getc(); 390c909551SRobin Getz } 400c909551SRobin Getz 410c909551SRobin Getz __attribute__((weak)) kgdb_interruptible(int yes)420c909551SRobin Getzvoid 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 Getzvoid 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 Getzvoid 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