* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
***************************************************************************/
/*
}
/* 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;
}