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 <andrew.smirnov@gmail.com>
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/2224
Tested-by: jenkins
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
__archive__
Paul Fertser 2014-07-19 16:48:09 +04:00 committed by Andreas Fritiofson
parent 6733253219
commit 66e20117e8
1 changed files with 3 additions and 1 deletions

View File

@ -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;
}