On Thursday, April 28, 2011 12:38 PM, Øyvind Harboe [mailto:oyvind.har...@zylin.com] wrote: > > I haven't been able to test, but this does indeed seem > like what we need. > > Testing anyone? > > Do we want to do away with "adapter_speed" as user visible command entirely? > > The error message should use adapter_khz instead of "adapter_speed". >
I do not think there exist a command named "adapter_speed". A patch with a corrected error message is attached. /Jonas Hörberg Signed-off-by: Jonas Hörberg <jhorb...@sauer-danfoss.com> --- src/jtag/core.c | 15 +++++++++++---- src/jtag/drivers/amt_jtagaccel.c | 6 ------ src/jtag/drivers/ft2232.c | 6 ------ src/jtag/drivers/gw16012.c | 5 ----- src/jtag/drivers/jlink.c | 5 ----- src/jtag/drivers/parport.c | 4 ---- src/jtag/drivers/presto.c | 7 ------- src/jtag/drivers/rlink.c | 5 ----- src/jtag/drivers/usb_blaster.c | 6 ------ src/jtag/zy1000/zy1000.c | 5 ----- 10 files changed, 11 insertions(+), 53 deletions(-) diff --git a/src/jtag/core.c b/src/jtag/core.c index 4c5d37a..55bb2a8 100644 --- a/src/jtag/core.c +++ b/src/jtag/core.c @@ -124,7 +124,7 @@ static struct jtag_event_callback *jtag_event_callbacks; static int speed_khz = 0; /* speed to fallback to when RCLK is requested but not supported */ static int rclk_fallback_speed_khz = 0; -static enum {CLOCK_MODE_SPEED, CLOCK_MODE_KHZ, CLOCK_MODE_RCLK} clock_mode; +static enum {CLOCK_MODE_UNSELECTED, CLOCK_MODE_KHZ, CLOCK_MODE_RCLK} clock_mode; static int jtag_speed = 0; static struct jtag_interface *jtag = NULL; @@ -1389,12 +1389,22 @@ int adapter_init(struct command_context *cmd_ctx) return retval; } + if (CLOCK_MODE_UNSELECTED == clock_mode) + { + LOG_ERROR("An adapter speed is not selected in the init script." + " Insert a call to adapter_khz or jtag_rclk to proceed."); + return ERROR_JTAG_INIT_FAILED; + } + int requested_khz = jtag_get_speed_khz(); int actual_khz = requested_khz; int jtag_speed_var; retval = jtag_get_speed(&jtag_speed_var); if (retval != ERROR_OK) return retval; + retval = jtag->speed(jtag_speed_var); + if (retval != ERROR_OK) + return retval; retval = jtag_get_speed_readable(&actual_khz); if (ERROR_OK != retval) LOG_INFO("adapter-specific clock speed value %d", jtag_speed_var); @@ -1647,9 +1657,6 @@ int jtag_get_speed(int *speed) { switch(clock_mode) { - case CLOCK_MODE_SPEED: - *speed = jtag_speed; - break; case CLOCK_MODE_KHZ: adapter_khz_to_speed(jtag_get_speed_khz(), speed); break; diff --git a/src/jtag/drivers/amt_jtagaccel.c b/src/jtag/drivers/amt_jtagaccel.c index ee44a2b..a433e81 100644 --- a/src/jtag/drivers/amt_jtagaccel.c +++ b/src/jtag/drivers/amt_jtagaccel.c @@ -506,12 +506,6 @@ static int amt_jtagaccel_init(void) aw_control_fsm |= 0x04; AMT_AW(aw_control_fsm); - int jtag_speed_var; - int retval = jtag_get_speed(&jtag_speed_var); - if (retval != ERROR_OK) - return retval; - amt_jtagaccel_speed(jtag_speed_var); - enum reset_types jtag_reset_config = jtag_get_reset_config(); if (jtag_reset_config & RESET_TRST_OPEN_DRAIN) aw_control_rst &= ~0x8; diff --git a/src/jtag/drivers/ft2232.c b/src/jtag/drivers/ft2232.c index fdabb64..8c2382a 100644 --- a/src/jtag/drivers/ft2232.c +++ b/src/jtag/drivers/ft2232.c @@ -2485,12 +2485,6 @@ static int ft2232_init(void) return ERROR_JTAG_INIT_FAILED; } - int jtag_speed_var; - retval = jtag_get_speed(&jtag_speed_var); - if (retval != ERROR_OK) - return retval; - ft2232_speed(jtag_speed_var); - buf[0] = 0x85; /* Disconnect TDI/DO to TDO/DI for Loopback */ if ((retval = ft2232_write(buf, 1, &bytes_written)) != ERROR_OK) { diff --git a/src/jtag/drivers/gw16012.c b/src/jtag/drivers/gw16012.c index 1729299..22a37ac 100644 --- a/src/jtag/drivers/gw16012.c +++ b/src/jtag/drivers/gw16012.c @@ -529,11 +529,6 @@ static int gw16012_init(void) gw16012_input(&status_port); gw16012_msb = (status_port & 0x80) ^ 0x80; - int jtag_speed_var; - int retval = jtag_get_speed(&jtag_speed_var); - if (retval != ERROR_OK) - return retval; - gw16012_speed(jtag_speed_var); gw16012_reset(0, 0); return ERROR_OK; diff --git a/src/jtag/drivers/jlink.c b/src/jtag/drivers/jlink.c index 6eb707a..adaa640 100644 --- a/src/jtag/drivers/jlink.c +++ b/src/jtag/drivers/jlink.c @@ -439,11 +439,6 @@ static int jlink_init(void) jlink_reset(0, 0); jtag_sleep(3000); jlink_tap_init(); - int jtag_speed_var; - int retval = jtag_get_speed(&jtag_speed_var); - if (retval != ERROR_OK) - return retval; - jlink_speed(jtag_speed_var); /* v5/6 jlink seems to have an issue if the first tap move * is not divisible by 8, so we send a TLR on first power up */ diff --git a/src/jtag/drivers/parport.c b/src/jtag/drivers/parport.c index b61f2f1..ad07791 100644 --- a/src/jtag/drivers/parport.c +++ b/src/jtag/drivers/parport.c @@ -384,10 +384,6 @@ static int parport_init(void) bitbang_interface = &parport_bitbang; - int retval = jtag_get_speed(&wait_states); - if (retval != ERROR_OK) - return retval; - return ERROR_OK; } diff --git a/src/jtag/drivers/presto.c b/src/jtag/drivers/presto.c index ca6e9d5..2328c26 100644 --- a/src/jtag/drivers/presto.c +++ b/src/jtag/drivers/presto.c @@ -769,13 +769,6 @@ static int presto_jtag_init(void) } LOG_INFO("PRESTO open, serial number '%s'", presto->serial); - /* use JTAG speed setting from configuration file */ - int jtag_speed_var; - int retval = jtag_get_speed(&jtag_speed_var); - if (retval != ERROR_OK) - return retval; - presto_jtag_speed(jtag_speed_var); - bitq_interface = &presto_bitq; return ERROR_OK; } diff --git a/src/jtag/drivers/rlink.c b/src/jtag/drivers/rlink.c index 4b3e2ae..5f53dbc 100644 --- a/src/jtag/drivers/rlink.c +++ b/src/jtag/drivers/rlink.c @@ -1771,11 +1771,6 @@ int rlink_init(void) tap_state_queue_init(); dtc_queue_init(); - int jtag_speed_var; - int retval = jtag_get_speed(&jtag_speed_var); - if (retval != ERROR_OK) - return retval; - rlink_speed(jtag_speed_var); rlink_reset(0, 0); return ERROR_OK; diff --git a/src/jtag/drivers/usb_blaster.c b/src/jtag/drivers/usb_blaster.c index 68867ad..b046b71 100644 --- a/src/jtag/drivers/usb_blaster.c +++ b/src/jtag/drivers/usb_blaster.c @@ -474,12 +474,6 @@ static int usb_blaster_init(void) bitbang_interface = &usb_blaster_bitbang; - int jtag_speed_var; - int retval = jtag_get_speed(&jtag_speed_var); - if (retval != ERROR_OK) - return retval; - usb_blaster_speed(jtag_speed_var); - #if 0 #if BUILD_USB_BLASTER_FTD2XX == 1 if ((status = FT_Purge(ftdih, FT_PURGE_RX | FT_PURGE_TX)) != FT_OK) diff --git a/src/jtag/zy1000/zy1000.c b/src/jtag/zy1000/zy1000.c index 8c37666..7a3a0f2 100644 --- a/src/jtag/zy1000/zy1000.c +++ b/src/jtag/zy1000/zy1000.c @@ -1505,11 +1505,6 @@ int zy1000_init(void) /* deassert resets. Important to avoid infinite loop waiting for SRST to deassert */ zy1000_reset(0, 0); - int jtag_speed_var; - int retval = jtag_get_speed(&jtag_speed_var); - if (retval != ERROR_OK) - return retval; - zy1000_speed(jtag_speed_var); #if BUILD_ZY1000_MASTER #if BUILD_ECOSBOARD -- 1.7.2.5
0001-adapter-speed-require-init-script-setting-and-centra.patch
Description: 0001-adapter-speed-require-init-script-setting-and-centra.patch
_______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development