I'm having problems programming FPGAs with FT2232H+OpenOCD, I don't know how to solve it, I hope enthusiastic people in the community can help me out.
According to Xilinx UG470 manual, FPGA supports JTAG daisy chaining.

Xilinx Vivado Hardware Managers

Please tell me how to select the specified FPGA device in openocd.
The programmer device I am using is FT2232H.

ft2232h.cfg
interface ftdi
ftdi_vid_pid 0x0403 0x6011
ftdi_channel 0
ftdi_layout_init 0x0098 0x008b
reset_config none
source [find cpld/xilinx-xc7.cfg]
source [find cpld/jtagspi.cfg]
adapter_khz 10000
proc fpga_program {} {
global _CHIPNAME
xc7_program $_CHIPNAME.tap
}
init
jtagspi_init 0 bscan_spi_xc7a50t.bit
jtagspi_program bin.bin 0x0
fpga_program
shutdown
Try to connect using the JLink programmer
2 JTGA Taps appear, follow the prompts and add " jtag newtap auto0 tap -irlen 2 -expected-id 0x13631093 " to the cfg.
The pcb has 2 pieces of the same model FPGA type on it.
J-link.cfg
xc7.cfg add
scan_chain
openocd 0.10.0 log
FPGA info for Vivado
openocd 0.10.0 debug logs
The error seems to be related to the 2nd fpga IR read.
Debug: 273 363 core.c:1434 jtag_validate_ircapture(): xc7.tap: IR capture 0x35
Debug: 275 365 core.c:1434 jtag_validate_ircapture(): xc7_2.tap: IR capture 0x0001
Last edit: KooLee 2024-04-12
0.10.0 is very old and there have been significant development changes to its implementation since then.
You should probably consider using a more recent build of OpenOCD either from your distro's software repositories or manually built from the latest OpenOCD 0.12.0+ sources.
If you do this then you may need to make some small changes to your OpenOCD script(s).