libftdi: Allow more flexible Swd Read/Write Switching.
This commit is contained in:
parent
df05d7ce7b
commit
2657aa6fbb
@ -83,6 +83,7 @@ cable_desc_t cable_desc[] = {
|
|||||||
.cbus_ddr = 0x02,
|
.cbus_ddr = 0x02,
|
||||||
.bitbang_tms_in_port_cmd = GET_BITS_LOW,
|
.bitbang_tms_in_port_cmd = GET_BITS_LOW,
|
||||||
.bitbang_tms_in_pin = MPSSE_TDO, /* keep bit 5 low*/
|
.bitbang_tms_in_pin = MPSSE_TDO, /* keep bit 5 low*/
|
||||||
|
.bitbang_swd_dbus_read_data = 0x02,
|
||||||
.name = "ftdiswd"
|
.name = "ftdiswd"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -58,6 +58,9 @@ typedef struct cable_desc_s {
|
|||||||
uint8_t cbus_ddr;
|
uint8_t cbus_ddr;
|
||||||
uint8_t bitbang_tms_in_port_cmd;
|
uint8_t bitbang_tms_in_port_cmd;
|
||||||
uint8_t bitbang_tms_in_pin;
|
uint8_t bitbang_tms_in_pin;
|
||||||
|
uint8_t bitbang_swd_dbus_read_data;
|
||||||
|
/* bitbang_swd_dbus_read_data is same as dbus_data,
|
||||||
|
* as long as CBUS is not involved.*/
|
||||||
char *description;
|
char *description;
|
||||||
char * name;
|
char * name;
|
||||||
}cable_desc_t;
|
}cable_desc_t;
|
||||||
|
@ -84,7 +84,11 @@ static void swdptap_turnaround(uint8_t dir)
|
|||||||
|
|
||||||
if(dir) { /* SWDIO goes to input */
|
if(dir) { /* SWDIO goes to input */
|
||||||
cmd[index++] = SET_BITS_LOW;
|
cmd[index++] = SET_BITS_LOW;
|
||||||
cmd[index++] = active_cable->dbus_data | MPSSE_MASK;
|
if (active_cable->bitbang_swd_dbus_read_data)
|
||||||
|
cmd[index] = active_cable->bitbang_swd_dbus_read_data;
|
||||||
|
else
|
||||||
|
cmd[index] = active_cable->dbus_data;
|
||||||
|
index++;
|
||||||
cmd[index++] = active_cable->dbus_ddr & ~MPSSE_MASK;
|
cmd[index++] = active_cable->dbus_ddr & ~MPSSE_MASK;
|
||||||
}
|
}
|
||||||
/* One clock cycle */
|
/* One clock cycle */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user