Another issue: "runtest" is broken now too ... your "target: factor init
to 'target init'" patch broke it by previnting JTAG event handlers from
using methods like "runtest" (which is essential for some platforms).

I'm checking in the following patch, since it fixes the regression,
but I'm not sure what the issue might be with the other stuff.

- Dave

======= CUT HERE
From: David Brownell <dbrown...@users.sourceforge.net>
Subject: fix another init regression

This makes Beagle work again, instead of losing horribly because
the JTAG event handlers are no longer able to e.g. "runtest".  I
get the previous quirky behavior ... comes up OK but "reset halt"
somewhat mysteriously makes it all better.  (Instead of nothing
being able to work at all...)  However, I'm still seeing:

 The 'init' command must be used before 'init'.

That seems to come from invoking "jtag init", sometime after it
gets mapped to "ocd_jtag init", according to debug message traces.
---
 src/openocd.c |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

--- a/src/openocd.c
+++ b/src/openocd.c
@@ -121,18 +121,21 @@ COMMAND_HANDLER(handle_init_command)
        }
        LOG_DEBUG("jtag interface init complete");
 
-       /* Try to initialize & examine the JTAG chain at this point, but
-        * continue startup regardless */
+       /* Try to initialize & examine the JTAG chain at this point,
+        * but continue startup regardless.  Note that platforms
+        * need to be able to provide JTAG event handlers that use
+        * a variety of JTAG operations in order to do that...
+        */
+       command_context_mode(CMD_CTX, COMMAND_EXEC);
        if (command_run_line(CMD_CTX, "jtag init") == ERROR_OK)
        {
-               command_context_mode(CMD_CTX, COMMAND_EXEC);
                LOG_DEBUG("Examining targets...");
                if (target_examine() != ERROR_OK)
                        LOG_DEBUG("target examination failed");
-               command_context_mode(CMD_CTX, COMMAND_CONFIG);
        }
        else
                LOG_WARNING("jtag initialization failed; try 'jtag init' 
again.");
+       command_context_mode(CMD_CTX, COMMAND_CONFIG);
 
        if (command_run_line(CMD_CTX, "flash init") != ERROR_OK)
                return ERROR_FAIL;

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to