adapter: run at default speed when clock speed not specified
authorErhan Kurubas <erhan.kurubas@espressif.com>
Thu, 26 May 2022 20:43:41 +0000 (22:43 +0200)
committerAntonio Borneo <borneo.antonio@gmail.com>
Mon, 15 Aug 2022 13:19:45 +0000 (13:19 +0000)
Signed-off-by: Erhan Kurubas <erhan.kurubas@espressif.com>
Change-Id: I8d2db4a1f618790907265a45d28a212551800b6c
Reviewed-on: https://review.openocd.org/c/openocd/+/7004
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
src/jtag/adapter.c

index 14452d42f271979e7e5113f76c1652bb82c0f351..519505dc32466fd68b538fc79b4e9dea79fddaab 100644 (file)
@@ -36,6 +36,8 @@ enum adapter_clk_mode {
        CLOCK_MODE_RCLK
 };
 
+#define DEFAULT_CLOCK_SPEED_KHZ                100U
+
 /**
  * Adapter configuration
  */
@@ -70,6 +72,18 @@ int adapter_init(struct command_context *cmd_ctx)
        }
 
        int retval;
+
+       if (adapter_config.clock_mode == CLOCK_MODE_UNSELECTED) {
+               LOG_WARNING("An adapter speed is not selected in the init scripts."
+                       " OpenOCD will try to run the adapter at the low speed (%d kHz)",
+                       DEFAULT_CLOCK_SPEED_KHZ);
+               LOG_WARNING("To remove this warnings and achieve reasonable communication speed with the target,"
+                   " set \"adapter speed\" or \"jtag_rclk\" in the init scripts.");
+               retval = adapter_config_khz(DEFAULT_CLOCK_SPEED_KHZ);
+               if (retval != ERROR_OK)
+                       return ERROR_JTAG_INIT_FAILED;
+       }
+
        retval = adapter_driver->init();
        if (retval != ERROR_OK)
                return retval;
@@ -80,12 +94,6 @@ int adapter_init(struct command_context *cmd_ctx)
                return ERROR_OK;
        }
 
-       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;
-       }
-
        int requested_khz = adapter_get_speed_khz();
        int actual_khz = requested_khz;
        int speed_var = 0;