aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Borneo <borneo.antonio@gmail.com>2020-10-31 14:49:23 +0100
committerAntonio Borneo <borneo.antonio@gmail.com>2020-11-07 20:53:53 +0000
commitba564bda6694769b95e22808982d087c779e6dd9 (patch)
tree11256212450543f788775ca16b92a042a9015c1a
parent384e90b06b5005aa04d695b8a67c81a0af646082 (diff)
downloadriscv-openocd-ba564bda6694769b95e22808982d087c779e6dd9.zip
riscv-openocd-ba564bda6694769b95e22808982d087c779e6dd9.tar.gz
riscv-openocd-ba564bda6694769b95e22808982d087c779e6dd9.tar.bz2
drivers/jlink: fix check for max prescaler
The value stored in TPIU ACPR is the prescaler value decremented by one. Thus, the test should verify that prescaler does not exceed the maximum ACPR value plus one. Also, zero value is not allowed for prescaler. Change-Id: I1817f04f2a310b2f413bad726f0cb9dd6a4172e2 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: http://openocd.zylin.com/5907 Tested-by: jenkins Reviewed-by: Adrian M Negreanu <adrian.negreanu@nxp.com>
-rw-r--r--src/jtag/drivers/jlink.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/jtag/drivers/jlink.c b/src/jtag/drivers/jlink.c
index ae8ce49..b915707 100644
--- a/src/jtag/drivers/jlink.c
+++ b/src/jtag/drivers/jlink.c
@@ -1270,7 +1270,7 @@ static bool calculate_swo_prescaler(unsigned int traceclkin_freq,
uint32_t trace_freq, uint16_t *prescaler)
{
unsigned int presc = (traceclkin_freq + trace_freq / 2) / trace_freq;
- if (presc > TPIU_ACPR_MAX_SWOSCALER)
+ if (presc == 0 || presc > TPIU_ACPR_MAX_SWOSCALER + 1)
return false;
/* Probe's UART speed must be within 3% of the TPIU's SWO baud rate. */
@@ -1296,7 +1296,7 @@ static bool detect_swo_freq_and_prescaler(struct jaylink_swo_speed speed,
*trace_freq = speed.freq / divider;
presc = ((1.0 - SWO_MAX_FREQ_DEV) * traceclkin_freq) / *trace_freq + 1;
- if (presc > TPIU_ACPR_MAX_SWOSCALER)
+ if (presc > TPIU_ACPR_MAX_SWOSCALER + 1)
break;
deviation = fabs(1.0 - ((double)*trace_freq * presc / traceclkin_freq));