Pavel pointed out that jtag_add_tlr() is better than jtag_add_tms().

git-svn-id: svn://svn.berlios.de/openocd/trunk@547 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
oharboe 2008-04-08 13:08:36 +00:00
parent 4b2defe678
commit eabb49b570
3 changed files with 22 additions and 22 deletions

View File

@ -785,17 +785,17 @@ int MINIDRIVER(interface_jtag_add_plain_dr_scan)(int num_fields, scan_field_t *f
return ERROR_OK; return ERROR_OK;
} }
void jtag_add_tms() void jtag_add_tlr()
{ {
jtag_prelude(TAP_TLR); jtag_prelude(TAP_TLR);
int retval; int retval;
retval=interface_jtag_add_tms(); retval=interface_jtag_add_tlr();
if (retval!=ERROR_OK) if (retval!=ERROR_OK)
jtag_error=retval; jtag_error=retval;
} }
int MINIDRIVER(interface_jtag_add_tms)() int MINIDRIVER(interface_jtag_add_tlr)()
{ {
enum tap_state state = TAP_TLR; enum tap_state state = TAP_TLR;
jtag_command_t **last_cmd = jtag_get_last_command_p(); jtag_command_t **last_cmd = jtag_get_last_command_p();
@ -893,14 +893,14 @@ void jtag_add_runtest(int num_cycles, enum tap_state state)
jtag_error=retval; jtag_error=retval;
} }
void jtag_add_reset(int req_tms_or_trst, int req_srst) void jtag_add_reset(int req_tlr_or_trst, int req_srst)
{ {
int trst_with_tms = 0; int trst_with_tlr = 0;
int retval; int retval;
/* Make sure that jtag_reset_config allows the requested reset */ /* Make sure that jtag_reset_config allows the requested reset */
/* if SRST pulls TRST, we can't fulfill srst == 1 with trst == 0 */ /* if SRST pulls TRST, we can't fulfill srst == 1 with trst == 0 */
if (((jtag_reset_config & RESET_SRST_PULLS_TRST) && (req_srst == 1)) && (!req_tms_or_trst)) if (((jtag_reset_config & RESET_SRST_PULLS_TRST) && (req_srst == 1)) && (!req_tlr_or_trst))
{ {
LOG_ERROR("BUG: requested reset would assert trst"); LOG_ERROR("BUG: requested reset would assert trst");
jtag_error=ERROR_FAIL; jtag_error=ERROR_FAIL;
@ -908,9 +908,9 @@ void jtag_add_reset(int req_tms_or_trst, int req_srst)
} }
/* if TRST pulls SRST, we reset with TAP T-L-R */ /* if TRST pulls SRST, we reset with TAP T-L-R */
if (((jtag_reset_config & RESET_TRST_PULLS_SRST) && (req_tms_or_trst)) && (req_srst == 0)) if (((jtag_reset_config & RESET_TRST_PULLS_SRST) && (req_tlr_or_trst)) && (req_srst == 0))
{ {
trst_with_tms = 1; trst_with_tlr = 1;
} }
if (req_srst && !(jtag_reset_config & RESET_HAS_SRST)) if (req_srst && !(jtag_reset_config & RESET_HAS_SRST))
@ -920,14 +920,14 @@ void jtag_add_reset(int req_tms_or_trst, int req_srst)
return; return;
} }
if (req_tms_or_trst) if (req_tlr_or_trst)
{ {
if (!trst_with_tms && (jtag_reset_config & RESET_HAS_TRST)) if (!trst_with_tlr && (jtag_reset_config & RESET_HAS_TRST))
{ {
jtag_trst = 1; jtag_trst = 1;
} else } else
{ {
trst_with_tms = 1; trst_with_tlr = 1;
} }
} else } else
{ {
@ -954,11 +954,11 @@ void jtag_add_reset(int req_tms_or_trst, int req_srst)
jtag_add_sleep(jtag_nsrst_delay * 1000); jtag_add_sleep(jtag_nsrst_delay * 1000);
} }
if (trst_with_tms) if (trst_with_tlr)
{ {
LOG_DEBUG("JTAG reset with tms instead of TRST"); LOG_DEBUG("JTAG reset with tms instead of TRST");
jtag_add_end_state(TAP_TLR); jtag_add_end_state(TAP_TLR);
jtag_add_tms(); jtag_add_tlr();
jtag_call_event_callbacks(JTAG_TRST_ASSERTED); jtag_call_event_callbacks(JTAG_TRST_ASSERTED);
return; return;
} }
@ -1427,9 +1427,9 @@ int jtag_register_commands(struct command_context_s *cmd_ctx)
register_command(cmd_ctx, NULL, "reset_config", handle_reset_config_command, register_command(cmd_ctx, NULL, "reset_config", handle_reset_config_command,
COMMAND_CONFIG, NULL); COMMAND_CONFIG, NULL);
register_command(cmd_ctx, NULL, "jtag_nsrst_delay", handle_jtag_nsrst_delay_command, register_command(cmd_ctx, NULL, "jtag_nsrst_delay", handle_jtag_nsrst_delay_command,
COMMAND_CONFIG, NULL); COMMAND_ANY, "jtag_nsrst_delay <ms> - delay after deasserting srst in ms");
register_command(cmd_ctx, NULL, "jtag_ntrst_delay", handle_jtag_ntrst_delay_command, register_command(cmd_ctx, NULL, "jtag_ntrst_delay", handle_jtag_ntrst_delay_command,
COMMAND_CONFIG, NULL); COMMAND_ANY, "jtag_ntrst_delay <ms> - delay after deasserting trst in ms");
register_command(cmd_ctx, NULL, "scan_chain", handle_scan_chain_command, register_command(cmd_ctx, NULL, "scan_chain", handle_scan_chain_command,
COMMAND_EXEC, "print current scan chain configuration"); COMMAND_EXEC, "print current scan chain configuration");
@ -1497,7 +1497,7 @@ int jtag_init(struct command_context_s *cmd_ctx)
device = device->next; device = device->next;
} }
jtag_add_tms(); jtag_add_tlr();
jtag_execute_queue(); jtag_execute_queue();
/* examine chain first, as this could discover the real chain layout */ /* examine chain first, as this could discover the real chain layout */

View File

@ -268,8 +268,8 @@ extern int interface_jtag_add_plain_dr_scan(int num_fields, scan_field_t *fields
/* run a TAP_TLR reset. End state is TAP_TLR, regardless /* run a TAP_TLR reset. End state is TAP_TLR, regardless
* of start state. * of start state.
*/ */
extern void jtag_add_tms(); extern void jtag_add_tlr();
extern int interface_jtag_add_tms(); extern int interface_jtag_add_tlr();
/* Do not use jtag_add_pathmove() unless you need to, but do use it /* Do not use jtag_add_pathmove() unless you need to, but do use it
* if you have to. * if you have to.
* *
@ -326,12 +326,12 @@ extern int interface_jtag_add_runtest(int num_cycles, enum tap_state endstate);
* are supported. * are supported.
* *
*/ */
extern void jtag_add_reset(int req_tms_or_trst, int srst); extern void jtag_add_reset(int req_tlr_or_trst, int srst);
/* this drives the actual srst and trst pins. srst will always be 0 /* this drives the actual srst and trst pins. srst will always be 0
* if jtag_reset_config & RESET_SRST_PULLS_TRST != 0 and ditto for * if jtag_reset_config & RESET_SRST_PULLS_TRST != 0 and ditto for
* trst. * trst.
* *
* the higher level jtag_add_reset will invoke jtag_add_tms() if * the higher level jtag_add_reset will invoke jtag_add_tlr() if
* approperiate * approperiate
*/ */
extern int interface_jtag_add_reset(int trst, int srst); extern int interface_jtag_add_reset(int trst, int srst);

View File

@ -137,7 +137,7 @@ int virtex2_read_stat(struct pld_device_s *pld_device, u32 *status)
{ {
u32 data[5]; u32 data[5];
jtag_add_tms(); jtag_add_tlr();
data[0] = 0xaa995566; /* synch word */ data[0] = 0xaa995566; /* synch word */
data[1] = 0x2800E001; /* Type 1, read, address 7, 1 word */ data[1] = 0x2800E001; /* Type 1, read, address 7, 1 word */
@ -192,7 +192,7 @@ int virtex2_load(struct pld_device_s *pld_device, char *filename)
jtag_add_dr_scan(1, &field, TAP_PD); jtag_add_dr_scan(1, &field, TAP_PD);
jtag_execute_queue(); jtag_execute_queue();
jtag_add_tms(); jtag_add_tlr();
jtag_add_end_state(TAP_RTI); jtag_add_end_state(TAP_RTI);
virtex2_set_instr(virtex2_info->chain_pos, 0xc); /* JSTART */ virtex2_set_instr(virtex2_info->chain_pos, 0xc); /* JSTART */