View | Details | Raw Unified | Return to bug 517
Collapse All | Expand All

(-)a/configure.ac (-2 / +2 lines)
Lines 14-20 AS_IF([test "x$MAKEINFO" = "x"], [ Link Here
14
])
14
])
15
AC_SUBST([MAKEINFO])
15
AC_SUBST([MAKEINFO])
16
16
17
AM_INIT_AUTOMAKE([-Wall -Wno-portability dist-bzip2 dist-zip subdir-objects])
17
AM_INIT_AUTOMAKE([-Wno-portability dist-bzip2 dist-zip subdir-objects])
18
18
19
AC_CONFIG_HEADERS([config.h])
19
AC_CONFIG_HEADERS([config.h])
20
AH_BOTTOM([
20
AH_BOTTOM([
Lines 755-761 AS_IF([test "x${has_environ}" != "xyes" ], [ Link Here
755
AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
755
AC_DEFINE([_GNU_SOURCE],[1],[Use GNU C library extensions (e.g. stdndup).])
756
756
757
# set default gcc warnings
757
# set default gcc warnings
758
GCC_WARNINGS="-Wall -Wstrict-prototypes -Wformat-security -Wshadow"
758
GCC_WARNINGS="-Wshadow"
759
AS_IF([test "x${gcc_wextra}" = "xyes"], [
759
AS_IF([test "x${gcc_wextra}" = "xyes"], [
760
  GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
760
  GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
761
  GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
761
  GCC_WARNINGS="${GCC_WARNINGS} -Wbad-function-cast"
(-)a/jimtcl (-1 / +1 lines)
Line 1 Link Here
1
Subproject commit fb923fab4f0cf276c336d98692d00df6a943791d
1
Subproject commit fb923fab4f0cf276c336d98692d00df6a943791d-dirty
(-)a/src/jtag/drivers/stlink_usb.c (+19 lines)
Lines 1565-1570 static int stlink_usb_exit_mode(void *handle) Link Here
1565
	return ERROR_OK;
1565
	return ERROR_OK;
1566
}
1566
}
1567
1567
1568
static enum target_state stlink_usb_state(void *handle);
1569
1568
/** */
1570
/** */
1569
static int stlink_usb_init_mode(void *handle, bool connect_under_reset, int initial_interface_speed)
1571
static int stlink_usb_init_mode(void *handle, bool connect_under_reset, int initial_interface_speed)
1570
{
1572
{
Lines 1621-1627 static int stlink_usb_init_mode(void *handle, bool connect_under_reset, int init Link Here
1621
	if (emode == STLINK_MODE_DEBUG_JTAG) {
1623
	if (emode == STLINK_MODE_DEBUG_JTAG) {
1622
		if (h->version.flags & STLINK_F_HAS_JTAG_SET_FREQ) {
1624
		if (h->version.flags & STLINK_F_HAS_JTAG_SET_FREQ) {
1623
			stlink_dump_speed_map(stlink_khz_to_speed_map_jtag, ARRAY_SIZE(stlink_khz_to_speed_map_jtag));
1625
			stlink_dump_speed_map(stlink_khz_to_speed_map_jtag, ARRAY_SIZE(stlink_khz_to_speed_map_jtag));
1626
            //initial_interface_speed=9000;
1627
            LOG_DEBUG("set speed before %d", initial_interface_speed);
1624
			stlink_speed(h, initial_interface_speed, false);
1628
			stlink_speed(h, initial_interface_speed, false);
1629
            LOG_DEBUG("set speed after");
1625
		}
1630
		}
1626
	} else if (emode == STLINK_MODE_DEBUG_SWD) {
1631
	} else if (emode == STLINK_MODE_DEBUG_SWD) {
1627
		if (h->version.flags & STLINK_F_HAS_SWD_SET_FREQ) {
1632
		if (h->version.flags & STLINK_F_HAS_SWD_SET_FREQ) {
Lines 1638-1643 static int stlink_usb_init_mode(void *handle, bool connect_under_reset, int init Link Here
1638
		stlink_speed(h, initial_interface_speed, false);
1643
		stlink_speed(h, initial_interface_speed, false);
1639
	}
1644
	}
1640
1645
1646
    LOG_DEBUG("after speed");
1647
    //usleep(100000);
1648
1649
	//stlink_usb_state(handle);
1650
    LOG_DEBUG("after speed");
1651
1652
    //connect_under_reset = true;
1641
	/* preliminary SRST assert:
1653
	/* preliminary SRST assert:
1642
	 * We want SRST is asserted before activating debug signals (mode_enter).
1654
	 * We want SRST is asserted before activating debug signals (mode_enter).
1643
	 * As the required mode has not been set, the adapter may not know what pin to use.
1655
	 * As the required mode has not been set, the adapter may not know what pin to use.
Lines 1645-1659 static int stlink_usb_init_mode(void *handle, bool connect_under_reset, int init Link Here
1645
	 * Tested firmware STLINK v2 JTAG v27 API v2 SWIM v6 uses T_NRST pin by default
1657
	 * Tested firmware STLINK v2 JTAG v27 API v2 SWIM v6 uses T_NRST pin by default
1646
	 * after power on, SWIM_RST stays unchanged */
1658
	 * after power on, SWIM_RST stays unchanged */
1647
	if (connect_under_reset && emode != STLINK_MODE_DEBUG_SWIM)
1659
	if (connect_under_reset && emode != STLINK_MODE_DEBUG_SWIM)
1660
        LOG_DEBUG("assert reset");
1648
		stlink_usb_assert_srst(handle, 0);
1661
		stlink_usb_assert_srst(handle, 0);
1649
		/* do not check the return status here, we will
1662
		/* do not check the return status here, we will
1650
		   proceed and enter the desired mode below
1663
		   proceed and enter the desired mode below
1651
		   and try asserting srst again. */
1664
		   and try asserting srst again. */
1652
1665
1666
    LOG_DEBUG("before mode enter");
1653
	res = stlink_usb_mode_enter(handle, emode);
1667
	res = stlink_usb_mode_enter(handle, emode);
1654
	if (res != ERROR_OK)
1668
	if (res != ERROR_OK)
1655
		return res;
1669
		return res;
1656
1670
1671
    LOG_DEBUG("after mode enter");
1672
1657
	/* assert SRST again: a little bit late but now the adapter knows for sure what pin to use */
1673
	/* assert SRST again: a little bit late but now the adapter knows for sure what pin to use */
1658
	if (connect_under_reset) {
1674
	if (connect_under_reset) {
1659
		res = stlink_usb_assert_srst(handle, 0);
1675
		res = stlink_usb_assert_srst(handle, 0);
Lines 1661-1666 static int stlink_usb_init_mode(void *handle, bool connect_under_reset, int init Link Here
1661
			return res;
1677
			return res;
1662
	}
1678
	}
1663
1679
1680
    LOG_DEBUG("check mode");
1664
	res = stlink_usb_current_mode(handle, &mode);
1681
	res = stlink_usb_current_mode(handle, &mode);
1665
1682
1666
	if (res != ERROR_OK)
1683
	if (res != ERROR_OK)
Lines 2137-2142 static int stlink_usb_reset(void *handle) Link Here
2137
	if (retval != ERROR_OK)
2154
	if (retval != ERROR_OK)
2138
		return retval;
2155
		return retval;
2139
2156
2157
    //usleep(10000);
2158
2140
	if (h->trace.enabled) {
2159
	if (h->trace.enabled) {
2141
		stlink_usb_trace_disable(h);
2160
		stlink_usb_trace_disable(h);
2142
		return stlink_usb_trace_enable(h);
2161
		return stlink_usb_trace_enable(h);
(-)a/src/jtag/hla/hla_tcl.c (-2 / +12 lines)
Lines 111-116 static int jim_hl_newtap_cmd(Jim_GetOptInfo *goi) Link Here
111
		  pTap->chip, pTap->tapname, pTap->dotted_name, goi->argc);
111
		  pTap->chip, pTap->tapname, pTap->dotted_name, goi->argc);
112
112
113
	while (goi->argc) {
113
	while (goi->argc) {
114
        jim_wide w;
114
		e = Jim_GetOpt_Nvp(goi, opts, &n);
115
		e = Jim_GetOpt_Nvp(goi, opts, &n);
115
		if (e != JIM_OK) {
116
		if (e != JIM_OK) {
116
			Jim_GetOpt_NvpUnknown(goi, opts, 0);
117
			Jim_GetOpt_NvpUnknown(goi, opts, 0);
Lines 129-138 static int jim_hl_newtap_cmd(Jim_GetOptInfo *goi) Link Here
129
			}
130
			}
130
			break;
131
			break;
131
		case NTAP_OPT_IRLEN:
132
		case NTAP_OPT_IRLEN:
133
			Jim_GetOpt_Wide(goi, &w);
134
            pTap->ir_length = w;
135
            break;
132
		case NTAP_OPT_IRMASK:
136
		case NTAP_OPT_IRMASK:
137
			Jim_GetOpt_Wide(goi, &w);
138
            pTap->ir_capture_mask = w;
139
			break;
133
		case NTAP_OPT_IRCAPTURE:
140
		case NTAP_OPT_IRCAPTURE:
134
			/* dummy read to ignore the next argument */
141
			Jim_GetOpt_Wide(goi, &w);
135
			Jim_GetOpt_Wide(goi, NULL);
142
            pTap->ir_capture_value = w;
136
			break;
143
			break;
137
		}		/* switch (n->value) */
144
		}		/* switch (n->value) */
138
	}			/* while (goi->argc) */
145
	}			/* while (goi->argc) */
Lines 140-149 static int jim_hl_newtap_cmd(Jim_GetOptInfo *goi) Link Here
140
	/* default is enabled-after-reset */
147
	/* default is enabled-after-reset */
141
	pTap->enabled = !pTap->disabled_after_reset;
148
	pTap->enabled = !pTap->disabled_after_reset;
142
149
150
    LOG_DEBUG("about to init: len %d", pTap->ir_length);
151
143
	jtag_tap_init(pTap);
152
	jtag_tap_init(pTap);
144
	return JIM_OK;
153
	return JIM_OK;
145
}
154
}
146
155
156
147
int jim_hl_newtap(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
157
int jim_hl_newtap(Jim_Interp *interp, int argc, Jim_Obj * const *argv)
148
{
158
{
149
	Jim_GetOptInfo goi;
159
	Jim_GetOptInfo goi;
(-)a/src/jtag/hla/hla_transport.c (-2 / +6 lines)
Lines 159-166 static int hl_transport_init(struct command_context *cmd_ctx) Link Here
159
	enum hl_transports tr;
159
	enum hl_transports tr;
160
160
161
	if (!t) {
161
	if (!t) {
162
		LOG_ERROR("no current target");
162
		LOG_WARNING("no current target");
163
		return ERROR_FAIL;
163
		//return ERROR_FAIL;
164
	}
164
	}
165
165
166
	transport = get_current_transport();
166
	transport = get_current_transport();
Lines 185-190 static int hl_transport_init(struct command_context *cmd_ctx) Link Here
185
	if (retval != ERROR_OK)
185
	if (retval != ERROR_OK)
186
		return retval;
186
		return retval;
187
187
188
	if (!t) {
189
        return ERROR_OK;
190
    }
191
188
	return hl_interface_init_target(t);
192
	return hl_interface_init_target(t);
189
}
193
}
190
194
(-)a/src/target/target.c (-1 / +1 lines)
Lines 528-534 struct target *get_current_target(struct command_context *cmd_ctx) Link Here
528
528
529
	if (target == NULL) {
529
	if (target == NULL) {
530
		LOG_ERROR("BUG: current_target out of bounds");
530
		LOG_ERROR("BUG: current_target out of bounds");
531
		exit(-1);
531
		//exit(-1);
532
	}
532
	}
533
533
534
	return target;
534
	return target;

Return to bug 517