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);

-- 

Reply via email to