From: Antonio Borneo Date: Thu, 7 Oct 2021 10:21:18 +0000 (+0200) Subject: jtag/adapter: move config vars in struct adapter_config X-Git-Tag: v0.12.0-rc1~447 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=ba7d0bc49148d89c27b8208120de9783a89058a7 jtag/adapter: move config vars in struct adapter_config Move the static variables used to configure the adapter in the struct adapter_config. Change-Id: I1639e2bd39d0cbb12c71dfa347025558879d8b1d Signed-off-by: Antonio Borneo Reviewed-on: https://review.openocd.org/c/openocd/+/6642 Tested-by: jenkins Reviewed-by: Tarek BOCHKATI --- diff --git a/src/jtag/adapter.c b/src/jtag/adapter.c index bdb131cf00..991338be8a 100644 --- a/src/jtag/adapter.c +++ b/src/jtag/adapter.c @@ -30,24 +30,26 @@ struct adapter_driver *adapter_driver; const char * const jtag_only[] = { "jtag", NULL }; +enum adapter_clk_mode { + CLOCK_MODE_UNSELECTED = 0, + CLOCK_MODE_KHZ, + CLOCK_MODE_RCLK +}; + /** * Adapter configuration */ static struct { + bool adapter_initialized; char *usb_location; + enum adapter_clk_mode clock_mode; + int speed_khz; + int rclk_fallback_speed_khz; } adapter_config; -/* speed in kHz*/ -static int speed_khz; -/* speed to fallback to when RCLK is requested but not supported */ -static int rclk_fallback_speed_khz; -static enum {CLOCK_MODE_UNSELECTED, CLOCK_MODE_KHZ, CLOCK_MODE_RCLK} clock_mode; - -static bool adapter_initialized; - bool is_adapter_initialized(void) { - return adapter_initialized; + return adapter_config.adapter_initialized; } /** @@ -70,14 +72,14 @@ int adapter_init(struct command_context *cmd_ctx) retval = adapter_driver->init(); if (retval != ERROR_OK) return retval; - adapter_initialized = true; + adapter_config.adapter_initialized = true; if (!adapter_driver->speed) { LOG_INFO("This adapter doesn't support configurable speed"); return ERROR_OK; } - if (clock_mode == CLOCK_MODE_UNSELECTED) { + if (adapter_config.clock_mode == CLOCK_MODE_UNSELECTED) { LOG_ERROR("An adapter speed is not selected in the init script." " Insert a call to \"adapter speed\" or \"jtag_rclk\" to proceed."); return ERROR_JTAG_INIT_FAILED; @@ -97,8 +99,8 @@ int adapter_init(struct command_context *cmd_ctx) LOG_INFO("adapter-specific clock speed value %d", jtag_speed_var); else if (actual_khz) { /* Adaptive clocking -- JTAG-specific */ - if ((clock_mode == CLOCK_MODE_RCLK) - || ((clock_mode == CLOCK_MODE_KHZ) && !requested_khz)) { + if ((adapter_config.clock_mode == CLOCK_MODE_RCLK) + || ((adapter_config.clock_mode == CLOCK_MODE_KHZ) && !requested_khz)) { LOG_INFO("RCLK (adaptive clock speed) not supported - fallback to %d kHz" , actual_khz); } else @@ -130,13 +132,13 @@ int adapter_quit(void) unsigned jtag_get_speed_khz(void) { - return speed_khz; + return adapter_config.speed_khz; } static int adapter_khz_to_speed(unsigned khz, int *speed) { LOG_DEBUG("convert khz to interface specific speed value"); - speed_khz = khz; + adapter_config.speed_khz = khz; if (!is_adapter_initialized()) return ERROR_OK; LOG_DEBUG("have interface set up"); @@ -172,7 +174,7 @@ static int jtag_set_speed(int speed) int jtag_config_khz(unsigned khz) { LOG_DEBUG("handle jtag khz"); - clock_mode = CLOCK_MODE_KHZ; + adapter_config.clock_mode = CLOCK_MODE_KHZ; int speed = 0; int retval = adapter_khz_to_speed(khz, &speed); return (retval != ERROR_OK) ? retval : jtag_set_speed(speed); @@ -181,8 +183,8 @@ int jtag_config_khz(unsigned khz) int jtag_config_rclk(unsigned fallback_speed_khz) { LOG_DEBUG("handle jtag rclk"); - clock_mode = CLOCK_MODE_RCLK; - rclk_fallback_speed_khz = fallback_speed_khz; + adapter_config.clock_mode = CLOCK_MODE_RCLK; + adapter_config.rclk_fallback_speed_khz = fallback_speed_khz; int speed = 0; int retval = jtag_rclk_to_speed(fallback_speed_khz, &speed); return (retval != ERROR_OK) ? retval : jtag_set_speed(speed); @@ -190,12 +192,12 @@ int jtag_config_rclk(unsigned fallback_speed_khz) int jtag_get_speed(int *speed) { - switch (clock_mode) { + switch (adapter_config.clock_mode) { case CLOCK_MODE_KHZ: adapter_khz_to_speed(jtag_get_speed_khz(), speed); break; case CLOCK_MODE_RCLK: - jtag_rclk_to_speed(rclk_fallback_speed_khz, speed); + jtag_rclk_to_speed(adapter_config.rclk_fallback_speed_khz, speed); break; default: LOG_ERROR("BUG: unknown jtag clock mode");