This is an automated email from Gerrit.

Oleksij Rempel ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/1353

-- gerrit

commit 0072517289c90c23495cfaa2143a682670002ca8
Author: Oleksij Rempel <[email protected]>
Date:   Sat Apr 20 14:27:39 2013 +0200

    mips32_pracc: jump to 0xff20.0200 if cpu reads wrong addr
    
    On some CPUs, like bcm7401 with EJTAG v2.0 we can have situation where
    CPU do not stops execution. For example, all CP0 commands will have this 
issue.
    In this case we should some hove recover our session. Currently
    jump to 0xff20.0200 seems to be goot option. If it brake some thing on
    newer EJTAG, then check for EJTAG v2.0 should be added.
    
    Change-Id: Icd8841f38a1a85e0f7682b6dc358af8dfaae0744
    Signed-off-by: Oleksij Rempel <[email protected]>

diff --git a/src/target/mips32_pracc.c b/src/target/mips32_pracc.c
index 87e712b..797fe07 100644
--- a/src/target/mips32_pracc.c
+++ b/src/target/mips32_pracc.c
@@ -153,10 +153,15 @@ static int mips32_pracc_exec_read(struct 
mips32_pracc_context *ctx, uint32_t add
                }
                /* save to our debug stack */
                data = ctx->stack[--ctx->stack_offset];
+       } else if (address >= 0xFF200000) {
+               /* CPU keeps reading at the end of execution.
+                * If we after 0xF0000000  address range, we can use
+                * one shot jump instruction.
+                * Sinse this instructiuon is limited to
+                * 26bit, we need to do some magic to fit it to our needs. */
+               LOG_DEBUG("Reading unexpected address. Jump to 0xFF200000\n");
+               data = MIPS32_J((0x0FFFFFFF & 0xFF200200) >> 2);
        } else {
-               /* TODO: send JMP 0xFF200000 instruction. Hopefully processor 
jump back
-                * to start of debug vector */
-
                LOG_ERROR("Error reading unexpected address 0x%8.8" PRIx32 "", 
address);
                return ERROR_JTAG_DEVICE_ERROR;
        }

-- 

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to