On Sun, 1 Mar 2009, Øyvind Harboe wrote:

> Please verify that all patches were committed correctly.

Yes, thanks.

Now I have another problem with the current code when it comes to reset 
and halt.  There used to be a time when the halt command didn't imply 
wait_halt.  now wait_halt is unconditional and this prevents me from 
reliably halt the system from the very start.  On Feroceon' things go 
like:

 - assert nSRST

 - set DBGRQ (no change on DBGACK expected)

 - release nSRST

 - only now DBGACK gets set

So for the "reset init" or "reset halt" commands, I'd need something 
like:

        jtag_reset 0 1
        halt -1
        jtag_reset 0 0
        wait_halt

See patch below.  Any suggestion as to how this should properly be 
supported?

diff --git a/src/target/board/sheevaplug.cfg b/src/target/board/sheevaplug.cfg
index e9c6832..4782e29 100644
--- a/src/target/board/sheevaplug.cfg
+++ b/src/target/board/sheevaplug.cfg
@@ -17,6 +17,11 @@ nand device orion 0 0xd8000000
 
 proc sheevaplug_init { } {
 
+       jtag_reset 0 1
+       halt -1
+       jtag_reset 0 0
+       wait_halt
+
        arm926ejs cp15 0 0 1 0 0x00052078
 
        mww 0xD0001400 0x43000C30 #  DDR SDRAM Configuration Register
diff --git a/src/target/target.c b/src/target/target.c
index 70660e3..5ab6196 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -1757,6 +1757,9 @@ int handle_halt_command(struct command_context_s 
*cmd_ctx, char *cmd, char **arg
                return retval;
        }
 
+       if (argc == 1 && strcmp(args[0], "-1") == 0)
+               return ERROR_OK;
+
        return handle_wait_halt_command(cmd_ctx, cmd, args, argc);
 }
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to