mips32_pracc: jump to 0xff20.0200 if cpu reads wrong addr
[openocd.git] / src / target / mips32_pracc.c
index bce31ba544b48a26f67d20ff8281efabd8d3df8d..d0ecba2fd844ebaee8aceee8c23d647b9e9d7166 100644 (file)
@@ -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.
+                * Since this instruction is limited to
+                * 26bit, we need to do some magic to fit it to our needs. */
+               LOG_DEBUG("Reading unexpected address. Jump to 0xFF200200\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;
        }

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)