This is an automated email from Gerrit.

Spencer Oliver (s...@spen-soft.co.uk) just uploaded a new patch set to Gerrit, 
which you can find at http://openocd.zylin.com/608

-- gerrit

commit c40630a1192f5223e3540540e66a5c2c0890920f
Author: Spencer Oliver <s...@spen-soft.co.uk>
Date:   Tue May 1 14:29:43 2012 +0100

    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 <s...@spen-soft.co.uk>

diff --git a/src/target/mips_m4k.c b/src/target/mips_m4k.c
index c64d5cf..1a10d5a 100644
--- a/src/target/mips_m4k.c
+++ b/src/target/mips_m4k.c
@@ -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) {

-- 

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to