From 7de51ceef9741b7d2bed6b34194345c5be90f6a1 Mon Sep 17 00:00:00 2001 From: oharboe Date: Sun, 13 Apr 2008 11:42:49 +0000 Subject: allows launching OpenOCD w/telnet+gdb server w/the target powered down. git-svn-id: svn://svn.berlios.de/openocd/trunk@570 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/openocd.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/openocd.c b/src/openocd.c index 3c7816ea..449736e1 100644 --- a/src/openocd.c +++ b/src/openocd.c @@ -85,6 +85,7 @@ void exit_handler(void) /* OpenOCD can't really handle failure of this command. Patches welcome! :-) */ int handle_init_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { + int retval; static int initialized=0; if (initialized) return ERROR_OK; @@ -95,21 +96,30 @@ int handle_init_command(struct command_context_s *cmd_ctx, char *cmd, char **arg atexit(exit_handler); - /* FIX!!! this should happen *after* target_init(), but - * for now there are target initialisations that talk - * to JTAG whereas that *should* happen during target_examine() - */ - if (jtag_init(cmd_ctx) != ERROR_OK) - return ERROR_FAIL; - LOG_DEBUG("jtag init complete"); - + if (target_init(cmd_ctx) != ERROR_OK) return ERROR_FAIL; LOG_DEBUG("target init complete"); - if (target_examine(cmd_ctx) != ERROR_OK) - return ERROR_FAIL; - LOG_DEBUG("target examine complete"); + if ((retval=jtag_interface_init(cmd_ctx)) != ERROR_OK) + { + /* we must be able to set up the jtag interface */ + return retval; + } + LOG_DEBUG("jtag interface init complete"); + + /* Try to initialize & examine the JTAG chain at this point, but + * continue startup regardless + */ + if (jtag_init(cmd_ctx) == ERROR_OK) + { + LOG_DEBUG("jtag init complete"); + if (target_examine(cmd_ctx) == ERROR_OK) + { + LOG_DEBUG("jtag examine complete"); + } + } + if (flash_init_drivers(cmd_ctx) != ERROR_OK) return ERROR_FAIL; -- cgit v1.2.3