Add a return value to kgdb_init and use it directly in the post-relocation init sequence, rather than using a wrapper stub. Also, move the "KGDB" print message inside kgdb_init().
Reviewed-by: Simon Glass <s...@chromium.org> Signed-off-by: Ovidiu Panait <ovidiu.pan...@windriver.com> --- Changes in v2: - drop extern and add function comment common/board_r.c | 11 +---------- common/kgdb.c | 7 +++++-- include/kgdb.h | 11 ++++++++++- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/common/board_r.c b/common/board_r.c index cc0e6fa92e..5905921caa 100644 --- a/common/board_r.c +++ b/common/board_r.c @@ -498,15 +498,6 @@ static int initr_ethaddr(void) } #endif /* CONFIG_CMD_NET */ -#ifdef CONFIG_CMD_KGDB -static int initr_kgdb(void) -{ - puts("KGDB: "); - kgdb_init(); - return 0; -} -#endif - #if defined(CONFIG_LED_STATUS) static int initr_status_led(void) { @@ -745,7 +736,7 @@ static init_fnc_t init_sequence_r[] = { #endif INIT_FUNC_WATCHDOG_RESET #ifdef CONFIG_CMD_KGDB - initr_kgdb, + kgdb_init, #endif interrupt_init, #if defined(CONFIG_MICROBLAZE) || defined(CONFIG_M68K) diff --git a/common/kgdb.c b/common/kgdb.c index 4493a15919..29b09fcfe5 100644 --- a/common/kgdb.c +++ b/common/kgdb.c @@ -527,15 +527,18 @@ handle_exception (struct pt_regs *regs) * kgdb_init must be called *after* the * monitor is relocated into ram */ -void -kgdb_init(void) +int kgdb_init(void) { + puts("KGDB: "); + kgdb_serial_init(); debugger_exception_handler = handle_exception; initialized = 1; putDebugStr("kgdb ready\n"); puts("ready\n"); + + return 0; } void diff --git a/include/kgdb.h b/include/kgdb.h index 616ce4451f..bdba347a7f 100644 --- a/include/kgdb.h +++ b/include/kgdb.h @@ -39,7 +39,16 @@ typedef kgdb_data; /* these functions are provided by the generic kgdb support */ -extern void kgdb_init(void); +/** + * kgdb_init() + * + * Perform initializations to allow debugging U-Boot with gdb over a serial + * link. It is called during the generic board init sequence. + * + * Return: 0 if OK + */ +int kgdb_init(void); + extern void kgdb_error(int); extern int kgdb_output_string(const char *, unsigned int); extern void breakpoint(void); -- 2.25.1