diff options
-rw-r--r-- | src/jtag/drivers/ft2232.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/jtag/drivers/ft2232.c b/src/jtag/drivers/ft2232.c index 4dcc045c..1a0eb4b5 100644 --- a/src/jtag/drivers/ft2232.c +++ b/src/jtag/drivers/ft2232.c @@ -316,7 +316,7 @@ static uint8_t nSRSTnOE; /** the layout being used with this debug session */ static const struct ft2232_layout *layout; -/** default bitmask values ddriven on DBUS: TCK/TDI/TDO/TMS and GPIOL(0..4) */ +/** default bitmask values driven on DBUS: TCK/TDI/TDO/TMS and GPIOL(0..4) */ static uint8_t low_output = 0x0; /* note that direction bit == 1 means that signal is an output */ @@ -2496,9 +2496,11 @@ static int icdi_jtag_init(void) /* Most Luminary eval boards support SWO trace output, * and should use this "luminary_icdi" layout. * - * DBUS 0..3 are used for JTAG as usual. GPIOs are used + * ADBUS 0..3 are used for JTAG as usual. GPIOs are used * to switch between JTAG and SWD, or switch the ft2232 UART - * between (i) the target UART or (ii) SWO trace data. + * on the second MPSSE channel/interface (BDBUS) + * between (i) the stellaris UART (on Luminary boards) + * or (ii) SWO trace data (generic). * * We come up in JTAG mode and may switch to SWD later (with * SWO/trace option if SWD is active). @@ -2511,18 +2513,21 @@ static int icdi_jtag_init(void) #define ICDI_JTAG_EN (1 << 7) /* ADBUS 7 (a.k.a. DBGMOD) */ #define ICDI_DBG_ENn (1 << 6) /* ADBUS 6 */ #define ICDI_SRST (1 << 5) /* ADBUS 5 */ -#define ICDI_TDI (1 << 2) /* ADBUS 2 (INPUT) */ + + /* GPIOs on second channel/interface (UART) ... */ #define ICDI_SWO_EN (1 << 4) /* BDBUS 4 */ #define ICDI_TX_SWO (1 << 1) /* BDBUS 1 */ +#define ICDI_VCP_RX (1 << 0) /* BDBUS 0 (to stellaris UART) */ nTRST = 0x0; nTRSTnOE = 0x00; nSRST = ICDI_SRST; - nSRSTnOE = 0x20; + nSRSTnOE = ICDI_SRST; - low_output = 0x08 | ICDI_JTAG_EN; - low_direction = 0xcb | ICDI_JTAG_EN; + low_direction |= ICDI_JTAG_EN | ICDI_DBG_ENn; + low_output |= ICDI_JTAG_EN; + low_output &= ~ICDI_DBG_ENn; return ftx232_dbus_write(); } |