Skip to content

Commit

Permalink
jtagspi/pld: add support from xilinx driver
Browse files Browse the repository at this point in the history
Provide jtagspi with information to use jtagspi for
programming spi-flash devices on xilinx devices
using a proxy bitstream.

Change-Id: I68000d71de25118ed8a8603e544cff1dc69bd9ba
Signed-off-by: Daniel Anselmi <danselmi@gmx.ch>
Reviewed-on: https://review.openocd.org/c/openocd/+/7836
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
  • Loading branch information
danselmi authored and borneoa committed Sep 23, 2023
1 parent b2a2294 commit 2d4fd58
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
16 changes: 16 additions & 0 deletions src/pld/virtex2.c
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,21 @@ static int xilinx_get_ipdbg_hub(int user_num, struct pld_device *pld_device, str
return ERROR_OK;
}

static int xilinx_get_jtagspi_userircode(struct pld_device *pld_device, unsigned int *ir)
{
if (!pld_device || !pld_device->driver_priv)
return ERROR_FAIL;
struct virtex2_pld_device *pld_device_info = pld_device->driver_priv;

if (pld_device_info->command_set.num_user < 1) {
LOG_ERROR("code for command 'select user1' is unknown");
return ERROR_FAIL;
}

*ir = pld_device_info->command_set.user[0];
return ERROR_OK;
}

COMMAND_HANDLER(virtex2_handle_set_instuction_codes_command)
{
if (CMD_ARGC < 6 || CMD_ARGC > (6 + VIRTEX2_MAX_USER_INSTRUCTIONS))
Expand Down Expand Up @@ -460,4 +475,5 @@ struct pld_driver virtex2_pld = {
.pld_create_command = &virtex2_pld_create_command,
.load = &virtex2_load,
.get_ipdbg_hub = xilinx_get_ipdbg_hub,
.get_jtagspi_userircode = xilinx_get_jtagspi_userircode,
};
25 changes: 25 additions & 0 deletions tcl/board/digilent_cmod_s7.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# SPDX-License-Identifier: GPL-2.0-or-later

# digilent CMOD S7
# https://digilent.com/reference/programmable-logic/cmod-s7/reference-manual


adapter driver ftdi
ftdi channel 0
ftdi layout_init 0x0008 0x008b
ftdi vid_pid 0x0403 0x6010
reset_config none
transport select jtag

adapter speed 10000

source [find cpld/xilinx-xc7.cfg]

# "ipdbg -start -tap xc7.tap -hub 0x02 -tool 0 -port 5555"
#openocd -f board/digilent_cmod_s7.cfg -c "init" -c "pld load xc7.pld shared_folder/cmod_s7_fast.bit"

set JTAGSPI_CHAIN_ID xc7.pld
source [find cpld/jtagspi.cfg]

#jtagspi_init xc7.pld "shared_folder/bscan_spi_xc7s25.bit" 0xab
#jtagspi_program shared_folder/cmod_s7_fast.bit 0

0 comments on commit 2d4fd58

Please sign in to comment.