This is an automated email from Gerrit. "Name of user not set <chris.whee...@narfindustries.com>" just uploaded a new patch set to Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8161
-- gerrit commit cc5dd46ad81a53b65de28c01852e971533b4a708 Author: WheelNarf <chris.whee...@narfindustries.com> Date: Thu Feb 22 09:22:24 2024 -0800 jtag/drivers/imx_gpio: imx srst/trst on JTAG The JTAG configuration of imx does not have srst/trst via the adapter interface, this patch adds it so it can be set in the cfg file. Change-Id: I1393b67d6c7749c48172360fdf33807edb4d57ec Signed-off-by: WheelNarf <chris.whee...@narfindustries.com> diff --git a/src/jtag/drivers/imx_gpio.c b/src/jtag/drivers/imx_gpio.c index d44b1278c0..6ca123596b 100644 --- a/src/jtag/drivers/imx_gpio.c +++ b/src/jtag/drivers/imx_gpio.c @@ -10,6 +10,7 @@ #include "config.h" #endif +#include <jtag/adapter.h> #include <jtag/interface.h> #include <transport/transport.h> #include "bitbang.h" @@ -465,6 +466,25 @@ static bool imx_gpio_swd_mode_possible(void) static int imx_gpio_init(void) { bitbang_interface = &imx_gpio_bitbang; + const struct adapter_gpio_config *adapter_gpio_config = adapter_gpio_get_config(); + uint32_t chip_num = 0; + uint32_t gpio_num = 0; + + if (adapter_gpio_config) { + //SRST GPIO + chip_num = adapter_gpio_config[ADAPTER_GPIO_IDX_SRST].chip_num; + gpio_num = adapter_gpio_config[ADAPTER_GPIO_IDX_SRST].gpio_num; + + if (chip_num < IMX_GPIO_REGS_COUNT && gpio_num < 32) + srst_gpio = chip_num * 32 + gpio_num; + + //TRST GPIO + chip_num = adapter_gpio_config[ADAPTER_GPIO_IDX_TRST].chip_num; + gpio_num = adapter_gpio_config[ADAPTER_GPIO_IDX_TRST].gpio_num; + + if (chip_num < IMX_GPIO_REGS_COUNT && gpio_num < 32) + trst_gpio = chip_num * 32 + gpio_num; + } LOG_INFO("imx_gpio GPIO JTAG/SWD bitbang driver"); @@ -485,7 +505,7 @@ static int imx_gpio_init(void) } LOG_INFO("imx_gpio mmap: pagesize: %u, regionsize: %u", - (unsigned int) sysconf(_SC_PAGE_SIZE), IMX_GPIO_REGS_COUNT * IMX_GPIO_SIZE); + (unsigned int)sysconf(_SC_PAGE_SIZE), IMX_GPIO_REGS_COUNT * IMX_GPIO_SIZE); pio_base = mmap(NULL, IMX_GPIO_REGS_COUNT * IMX_GPIO_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, dev_mem_fd, imx_gpio_peri_base); --