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

Reply via email to