Partially fix USBprog and JLink adapters on XScale target
Thanks to Peter Denison <openwrt(at)marshadder.org> git-svn-id: svn://svn.berlios.de/openocd/trunk@1471 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
486799e65b
commit
7989000e09
|
@ -433,7 +433,10 @@ void jlink_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size, sca
|
||||||
/* Move to appropriate scan state */
|
/* Move to appropriate scan state */
|
||||||
jlink_end_state(ir_scan ? TAP_IRSHIFT : TAP_DRSHIFT);
|
jlink_end_state(ir_scan ? TAP_IRSHIFT : TAP_DRSHIFT);
|
||||||
|
|
||||||
jlink_state_move();
|
/* Only move if we're not already there */
|
||||||
|
if (tap_get_state() != tap_get_end_state())
|
||||||
|
jlink_state_move();
|
||||||
|
|
||||||
jlink_end_state(saved_end_state);
|
jlink_end_state(saved_end_state);
|
||||||
|
|
||||||
/* Scan */
|
/* Scan */
|
||||||
|
|
|
@ -265,6 +265,10 @@ void usbprog_path_move(pathmove_command_t *cmd)
|
||||||
int num_states = cmd->num_states;
|
int num_states = cmd->num_states;
|
||||||
int state_count;
|
int state_count;
|
||||||
|
|
||||||
|
/* There may be queued transitions, and before following a specified
|
||||||
|
path, we must flush those queued transitions */
|
||||||
|
usbprog_jtag_tms_send(usbprog_jtag_handle);
|
||||||
|
|
||||||
state_count = 0;
|
state_count = 0;
|
||||||
while (num_states)
|
while (num_states)
|
||||||
{
|
{
|
||||||
|
@ -323,6 +327,10 @@ void usbprog_runtest(int num_cycles)
|
||||||
usbprog_write(0, 0, 0);
|
usbprog_write(0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef _DEBUG_JTAG_IO_
|
||||||
|
LOG_DEBUG("runtest: cur_state %s end_state %s", tap_state_name(tap_get_state()), tap_state_name(tap_get_end_state()));
|
||||||
|
#endif
|
||||||
|
|
||||||
/* finish in end_state */
|
/* finish in end_state */
|
||||||
/*
|
/*
|
||||||
usbprog_end_state(saved_end_state);
|
usbprog_end_state(saved_end_state);
|
||||||
|
@ -340,9 +348,10 @@ void usbprog_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size)
|
||||||
else
|
else
|
||||||
usbprog_end_state(TAP_DRSHIFT);
|
usbprog_end_state(TAP_DRSHIFT);
|
||||||
|
|
||||||
/* usbprog_jtag_tms_send(usbprog_jtag_handle); */
|
/* Only move if we're not already there */
|
||||||
|
if (tap_get_state() != tap_get_end_state())
|
||||||
|
usbprog_state_move();
|
||||||
|
|
||||||
usbprog_state_move();
|
|
||||||
usbprog_end_state(saved_end_state);
|
usbprog_end_state(saved_end_state);
|
||||||
|
|
||||||
usbprog_jtag_tms_send(usbprog_jtag_handle);
|
usbprog_jtag_tms_send(usbprog_jtag_handle);
|
||||||
|
@ -358,6 +367,7 @@ void usbprog_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size)
|
||||||
}
|
}
|
||||||
f(usbprog_jtag_handle, (char *)buffer, scan_size);
|
f(usbprog_jtag_handle, (char *)buffer, scan_size);
|
||||||
|
|
||||||
|
/* The adapter does the transition to PAUSE internally */
|
||||||
if (ir_scan)
|
if (ir_scan)
|
||||||
tap_set_state(TAP_IRPAUSE);
|
tap_set_state(TAP_IRPAUSE);
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue