Browse Source

mips: support connecting under reset

Some targets support connecting while the target's srst is asserted.
Tested on pic32 family.

Change-Id: I0d20c40af6d031d1306043893e95e61f484c0a87
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/608
Tested-by: jenkins
tags/v0.6.0-rc1
Spencer Oliver 10 years ago
parent
commit
57260831dd
1 changed files with 12 additions and 5 deletions
  1. +12
    -5
      src/target/mips_m4k.c

+ 12
- 5
src/target/mips_m4k.c View File

@@ -222,15 +222,22 @@ static int mips_m4k_assert_reset(struct target *target)
{
struct mips_m4k_common *mips_m4k = target_to_m4k(target);
struct mips_ejtag *ejtag_info = &mips_m4k->mips32.ejtag_info;
int assert_srst = 1;

LOG_DEBUG("target->state: %s",
target_state_name(target));

enum reset_types jtag_reset_config = jtag_get_reset_config();

if (!(jtag_reset_config & RESET_HAS_SRST))
assert_srst = 0;
/* some cores support connecting while srst is asserted
* use that mode is it has been configured */

bool srst_asserted = false;

if (!(jtag_reset_config & RESET_SRST_PULLS_TRST) &&
(jtag_reset_config & RESET_SRST_NO_GATING)) {
jtag_add_reset(0, 1);
srst_asserted = true;
}

if (target->reset_halt) {
/* use hardware to catch reset */
@@ -238,11 +245,11 @@ static int mips_m4k_assert_reset(struct target *target)
} else
mips_ejtag_set_instr(ejtag_info, EJTAG_INST_NORMALBOOT);

if (assert_srst) {
if (jtag_reset_config & RESET_HAS_SRST) {
/* here we should issue a srst only, but we may have to assert trst as well */
if (jtag_reset_config & RESET_SRST_PULLS_TRST)
jtag_add_reset(1, 1);
else
else if (!srst_asserted)
jtag_add_reset(0, 1);
} else {
if (mips_m4k->is_pic32mx) {


Loading…
Cancel
Save