This is an automated email from Gerrit. a ([email protected]) just uploaded a new patch set to Gerrit, which you can find at http://openocd.zylin.com/5838
-- gerrit commit 4a0dd3b1760eb0ff45ceafb5eacd52f8923658cb Author: m_s <[email protected]> Date: Fri Sep 18 23:49:29 2020 +0200 Xilinx XVC programmer on AXI bus Adding support for Xilinx XVC programming adapters that are not attached via PCIe but the internal memory bus of the device via e.g. AXI. Most likely situation is a Xilinx SoC ('Zynq') that contains an ARM processor and an FPGA that is the JTAG master for other devices. Change-Id: I8399587302dc1328fc6ab7ecf556ee803dfc9325 Signed-off-by: m_s <[email protected]> diff --git a/a.txt b/a.txt deleted file mode 100644 index 1621e73..0000000 --- a/a.txt +++ /dev/null @@ -1,83 +0,0 @@ -From 46300b568a0494053ec2dc15db16af3b358459db Mon Sep 17 00:00:00 2001 -From: m_s <[email protected]> -Date: Fri, 18 Sep 2020 20:26:34 +0200 -Subject: [PATCH] topic: Xilinx XVC programmer on AXI bus Adding support for - Xilinx XVC programming adapters that are not attached via PCIe but the - internal memory bus of the device via e.g. AXI. Most likely situation is a - Xilinx SoC ('Zynq') that contains an ARM processor and an FPGA that is the - JTAG master for other devices. - -Change-Id: I83f6b5c30ec74ce98f9b950213859dd5b3284817 -Signed-off-by: m_s <[email protected]> ---- - tools/m_s | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ - tools/m_s.pub | 1 + - 2 files changed, 50 insertions(+) - create mode 100644 tools/m_s - create mode 100644 tools/m_s.pub - -diff --git a/tools/m_s b/tools/m_s -new file mode 100644 -index 000000000..ad0fc6bb0 ---- /dev/null -+++ b/tools/m_s -@@ -0,0 +1,49 @@ -+-----BEGIN OPENSSH PRIVATE KEY----- -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 -+-----END OPENSSH PRIVATE KEY----- -diff --git a/tools/m_s.pub b/tools/m_s.pub -new file mode 100644 -index 000000000..4704f78f7 ---- /dev/null -+++ b/tools/m_s.pub -@@ -0,0 +1 @@ -+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDKt/4h99wNQfaE1LNiUYzrscPHhG3SN0nVc+BiqVp90/hwijtgxAk+57G+n4LC00rb5fVE6JRU//0ZoppJZ3QDqJRA1R91FImIxa2p3Z/6bt7DAhrNGgCS2DQ5a6/f1Cg2dDACgepbHwcvBNGSnG8McJdgu6MdX01WJaADsm87Ve2PuEO6or3fqjESTGwgQNQBHGOt4s9y/+BX/u41kdN2ymuwFaLYUHR9VRjgquSzscHOKKvkyAdKqCKoh7CKC17AFJO+ZloXTmqL8ugKyQYrl9rTkA6/DwvSUmk9FpQOXUCoilibr8aldeY11oacKPW5rE+fWP/GeAjz0nJMiJCP1uMqPOnHip7SDiNzT1nJ+9i5sPAAk3bLE2m3yix89RF4lac45YFJOQhQuEp7kTT4DBwwiZ3lhMp8QhmPkGuFbfSrVd1R9vDH0+nE2SzHrn05ROGsNb6qWr91HtwQfGZUqujHQTpCziI6o4r1pVvn8LNV43yFMGnwPCvnHWcb/NUe4KF8gpERAwGukCMvB7RTuygc7tmGJIXtadeVtlptq3A7sn4RQ2gMrTGQokW8BqgLjqmulogQZbnFKDFCvXv/AxRC6s8OZLY10/Vc371ctj6B97tRIlO1E1HN/qdrAk8G9GycX4SK/yc2vo0jzcGKOwv9OAIBIMpPv3LlsL8Xiw== [email protected] --- -2.26.0.windows.1 - diff --git a/src/jtag/drivers/xlnx-pcie-xvc.c b/src/jtag/drivers/xlnx-pcie-xvc.c index 2423a9f..c978a1b 100644 --- a/src/jtag/drivers/xlnx-pcie-xvc.c +++ b/src/jtag/drivers/xlnx-pcie-xvc.c @@ -29,9 +29,11 @@ #define XLNX_XVC_EXT_CAP 0x00 #define XLNX_XVC_VSEC_HDR 0x04 -#define XLNX_XVC_LEN_REG 0x0C -#define XLNX_XVC_TMS_REG 0x10 -#define XLNX_XVC_TDx_REG 0x14 + +#define XLNX_PCI_XVC_LEN_REG 0x0C +#define XLNX_PCI_XVC_TMS_REG 0x10 +#define XLNX_PCI_XVC_TDx_REG 0x14 + #define XLNX_XVC_CAP_SIZE 0x20 #define XLNX_XVC_VSEC_ID 0x8 @@ -40,12 +42,34 @@ #define MASK_ACK(x) (((x) >> 9) & 0x7) #define MASK_PAR(x) ((int)((x) & 0x1)) + +#define MODE_PCI 0x01 /* XVC device attached via PCIe */ +#define MODE_MMAP 0x02 /* XVC device available in general memory space e.g. as AXI device */ +/* #define MODE_ETH 0x03 /* Remote XVC device available via network (XAPP 1251 */ + +static int MODE = MODE_PCI; + + + struct xlnx_pcie_xvc { int fd; unsigned offset; char *device; }; +#define MAP_SIZE_AXI 0x10000 + +typedef struct { +uint32_t length_offset; +uint32_t tms_offset; +uint32_t tdi_offset; +uint32_t tdo_offset; +uint32_t ctrl_offset; +} axi_jtag_t; + +volatile axi_jtag_t *ptr; + + static struct xlnx_pcie_xvc xlnx_pcie_xvc_state; static struct xlnx_pcie_xvc *xlnx_pcie_xvc = &xlnx_pcie_xvc_state; @@ -95,27 +119,43 @@ static int xlnx_pcie_xvc_transact(size_t num_bits, uint32_t tms, uint32_t tdi, { int err; - err = xlnx_pcie_xvc_write_reg(XLNX_XVC_LEN_REG, num_bits); + if (MODE == MODE_PCI) { + err = xlnx_pcie_xvc_write_reg(XLNX_PCI_XVC_LEN_REG, num_bits); if (err != ERROR_OK) return err; - err = xlnx_pcie_xvc_write_reg(XLNX_XVC_TMS_REG, tms); + err = xlnx_pcie_xvc_write_reg(XLNX_PCI_XVC_TMS_REG, tms); if (err != ERROR_OK) return err; - err = xlnx_pcie_xvc_write_reg(XLNX_XVC_TDx_REG, tdi); + err = xlnx_pcie_xvc_write_reg(XLNX_PCI_XVC_TDx_REG, tdi); if (err != ERROR_OK) return err; - err = xlnx_pcie_xvc_read_reg(XLNX_XVC_TDx_REG, tdo); + err = xlnx_pcie_xvc_read_reg(XLNX_PCI_XVC_TDx_REG, tdo); if (err != ERROR_OK) return err; + } else if (MODE == MODE_MMAP) { + ptr->length_offset = num_bits; + ptr->tms_offset = tms; + ptr->tdi_offset = tdi; + ptr->ctrl_offset = 0x01; + + while (ptr->ctrl_offset) { + /* wait for end of transaction */ + } + + if (tdo) + *tdo = ptr->tdo_offset; + + } + if (tdo) - LOG_DEBUG_IO("Transact num_bits: %zu, tms: %" PRIx32 ", tdi: %" PRIx32 ", tdo: %" PRIx32, + LOG_DEBUG_IO("Transact num_bits: %zu, tms: %x, tdi: %x, tdo: %x", num_bits, tms, tdi, *tdo); else - LOG_DEBUG_IO("Transact num_bits: %zu, tms: %" PRIx32 ", tdi: %" PRIx32 ", tdo: <null>", + LOG_DEBUG_IO("Transact num_bits: %zu, tms: %x, tdi: %x, tdo: <null>", num_bits, tms, tdi); return ERROR_OK; } @@ -381,66 +421,93 @@ static int xlnx_pcie_xvc_execute_queue(void) static int xlnx_pcie_xvc_init(void) { - char filename[PATH_MAX]; - uint32_t cap, vh; - int err; - - snprintf(filename, PATH_MAX, "/sys/bus/pci/devices/%s/config", - xlnx_pcie_xvc->device); - xlnx_pcie_xvc->fd = open(filename, O_RDWR | O_SYNC); - if (xlnx_pcie_xvc->fd < 0) { - LOG_ERROR("Failed to open device: %s", filename); - return ERROR_JTAG_INIT_FAILED; - } + if (MODE == MODE_PCI) { + char filename[PATH_MAX]; + int err; + + snprintf(filename, PATH_MAX, "/sys/bus/pci/devices/%s/config", + xlnx_pcie_xvc->device); + xlnx_pcie_xvc->fd = open(filename, O_RDWR | O_SYNC); + if (xlnx_pcie_xvc->fd < 0) { + LOG_ERROR("Failed to open device: %s", filename); + return ERROR_JTAG_INIT_FAILED; + } - LOG_INFO("Scanning PCIe device %s's for Xilinx XVC/PCIe ...", - xlnx_pcie_xvc->device); - /* Parse the PCIe extended capability list and try to find - * vendor specific header */ - xlnx_pcie_xvc->offset = PCIE_EXT_CAP_LST; - while (xlnx_pcie_xvc->offset <= PCI_CFG_SPACE_EXP_SIZE - sizeof(cap) && - xlnx_pcie_xvc->offset >= PCIE_EXT_CAP_LST) { - err = xlnx_pcie_xvc_read_reg(XLNX_XVC_EXT_CAP, &cap); - if (err != ERROR_OK) - return err; - LOG_DEBUG("Checking capability at 0x%x; id=0x%04" PRIx32 " version=0x%" PRIx32 " next=0x%" PRIx32, - xlnx_pcie_xvc->offset, - PCI_EXT_CAP_ID(cap), - PCI_EXT_CAP_VER(cap), - PCI_EXT_CAP_NEXT(cap)); - if (PCI_EXT_CAP_ID(cap) == PCI_EXT_CAP_ID_VNDR) { - err = xlnx_pcie_xvc_read_reg(XLNX_XVC_VSEC_HDR, &vh); + LOG_INFO("Scanning PCIe device %s's for Xilinx XVC/PCIe ...", + xlnx_pcie_xvc->device); + /* Parse the PCIe extended capability list and try to find + * vendor specific header */ + xlnx_pcie_xvc->offset = PCIE_EXT_CAP_LST; + while (xlnx_pcie_xvc->offset <= PCI_CFG_SPACE_EXP_SIZE - sizeof(cap) && + xlnx_pcie_xvc->offset >= PCIE_EXT_CAP_LST) { + err = xlnx_pcie_xvc_read_reg(XLNX_XVC_EXT_CAP, &cap); if (err != ERROR_OK) return err; - LOG_DEBUG("Checking possible match at 0x%x; id: 0x%" PRIx32 "; rev: 0x%" PRIx32 "; length: 0x%" PRIx32, + LOG_DEBUG("Checking capability at 0x%x; id=0x%04" PRIx32 " version=0x%" PRIx32 " next=0x%" PRIx32, xlnx_pcie_xvc->offset, - PCI_VNDR_HEADER_ID(vh), - PCI_VNDR_HEADER_REV(vh), - PCI_VNDR_HEADER_LEN(vh)); - if ((PCI_VNDR_HEADER_ID(vh) == XLNX_XVC_VSEC_ID) && - (PCI_VNDR_HEADER_LEN(vh) == XLNX_XVC_CAP_SIZE)) - break; + PCI_EXT_CAP_ID(cap), + PCI_EXT_CAP_VER(cap), + PCI_EXT_CAP_NEXT(cap)); + if (PCI_EXT_CAP_ID(cap) == PCI_EXT_CAP_ID_VNDR) { + err = xlnx_pcie_xvc_read_reg(XLNX_XVC_VSEC_HDR, &vh); + if (err != ERROR_OK) + return err; + LOG_DEBUG("Checking possible match at 0x%x; id: 0x%" PRIx32 "; rev: 0x%" PRIx32 "; length: 0x%" PRIx32, + xlnx_pcie_xvc->offset, + PCI_VNDR_HEADER_ID(vh), + PCI_VNDR_HEADER_REV(vh), + PCI_VNDR_HEADER_LEN(vh)); + if ((PCI_VNDR_HEADER_ID(vh) == XLNX_XVC_VSEC_ID) && + (PCI_VNDR_HEADER_LEN(vh) == XLNX_XVC_CAP_SIZE)) + break; + } + xlnx_pcie_xvc->offset = PCI_EXT_CAP_NEXT(cap); + } + if ((xlnx_pcie_xvc->offset > PCI_CFG_SPACE_EXP_SIZE - XLNX_XVC_CAP_SIZE) || + xlnx_pcie_xvc->offset < PCIE_EXT_CAP_LST) { + close(xlnx_pcie_xvc->fd); + return ERROR_JTAG_INIT_FAILED; } - xlnx_pcie_xvc->offset = PCI_EXT_CAP_NEXT(cap); - } - if ((xlnx_pcie_xvc->offset > PCI_CFG_SPACE_EXP_SIZE - XLNX_XVC_CAP_SIZE) || - xlnx_pcie_xvc->offset < PCIE_EXT_CAP_LST) { - close(xlnx_pcie_xvc->fd); - return ERROR_JTAG_INIT_FAILED; - } - LOG_INFO("Found Xilinx XVC/PCIe capability at offset: 0x%x", xlnx_pcie_xvc->offset); + LOG_INFO("Found Xilinx XVC/PCIe capability at offset: 0x%x", xlnx_pcie_xvc->offset); - return ERROR_OK; + return ERROR_OK; + + } else if (MODE == MODE_MMAP) { + + int fd_uio; + fd_uio = open(xlnx_pcie_xvc->device, O_RDWR); + if (fd_uio < 1) { + LOG_ERROR("Failed to open device: %s\n", xlnx_pcie_xvc->device); + return ERROR_JTAG_INIT_FAILED; + } + + ptr = (volatile axi_jtag_t *) mmap(NULL, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd_uio, 0); + if (ptr == MAP_FAILED) { + LOG_ERROR("MMAP Failed\n"); + return ERROR_JTAG_INIT_FAILED; + } + close(fd_uio); + LOG_INFO("Found Xilinx XVC/PCIe capability at offset: 0x%x", xlnx_pcie_xvc->offset); + + return ERROR_OK; + + } else { /* (TODO: add support for IOCTL variant and ETH MODE) */ + return ERROR_COMMAND_SYNTAX_ERROR; + } } static int xlnx_pcie_xvc_quit(void) { - int err; + if (MODE == MODE_PCI) { + int err; + err = close(xlnx_pcie_xvc->fd); + if (err) + return err; - err = close(xlnx_pcie_xvc->fd); - if (err) - return err; + } else if (MODE == MODE_MMAP) { + munmap((void *) ptr, MAP_SIZE_AXI); + } return ERROR_OK; } @@ -454,20 +521,44 @@ COMMAND_HANDLER(xlnx_pcie_xvc_handle_config_command) * limit the memory we're leaking by freeing the old one first * before allocating a new one ... */ - free(xlnx_pcie_xvc->device); + + if (xlnx_pcie_xvc->device) + free(xlnx_pcie_xvc->device); xlnx_pcie_xvc->device = strdup(CMD_ARGV[0]); return ERROR_OK; } +COMMAND_HANDLER(xlnx_pcie_xvc_handle_ismmapdevice_command) +{ + int flag = 0; + if (CMD_ARGC != 1) + return ERROR_COMMAND_SYNTAX_ERROR; + + COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], flag); + if (flag != 0) { + MODE = MODE_MMAP; + command_print(CMD, "Memory mapped XVC device, path = %s", xlnx_pcie_xvc->device); + } + return ERROR_OK; +} + static const struct command_registration xlnx_pcie_xvc_command_handlers[] = { { .name = "xlnx_pcie_xvc_config", .handler = xlnx_pcie_xvc_handle_config_command, .mode = COMMAND_CONFIG, - .help = "Configure XVC/PCIe JTAG adapter", + .help = "Configure XVC JTAG adapter (supply full device path in case of memory mapped device)", .usage = "device", }, + { + .name = "xlnx_pcie_xvc_is_mmap_device", + .handler = &xlnx_pcie_xvc_handle_ismmapdevice_command, + .mode = COMMAND_CONFIG, + .help = "Set to 1 when the XVC device is not attached via PCIe, \ + but available via mmap (e.g. an UIO device attached to the AXI bus)", + .usage = "devoffset_in_mmapped_space", + }, COMMAND_REGISTRATION_DONE }; diff --git a/tools/m_s b/tools/m_s deleted file mode 100644 index ad0fc6b..0000000 --- a/tools/m_s +++ /dev/null @@ -1,49 +0,0 @@ ------BEGIN OPENSSH PRIVATE KEY----- -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 ------END OPENSSH PRIVATE KEY----- diff --git a/tools/m_s.pub b/tools/m_s.pub deleted file mode 100644 index 4704f78..0000000 --- a/tools/m_s.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDKt/4h99wNQfaE1LNiUYzrscPHhG3SN0nVc+BiqVp90/hwijtgxAk+57G+n4LC00rb5fVE6JRU//0ZoppJZ3QDqJRA1R91FImIxa2p3Z/6bt7DAhrNGgCS2DQ5a6/f1Cg2dDACgepbHwcvBNGSnG8McJdgu6MdX01WJaADsm87Ve2PuEO6or3fqjESTGwgQNQBHGOt4s9y/+BX/u41kdN2ymuwFaLYUHR9VRjgquSzscHOKKvkyAdKqCKoh7CKC17AFJO+ZloXTmqL8ugKyQYrl9rTkA6/DwvSUmk9FpQOXUCoilibr8aldeY11oacKPW5rE+fWP/GeAjz0nJMiJCP1uMqPOnHip7SDiNzT1nJ+9i5sPAAk3bLE2m3yix89RF4lac45YFJOQhQuEp7kTT4DBwwiZ3lhMp8QhmPkGuFbfSrVd1R9vDH0+nE2SzHrn05ROGsNb6qWr91HtwQfGZUqujHQTpCziI6o4r1pVvn8LNV43yFMGnwPCvnHWcb/NUe4KF8gpERAwGukCMvB7RTuygc7tmGJIXtadeVtlptq3A7sn4RQ2gMrTGQokW8BqgLjqmulogQZbnFKDFCvXv/AxRC6s8OZLY10/Vc371ctj6B97tRIlO1E1HN/qdrAk8G9GycX4SK/yc2vo0jzcGKOwv9OAIBIMpPv3LlsL8Xiw== [email protected] diff --git a/tools/scripts/a.txt b/tools/scripts/a.txt deleted file mode 100644 index e69de29..0000000 -- _______________________________________________ OpenOCD-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openocd-devel
