# openocd config file for Marble Mini
# https://github.com/BerkeleyLab/Marble-mini

interface ftdi

# This string needs programming into U21 EEPROM attached to U23 FT4232H
# ftdi_device_desc "Marble Mini"

# Pin assignment consistent with MPSSE Channel A, Table 3.14 for FT4232H-56Q
#  ADBUS0 (pin 12) USB_TCK
#  ADBUS1 (pin 13) USB_TDI
#  ADBUS2 (pin 14) USB_TDO
#  ADBUS3 (pin 15) USB_TMS
# Additional pin, GPIOL0, set high
#  ADBUS4 (pin 17) EN_USB_JTAG
# check logic of EN_USB_JTAG:
#  routed to U39-3 P0_2 for informational purposes
#  also to Q5, forces disable of Self_FPGA_* buffers

# Default for FT4232H
ftdi_vid_pid 0x0403 0x6011

# Choose channel for FPGA JTAG, 0 == Channel A?
ftdi_channel 0

# Just TCK TDI TDO TMS, all other pins driven high.
# Not sure what controls DBUS banks C, D, and maybe even B.
ftdi_layout_init 0xfff8 0xfffb
reset_config none

# default speed
adapter_khz 15000

# Cribbed from openocd-code/tcl/board/kasli.cfg
source [find cpld/xilinx-xc7.cfg]
source [find cpld/jtagspi.cfg]

# Following lines found in git head, but don't work with older openocd
# version 0.10.0 available with apt-get in Debian Buster.
# source [find fpga/xilinx-xadc.cfg]
# source [find fpga/xilinx-dna.cfg]