From: Paul Fertser Date: Sat, 19 Jul 2014 12:48:09 +0000 (+0400) Subject: drivers/jlink: fix SWD speed config, and set it before sending anything X-Git-Tag: v0.9.0-rc1~322 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=66e20117e8529bb0f37cf81302f1afebbe71d4b5;p=openocd drivers/jlink: fix SWD speed config, and set it before sending anything During the initialisation a driver might need to communicate with the target (e.g. sending jtag2swd sequence), so when doing so it should honour the user-specified speed. Change-Id: If84fea6057fda9edcf2c0a653edfbab2500e3cdd [andrew.smirnov@gmail.com: fix khz/hz confusion] Signed-off-by: Andrey Smirnov Signed-off-by: Paul Fertser Reviewed-on: http://openocd.zylin.com/2224 Tested-by: jenkins Reviewed-by: Andreas Fritiofson --- diff --git a/src/jtag/drivers/jlink.c b/src/jtag/drivers/jlink.c index 871bf24c..9d25eb42 100644 --- a/src/jtag/drivers/jlink.c +++ b/src/jtag/drivers/jlink.c @@ -559,6 +559,8 @@ static int jlink_init(void) jtag_sleep(3000); jlink_tap_init(); + jlink_speed(jtag_get_speed_khz()); + if (!swd_mode) { /* 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 */ @@ -1343,7 +1345,7 @@ static void jlink_swd_read_reg(struct adiv5_dap *dap, uint8_t cmd, uint32_t *val static int_least32_t jlink_swd_frequency(struct adiv5_dap *dap, int_least32_t hz) { if (hz > 0) - jlink_speed(hz); + jlink_speed(hz / 1000); return hz; }