SWIM transport only supports two adapter speeds:
- "low speed" equal to 363 kHz (8 MHz / 22)
- "high speed" equal to 800 kHz (8 MHz / 10)
Replace the previous convention that use "0" or "1" for "low" or
"high" speed with the effective speed in kHz.
Rework the implementation of stlink_speed_swim().
Set low speed in the stm8 config files, because only low speed is
permitted at debug connection; the previous code ignores the
initial value.
Change-Id: I2484c9419a2c554c59eb6b9216339393ab0b54f3
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/5529
Tested-by: jenkins
#include <jtag/hla/hla_layout.h>
#include <jtag/hla/hla_transport.h>
#include <jtag/hla/hla_interface.h>
#include <jtag/hla/hla_layout.h>
#include <jtag/hla/hla_transport.h>
#include <jtag/hla/hla_interface.h>
#include <target/target.h>
#include <transport/transport.h>
#include <target/target.h>
#include <transport/transport.h>
static int stlink_speed_swim(void *handle, int khz, bool query)
{
static int stlink_speed_swim(void *handle, int khz, bool query)
{
- we dont care what the khz rate is
we only have low and high speed...
before changing speed the SWIM_CSR HS bit
must be updated
*/
we only have low and high speed...
before changing speed the SWIM_CSR HS bit
must be updated
*/
- if (khz == 0)
- stlink_swim_speed(handle, 0);
- else
- stlink_swim_speed(handle, 1);
- return khz;
+ if (!query) {
+ retval = stlink_swim_speed(handle, (khz < SWIM_FREQ_HIGH) ? 0 : 1);
+ if (retval != ERROR_OK)
+ LOG_ERROR("Unable to set adapter speed");
+ }
+
+ return (khz < SWIM_FREQ_HIGH) ? SWIM_FREQ_LOW : SWIM_FREQ_HIGH;
}
static int stlink_match_speed_map(const struct speed_map *map, unsigned int map_size, int khz, bool query)
}
static int stlink_match_speed_map(const struct speed_map *map, unsigned int map_size, int khz, bool query)
#ifndef OPENOCD_JTAG_SWIM_H
#define OPENOCD_JTAG_SWIM_H
#ifndef OPENOCD_JTAG_SWIM_H
#define OPENOCD_JTAG_SWIM_H
+#define SWIM_FREQ_LOW 363
+#define SWIM_FREQ_HIGH 800
+
struct swim_driver {
/**
* Send SRST (system reset) command to target.
struct swim_driver {
/**
* Send SRST (system reset) command to target.
retval = stm8_write_u8(target, SWIM_CSR, SAFE_MASK + SWIM_DM + HS);
if (retval != ERROR_OK)
return retval;
retval = stm8_write_u8(target, SWIM_CSR, SAFE_MASK + SWIM_DM + HS);
if (retval != ERROR_OK)
return retval;
+ jtag_config_khz(SWIM_FREQ_HIGH);
stm8->swim_configured = true;
/*
Now is the time to deassert reset if connect_under_reset.
stm8->swim_configured = true;
/*
Now is the time to deassert reset if connect_under_reset.
# Set stm8l type
$_TARGETNAME configure -enable_stm8l
# Set stm8l type
$_TARGETNAME configure -enable_stm8l
-# The khz rate does not apply here, only slow <0> and fast <1>
-adapter speed 1
+# Set low speed at debug entry
+adapter speed 363
# Uncomment this line to enable interrupts while instruction step
#$_TARGETNAME configure -enable_step_irq
# Uncomment this line to enable interrupts while instruction step
#$_TARGETNAME configure -enable_step_irq
-# The khz rate does not apply here, only slow <0> and fast <1>
-adapter speed 1
+# Set low speed at debug entry
+adapter speed 363
Linking to existing account procedure
If you already have an account and want to add another login method
you
MUST first sign in with your existing account and
then change URL to read
https://review.openocd.org/login/?link
to get to this page again but this time it'll work for linking. Thank you.
SSH host keys fingerprints
1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=.. |
|+o.. . |
|*.o . . |
|+B . . . |
|Bo. = o S |
|Oo.+ + = |
|oB=.* = . o |
| =+=.+ + E |
|. .=o . o |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)