Skip to content

Commit

Permalink
Force sane SRST and TRST initialization
Browse files Browse the repository at this point in the history
At least some FT2232 based adapters don't necessarily come up
in the expected state, with SRST and TRST disabled.  Since
other adapters could suffer the same problem, let's avoid
needing to patch every driver and just force *all* adapters
to initialize those values properly at server startup.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2824 b42882b7-edfa-0310-969c-e2dbd0fdcd60
  • Loading branch information
dbrownell committed Oct 7, 2009
1 parent 246ff4f commit cdc33b3
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions src/jtag/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,12 @@ static const char *jtag_event_strings[] =

/*
* JTAG adapters must initialize with TRST and SRST de-asserted
* (they're negative logic, so that means *high*)
* (they're negative logic, so that means *high*). But some
* hardware doesn't necessarily work that way ... so set things
* up so that jtag_init() always forces that state.
*/
static int jtag_trst = 0;
static int jtag_srst = 0;
static int jtag_trst = -1;
static int jtag_srst = -1;

/**
* List all TAPs that have been created.
Expand Down Expand Up @@ -1337,9 +1339,15 @@ int jtag_init_reset(struct command_context_s *cmd_ctx)
int jtag_init(struct command_context_s *cmd_ctx)
{
int retval;

if ((retval = jtag_interface_init(cmd_ctx)) != ERROR_OK)
return retval;

/* guard against oddball hardware: force resets to be inactive */
jtag_add_reset(0, 0);
if ((retval = jtag_execute_queue()) != ERROR_OK)
return retval;

if (Jim_Eval_Named(interp, "jtag_init", __FILE__, __LINE__) != JIM_OK)
return ERROR_FAIL;

Expand Down

0 comments on commit cdc33b3

Please sign in to comment.