X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fjtag%2Fcore.c;h=8c79eb2302c3b643f3750a400270c0a3bbaea6ad;hb=7d8d2654e6168a56a8e5e53aa4a8b64a66576c55;hp=1b1106f121ed3741a8af62c9678630e6336246ac;hpb=ef02b69b14d133b061217a91add5a028a77e86bc;p=openocd.git
diff --git a/src/jtag/core.c b/src/jtag/core.c
index 1b1106f121..8c79eb2302 100644
--- a/src/jtag/core.c
+++ b/src/jtag/core.c
@@ -23,9 +23,7 @@
* GNU General Public License for more details. *
* *
* 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., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
+ * along with this program. If not, see . *
***************************************************************************/
#ifdef HAVE_CONFIG_H
@@ -36,6 +34,7 @@
#include "swd.h"
#include "interface.h"
#include
+#include
#ifdef HAVE_STRINGS_H
#include
@@ -649,6 +648,12 @@ void swd_add_reset(int req_srst)
if (adapter_nsrst_delay)
jtag_add_sleep(adapter_nsrst_delay * 1000);
}
+
+ retval = jtag_execute_queue();
+ if (retval != ERROR_OK) {
+ LOG_ERROR("SRST timings error");
+ return;
+ }
}
}
@@ -888,6 +893,8 @@ void jtag_sleep(uint32_t us)
#define JTAG_MAX_AUTO_TAPS 20
+#define EXTRACT_JEP106_BANK(X) (((X) & 0xf00) >> 8)
+#define EXTRACT_JEP106_ID(X) (((X) & 0xfe) >> 1)
#define EXTRACT_MFG(X) (((X) & 0xffe) >> 1)
#define EXTRACT_PART(X) (((X) & 0xffff000) >> 12)
#define EXTRACT_VER(X) (((X) & 0xf0000000) >> 28)
@@ -951,10 +958,11 @@ static void jtag_examine_chain_display(enum log_levels level, const char *msg,
{
log_printf_lf(level, __FILE__, __LINE__, __func__,
"JTAG tap: %s %16.16s: 0x%08x "
- "(mfg: 0x%3.3x, part: 0x%4.4x, ver: 0x%1.1x)",
+ "(mfg: 0x%3.3x (%s), part: 0x%4.4x, ver: 0x%1.1x)",
name, msg,
(unsigned int)idcode,
(unsigned int)EXTRACT_MFG(idcode),
+ jep106_manufacturer(EXTRACT_JEP106_BANK(idcode), EXTRACT_JEP106_ID(idcode)),
(unsigned int)EXTRACT_PART(idcode),
(unsigned int)EXTRACT_VER(idcode));
}
@@ -1709,11 +1717,11 @@ void jtag_set_reset_config(enum reset_types type)
int jtag_get_trst(void)
{
- return jtag_trst;
+ return jtag_trst == 1;
}
int jtag_get_srst(void)
{
- return jtag_srst;
+ return jtag_srst == 1;
}
void jtag_set_nsrst_delay(unsigned delay)