# openOCD configuration file for generic FT2232H-based USB-jtag interface
# references: https://mcuoneclipse.com/2019/10/20/jtag-debugging-the-esp32-with-ft2232-and-openocd/

# ----------------------------------------------
# Interface configuration
# ----------------------------------------------

# FT2232H pinout:
# TCK:  D0
# TDI:  D1
# TDO:  D2
# TMS:  D3
# TRST: D4 (low-active, optional - pull input pin high if not used)

adapter driver ftdi
ftdi_vid_pid 0x0403 0x6010
ftdi_channel 0
ftdi_layout_init 0x0038 0x003b

adapter speed 1000
ftdi_layout_signal nTRST -ndata 0x0010 -noe 0x0040
transport select jtag

# ----------------------------------------------
# Target configuration
# ----------------------------------------------

set _CHIPNAME neorv32
set _JTAGID 0x0cafe001
jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id $_JTAGID

set _TARGETNAME $_CHIPNAME.cpu

target create $_TARGETNAME.0 riscv -chain-position $_TARGETNAME

# ----------------------------------------------
# Scratch pad RAM
# ----------------------------------------------

# work area ("scratch pad RAM"): beginning of (internal) DMEM, 256 bytes, requires(!) backup
$_TARGETNAME.0 configure -work-area-phys 0x80000000 -work-area-size 256 -work-area-backup 1
