static void usbjtag_reset(int trst, int srst)
{
+ enum reset_types jtag_reset_config = jtag_get_reset_config();
if (trst == 1)
{
if (jtag_reset_config & RESET_TRST_OPEN_DRAIN)
static void jtagkey_reset(int trst, int srst)
{
+ enum reset_types jtag_reset_config = jtag_get_reset_config();
if (trst == 1)
{
if (jtag_reset_config & RESET_TRST_OPEN_DRAIN)
static void olimex_jtag_reset(int trst, int srst)
{
+ enum reset_types jtag_reset_config = jtag_get_reset_config();
if (trst == 1)
{
if (jtag_reset_config & RESET_TRST_OPEN_DRAIN)
if (layout->init() != ERROR_OK)
return ERROR_JTAG_INIT_FAILED;
- ft2232_speed(jtag_speed);
+ ft2232_speed(jtag_get_speed());
buf[0] = 0x85; /* Disconnect TDI/DO to TDO/DI for Loopback */
if (((retval = ft2232_write(buf, 1, &bytes_written)) != ERROR_OK) || (bytes_written != 1))
return ERROR_JTAG_INIT_FAILED;
}
+ enum reset_types jtag_reset_config = jtag_get_reset_config();
if (jtag_reset_config & RESET_TRST_OPEN_DRAIN)
{
low_direction &= ~nTRSTnOE; /* nTRST input */
high_output = 0x0;
high_direction = 0x0c;
+ enum reset_types jtag_reset_config = jtag_get_reset_config();
if (jtag_reset_config & RESET_TRST_OPEN_DRAIN)
{
LOG_ERROR("can't set nTRSTOE to push-pull on the Dicarlo jtag");
high_output = 0x0;
high_direction = 0x0f;
+ enum reset_types jtag_reset_config = jtag_get_reset_config();
if (jtag_reset_config & RESET_TRST_OPEN_DRAIN)
{
high_output |= nTRSTnOE;
high_output = 0x0;
high_direction = 0x0f;
+ enum reset_types jtag_reset_config = jtag_get_reset_config();
if (jtag_reset_config & RESET_TRST_OPEN_DRAIN)
{
high_output |= nTRSTnOE;
static int ft2232_handle_vid_pid_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc)
{
- int i;
-
if (argc > MAX_USB_IDS * 2)
{
LOG_WARNING("ignoring extra IDs in ft2232_vid_pid "
{
LOG_WARNING("incomplete ft2232_vid_pid configuration directive");
if (argc < 2)
- return ERROR_OK;
+ return ERROR_COMMAND_SYNTAX_ERROR;
+ // remove the incomplete trailing id
+ argc -= 1;
}
- for (i = 0; i + 1 < argc; i += 2)
+ int i;
+ int retval = ERROR_OK;
+ for (i = 0; i < argc; i += 2)
{
- ft2232_vid[i >> 1] = strtol(args[i], NULL, 0);
- ft2232_pid[i >> 1] = strtol(args[i + 1], NULL, 0);
+ retval = parse_u16(args[i], &ft2232_vid[i >> 1]);
+ if (ERROR_OK != retval)
+ break;
+ retval = parse_u16(args[i + 1], &ft2232_pid[i >> 1]);
+ if (ERROR_OK != retval)
+ break;
}
/*
*/
ft2232_vid[i >> 1] = ft2232_pid[i >> 1] = 0;
- return ERROR_OK;
+ return retval;
}
nTRST = 0x10;
nSRST = 0x20;
+ enum reset_types jtag_reset_config = jtag_get_reset_config();
if ((jtag_reset_config & RESET_TRST_OPEN_DRAIN) != 0) {
low_direction &= ~nTRST; /* nTRST high impedance */
}
low_output &= ~nTRST;
}
else if (trst == 0) {
+ enum reset_types jtag_reset_config = jtag_get_reset_config();
if ((jtag_reset_config & RESET_TRST_OPEN_DRAIN) != 0)
low_direction &= ~nTRST;
else