extern jtag_interface_t usbprog_interface;
#endif
+#if BUILD_JLINK == 1
+ extern jtag_interface_t jlink_interface;
+#endif
+
jtag_interface_t *jtag_interfaces[] = {
#if BUILD_ECOSBOARD == 1
&eCosBoard_interface,
#endif
#if BUILD_USBPROG == 1
&usbprog_interface,
+#endif
+#if BUILD_JLINK == 1
+ &jlink_interface,
#endif
NULL,
};
void MINIDRIVER(interface_jtag_add_dr_out)(int device_num,
int num_fields,
- int *num_bits,
- u32 *value,
+ const int *num_bits,
+ const u32 *value,
enum tap_state end_state)
{
int i;
*/
if ((jtag_reset_config & RESET_HAS_SRST)&&
(jtag_reset_config & RESET_HAS_TRST)&&
- ((jtag_reset_config & RESET_SRST_PULLS_TRST)==0)&&
- ((jtag_reset_config & RESET_TRST_PULLS_SRST)==0))
+ ((jtag_reset_config & RESET_SRST_PULLS_TRST)==0))
{
if (((req_tlr_or_trst&&!jtag_trst)||
(!req_tlr_or_trst&&jtag_trst))&&
((req_srst&&!jtag_srst)||
(!req_srst&&jtag_srst)))
{
- LOG_ERROR("BUG: transition of req_tlr_or_trst and req_srst in the same jtag_add_reset() call is undefined");
+ // FIX!!! srst_pulls_trst allows 1,1 => 0,0 transition....
+ //LOG_ERROR("BUG: transition of req_tlr_or_trst and req_srst in the same jtag_add_reset() call is undefined");
}
}
int MINIDRIVER(interface_jtag_execute_queue)(void)
{
int retval;
-
+
+ if (jtag==NULL)
+ {
+ LOG_ERROR("No JTAG interface configured yet. Issue 'init' command in startup scripts before communicating with targets.");
+ return ERROR_FAIL;
+ }
+
retval = jtag->execute_queue();
cmd_queue_free();