aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2023-03-18target/image: zero-initialize ELF segments up to p_memszPeter Collingbourne1-20/+34
We were previously not zero-initializing ELF segments between p_filesz and p_memsz (aka BSS). However, this may be necessary depending on the user's application. Therefore, start doing so. Change-Id: I5a743390069583aca7ee276f53afeccf2cac0855 Signed-off-by: Peter Collingbourne <pcc@google.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7513 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-03-18flash/nor/at91samd: add missing SAMR34/35 part numbersAndrew Lalaev1-0/+4
All DIDs are taken from "SAM R34/R35 Errata Sheet" (DS80000834A). Signed-off-by: Andrew Lalaev <andrey.lalaev@gmail.com> Change-Id: Ie35f58e61bb02919c0676c91938c90192481d995 Reviewed-on: https://review.openocd.org/c/openocd/+/7521 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
2023-03-18flash/nor/at91samd: fix RAM size for SAMR34/35Andrew Lalaev1-2/+2
According to the datasheets these MCUs have 40Kb RAM. Signed-off-by: Andrew Lalaev <andrey.lalaev@gmail.com> Change-Id: I52b8a0c86035bccd6f3c1a478bb2e558bca4ae86 Reviewed-on: https://review.openocd.org/c/openocd/+/7520 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
2023-03-18drivers/ftdi: prevent misleading error msg when more vid/pids configuredTomas Vanek2-19/+8
The driver tries to open mpsse engine for each vid pid pair in sequence. If more vid/pid pairs are configured and the USB device does not correspond to the first pair, the driver shows 'unable to open ftdi device ...' error. Match vid pid with the whole list as used in jtag_libusb_open() instead of multiple mpsse_open() in for loop over vid/pid pairs. Change-Id: I8ef55205be221c727607fe25b81ae21de0d96f02 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/7529 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-by: Wolfram Sang <wsa@kernel.org>
2023-03-18drivers/libusb_helper: allow external use of jtag_libusb_match_ids()Tomas Vanek2-1/+3
Can be employed by a driver with custom libusb open. Change-Id: I00c8a01df8780891a8b7c30e2e34ab191acdf9a8 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/7528 Tested-by: jenkins Reviewed-by: Wolfram Sang <wsa@kernel.org> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-02-26jtag/drivers/cmsis_dap: run queue on reaching transaction limitPeter Collingbourne1-1/+3
We currently fail the transfer when issuing more than 255 transactions at once, e.g. > read_memory 0x10000000 32 256 CMSIS-DAP transfer count mismatch: expected 257, got 1 This is because the protocol only supports 255 transactions per packet (65535 for block transactions), and as a result we truncate the transaction count when assembling the packet. Fix it by running the queue when we hit the limit. Change-Id: Ia9e01e3af5ad035f2cf2a32292c9d66e57eafae9 Signed-off-by: Peter Collingbourne <pcc@google.com> Fixes: 40bac8e8c4e5 ("jtag/drivers/cmsis_dap: improve USB packets filling") Reviewed-on: https://review.openocd.org/c/openocd/+/7483 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
2023-02-26helper: command: drop last LF ('\n') from sequence of command_print()Antonio Borneo2-2/+21
The OpenOCD commands produce their TCL text result through the pair command_print() and command_print_sameline(). The latter is used to concatenate output in a single line. At the end of a sequence of command_print(), the last LF is taken as part of the command result, while it is not always needed, and it is even annoying when the output of two commands needs to be concatenate in a single line. Using command_print_sameline() in place of the last call to command_print() would solve the problem but it's quite expensive in term of coding to fix all the existing commands. Drop the last LF, if present. Commands that would specifically need a LF as last char, can add an extra LF at the end of the output. Document this behavior in command.h. Change-Id: I6757c20fbfce923dd393083146e8d5a1f3b790b4 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7471 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
2023-02-18flash/nor/spi: add 25pe{10/20/40/80/16}Daniel Anselmi1-0/+5
Change-Id: Ic5660bff83b8636ef397482a3313971ecdff72c0 Signed-off-by: Daniel Anselmi <danselmi@gmx.ch> Reviewed-on: https://review.openocd.org/c/openocd/+/7416 Tested-by: jenkins Reviewed-by: Andreas Bolsch <hyphen0break@gmail.com> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-02-12new SPI memory devices, continuation code for manufacturer idAndreas Bolsch1-9/+64
A bunch of new SPI flash (Adesto, Cypress, XTX Tech, mainly octal) IDs and SPI FRAM (Infineon) IDs added. Backward compatible change of ID interpretation: The previously unused 4th byte now acts as continuation code (0x7F) count for manufacturer id, cf. JEDEC JEP106BC. Currently this affects only some recent octal flash and FRAM devices, which are only supported by stmqspi and cmspi flash drivers. Change-Id: Ibdcac81a84c636dc68439add4461b959df429bca Signed-off-by: Andreas Bolsch <hyphen0break@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6929 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-02-03flash/nor/stm32l4x: Add revision 'Z' for STM32L552/562 devicesMarc Schink1-1/+1
Change-Id: Icc6058ef1f43e969a2a9baadfaf382ac820a7b76 Signed-off-by: Marc Schink <dev@zapb.de> Reviewed-on: https://review.openocd.org/c/openocd/+/7468 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-02-03target: arc: rewrite command 'arc add-reg' as COMMAND_HANDLERAntonio Borneo2-143/+96
While there, fix some coding style error and remove the now unused function jim_arc_read_reg_name_field() and the macro JIM_CHECK_RETVAL(). Change-Id: I140b4b929978b2936f2310e0b7d1735ba726c517 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7426 Tested-by: jenkins Reviewed-by: Evgeniy Didin <didin@synopsys.com>
2023-02-03target: arc: rewrite command 'arc add-reg-type-struct' as COMMAND_HANDLERAntonio Borneo1-151/+101
Use a COMMAND_HELPER() to avoid memory leaks when the helper COMMAND_PARSE_NUMBER() returns due to an error. While there: - fix potential SIGSEGV due to dereference 'type' before checking it's not NULL; - fix an incorrect NUL byte termination while copying to type->data_type.id and to bitfields[cur_field].name; - fix some coding style error; - remove the now unused function jim_arc_read_reg_type_field(). Change-Id: I7158fd93b5d4742f11654b8ae4a7abd409ad06e2 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7425 Tested-by: jenkins Reviewed-by: Evgeniy Didin <didin@synopsys.com>
2023-02-03target: arc: rewrite command 'arc add-reg-type-flags' as COMMAND_HANDLERAntonio Borneo1-103/+94
Use a COMMAND_HELPER() to avoid memory leaks when the helper COMMAND_PARSE_NUMBER() returns due to an error. While there: - fix potential SIGSEGV due to dereference 'type' before checking it's not NULL; - fix an incorrect NUL byte termination while copying to type->data_type.id and to bitfields[cur_field].name; - fix some coding style error. Change-Id: Ide4cbc829871a6a523026ccc0d3100dadc2afd06 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7424 Tested-by: jenkins Reviewed-by: Evgeniy Didin <didin@synopsys.com>
2023-02-03helper: nvp: add openocd nvp filesAntonio Borneo3-1/+145
Long ago jim_nvp was part of jimtcl. When jimtcl dropped it, OpenOCD kept copy of it in its code base. Current code of jim_nvp is still related with jimtcl data types and functions. With the target of better isolating OpenOCD code from jimtcl, create a new file nvp.c that re-proposes only the core of the old jim_nvp, dropping any link with jimtcl and removing the string 'jim' either from the filename and from the code. Keep the same license from the old code, as the new files are clearly derived from it. Change-Id: I273448cf1f1484b10f6b6113ed7bb0fcf946482b Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7423 Tested-by: jenkins Reviewed-by: Evgeniy Didin <didin@synopsys.com>
2023-02-03target: arc: fix error handling in command 'arc set-reg-exists'Antonio Borneo1-2/+2
The command is specified through COMMAND_HANDLER. It should not return JIM_OK / JIM_ERR. Change-Id: I56666414d49b0298ecc23ec7ef30c77e1e27afa8 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7413 Tested-by: jenkins Reviewed-by: Evgeniy Didin <didin@synopsys.com>
2023-02-03target: arc: rewrite command 'arc num-actionpoints' as COMMAND_HANDLERAntonio Borneo1-31/+13
Also drop arc_cmd_jim_get_uint32() that is now unused. Change-Id: Ic26c3f008376db3f01215bf736fca736dd1c1a4f Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7412 Tested-by: jenkins Reviewed-by: Evgeniy Didin <didin@synopsys.com>
2023-02-03target: arc: rewrite command 'arc get-reg-field' as COMMAND_HANDLERAntonio Borneo1-35/+16
This also fixes several incorrect return ERROR_xxx from a jim command. Change-Id: I34fe3552d3dc344eac67bf504c5d5709b707fdfd Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7411 Tested-by: jenkins Reviewed-by: Evgeniy Didin <didin@synopsys.com>
2023-02-03target: arc: rewrite command 'arc jtag set-core-reg' as COMMAND_HANDLERAntonio Borneo1-25/+13
This also fixes an incorrect return ERROR_OK from a jim command. Change-Id: I72a522645f62b99b313573c8bad6d4f674c5ae53 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7410 Tested-by: jenkins Reviewed-by: Evgeniy Didin <didin@synopsys.com>
2023-02-03target: arc: rewrite command 'arc jtag get-core-reg' as COMMAND_HANDLERAntonio Borneo1-25/+14
This also fixes an incorrect return ERROR_OK from a jim command. Change-Id: I1f9cf5d1dfa38b8a06042b5f54209e6ee2fc4e0e Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7409 Tested-by: jenkins Reviewed-by: Evgeniy Didin <didin@synopsys.com>
2023-02-03target: arc: rewrite command 'arc jtag set-aux-reg' as COMMAND_HANDLERAntonio Borneo1-24/+11
This also fixes an incorrect return ERROR_OK from a jim command. Change-Id: Iab9bc7c25181341a632f608a8ef2d8b0bea72520 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7408 Tested-by: jenkins Reviewed-by: Evgeniy Didin <didin@synopsys.com>
2023-02-03target: arc: rewrite command 'arc jtag get-aux-reg' as COMMAND_HANDLERAntonio Borneo1-23/+12
This also fixes an incorrect return ERROR_OK from a jim command. Change-Id: I3c51355e7e05965327ce819a3114e370f2de5249 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7407 Tested-by: jenkins Reviewed-by: Evgeniy Didin <didin@synopsys.com>
2023-02-03flash/nor/spi: Add some zbit flash chips.Daniel Serpell1-0/+7
I have a RP2020 board from aliexpress that uses the ZB25VQ32 flash, this allows openocd to correctly identify it with the full flash size. I also added other models, the datasheets can be found at: Link: https://datasheet.lcsc.com/lcsc/2203210916_Zbit-Semi-ZB25VQ16ASIG_C2982491.pdf Link: https://datasheet.lcsc.com/lcsc/2003141132_Zbit-Semi-ZB25VQ32BSIG_C495744.pdf Link: https://datasheet.lcsc.com/lcsc/2003141132_Zbit-Semi-ZB25VQ64ASIG_C495745.pdf Link: https://datasheet.lcsc.com/lcsc/2006151421_Zbit-Semi-ZB25VQ128ASIG_C609616.pdf As noted by Andreas Bolsch, the devices supporting QSPI have different ID in QPI mode than SPI, so two entries are needed in the table for each one. Use 0x0B as qread command, as this does not need the dummy M7-0 parameters. Signed-off-by: Daniel Serpell <daniel.serpell@gmail.com> Change-Id: Id99187b1963b02ac1a786b66bb352f5f48ed0ac2 Reviewed-on: https://review.openocd.org/c/openocd/+/7445 Reviewed-by: Andreas Bolsch <hyphen0break@gmail.com> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Tested-by: jenkins
2023-01-28jtag/drivers/jlink: allow SWD multidropTomas Vanek1-3/+7
SW-DPv2 and SWJ-DPv2 devices do not reply to DP_TARGETSEL write cmd. Ignore the received ACK after TARGETSEL write. While on it, use swd_ack_to_error_code() for unified error code translation of the received ACK value for all other commands. Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Change-Id: If978c88c8496e31581175385e59c32faebfd20aa Reviewed-on: https://review.openocd.org/c/openocd/+/7383 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-by: zapb <dev@zapb.de>
2023-01-28rtos: remove config.h includes from stackings headersErhan Kurubas14-37/+13
And add its own header to the rtos_xxx_stackings.c Signed-off-by: Erhan Kurubas <erhan.kurubas@espressif.com> Change-Id: I084130fde7ee8645129a7cf60bb7bf59448e2f39 Reviewed-on: https://review.openocd.org/c/openocd/+/7441 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-28jtag/drivers/bcm2835gpio: refactor delays to inline functionTomas Vanek1-6/+9
No functional change, the delay is unchanged. Change-Id: I5b5e837d741ac01fc573657357c5fe61ad901319 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/7262 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-28jtag/drivers/bcm2835gpio: use rounding in delay mathTomas Vanek1-2/+5
After setting adapter speed to some values, the driver shows the real speed little bit higher. Although it does not impose a problem from technical point of view because the difference is smaller than usual speed error, it looks at least strange to the user. The documentation reads that real frequency should be same or lower than requested. Use proper rounding in speed -> delay and delay -> speed conversions. Change-Id: I1831112cc58681875548d2aeb688391fb79fa37f Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/7261 Tested-by: jenkins Reviewed-by: Jonathan Bell <jonathan@raspberrypi.com> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-28jtag/drivers/bitbang: avoid mostly harmless glitch on SWDIOTomas Vanek1-1/+13
bitbang_swd_exchange(rnw=true,...) calls bitbang_interface->swd_write() with swdio clamped to 0. bitbang_swd_write_reg() reads 1 turnaround bit, 3 ack bits and 1 turnaround by one call to bitbang_swd_exchange() and then switches SWDIO to output. AFAIK all bitbang interfaces switch SWDIO GPIO direction immediately in bitbang_interface->swdio_drive(). The GPIO now drives SWDIO line to the value stored in the output register which is always zero from previous bitbang_swd_exchange(rnw=true,...). In case the following data bit (bit 0) is 1 we can observe a glitch on SWDIO: _____ out 1 ____ HiZ/pull-up ----\ / \ / \______ out 0 ______/ swdio_drive(true) swd_write(0,1) The glitch fortunately takes place far enough from SWCLK rising edge where SWDIO is sampled by the target, so I believe it is harmless except some corner cases where the reflected wave is delayed on long line. Anyway keeping electrical signals glitch free is a good practice. To keep performance penalty minimal, pre-write the first data bit to SWDIO GPIO output buffer while clocking the turnaround bit. Following swdio_drive(true) outputs the pre-written value and the same value is rewritten by the next swd_write() instead of glitching SWDIO. Change-Id: I72ea9c0b2fae57e8ff5aa616859182c67abc924f Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/7260 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-28jtag/drivers/openjtag: fix annoying num_cycles > 16 warningN S1-6/+8
The OpenJTAG driver logs "num_cycles > 16 on run test" warning whenever the JTAG_RUNTEST operation cycle count is larger than 16. Instead of logging the warning and only running the first 16 TCLK cycles, remove the warning and queue up multiple operations of up to 16 cycles each. Signed-off-by: N S <nlshipp@yahoo.com> Change-Id: Id405fa802ff1cf3db7a21e76bd6df0c2d3a0fe61 Reviewed-on: https://review.openocd.org/c/openocd/+/7420 Tested-by: jenkins Reviewed-by: Jonathan McDowell <noodles-openocd@earth.li> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-28rtos: Fix constness of struct rtos_typeAndreas Fritiofson7-25/+25
Change-Id: Iaa89f2ff4036c23f944ffb4f37fe0c7afaf5069b Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6680 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-28rtos: Support rt-kernelAndreas Fritiofson3-0/+387
Works for the proprietary rt-kernel from rt-labs. See: https://rt-labs.com/product/rt-kernel/ Change-Id: Id2c2e292c15fb17eab25e3d07db05014daa2a2b0 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6668 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-28rtos/nuttx: add stacking info for Espressif Xtensa chipsErhan Kurubas1-0/+358
ESP32, ESP32-S2 and ESP32-S3 stack register offsets added Signed-off-by: Erhan Kurubas <erhan.kurubas@espressif.com> Change-Id: Ic6215c1d0152853fd08f82cbd3c138c7d62dbc46 Reviewed-on: https://review.openocd.org/c/openocd/+/7443 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-28rtos: add custom stack read functionErhan Kurubas2-1/+11
This is optional field for the targets which has to implement their custom stack read function. Signed-off-by: Erhan Kurubas <erhan.kurubas@espressif.com> Change-Id: Icbc9ed66a052fc2cc0ef67e3ec4d85ab0c2c1b94 Reviewed-on: https://review.openocd.org/c/openocd/+/7442 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-28rtos/nuttx: add riscv stacking infoErhan Kurubas2-0/+47
Tested with Espressif ESP32-C3 MCU Signed-off-by: Erhan Kurubas <erhan.kurubas@espressif.com> Change-Id: Ia71ace4909f2dc93ddc07a2ec5524cf374f1937c Reviewed-on: https://review.openocd.org/c/openocd/+/7251 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-28rtos/nuttx: move stacking info to the new nuttx stackings fileErhan Kurubas4-57/+78
Other OSes have separate files to keep stack register offsets. Adding them for NuttX as well will provide a clearer way to expand. Signed-off-by: Erhan Kurubas <erhan.kurubas@espressif.com> Change-Id: I1428fefefa199a95431f2073c0279dd7028ad8da Reviewed-on: https://review.openocd.org/c/openocd/+/7250 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-21helper: Add generic little endian CRC32 functionMarian Buschsieweke4-28/+95
This generalizes the little endian CRC32 function used in the OR1K target and moves it to a common helper, so that other places do not need to reinvent the wheel. It is directly used in the OR1K target. Change-Id: I0e55340281a5bfd80669bb1994f3a96fecc1248a Signed-off-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de> Reviewed-on: https://review.openocd.org/c/openocd/+/7415 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-21flash/nor/psoc4: drop jtag_poll_mask() from flash writeTomas Vanek1-5/+0
Polling the target makes no harm during PSoC 4 flash write in the current OpenOCD code. Don't mask it. Change-Id: I6625ded0162ee3a96b92188844d0d2d6c30101c2 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/7162 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-15jtag: hla: use generic helper for commands 'jtag newtap' 'swd newdap'Antonio Borneo6-168/+3
The commands 'jtag newtap' and 'swd newdap' have to work either on HLA transport and on standard JTAG/SWD. Having a dedicated implementation for HLA is a non-sense. Reuse the generic code jim_jtag_newtap() and drop the files hla_tcl.[ch] as they are now empty. Change-Id: I9dabbdc2a6f338f23b2fd3ed1a4dc3da0200c080 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7428 Tested-by: jenkins
2023-01-15jtag: parse command options in 'swd newdap'Antonio Borneo1-8/+1
The same code is currently used for commands 'jtag newtap' and 'swd newdap' (plus dapdirect versions), but for SWD case the code skips the parsing of the command line as not every flag is used. This has the drawback that syntax errors get unchecked. Move the check about the transport so the command line get always parsed even when the corresponding flags are not useful. Change-Id: I596c3beb04e9e8a9ebe6ee68a61395b679d43b3e Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7427 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
2023-01-15flash/nor/stm32l4x: Add revision 'X' and 'C' for STM32U575/585 devicesMarc Schink1-0/+1
Change-Id: I4d950dc0a1421036418f2e5c1f0ed8eca86efc1a Signed-off-by: Marc Schink <dev@zapb.de> Reviewed-on: https://review.openocd.org/c/openocd/+/7390 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-15jtag/drivers/cmsis_dap: prevent conn/discon workaround before line resetTomas Vanek1-1/+3
The line reset SWD sequence is used quite often in SWD multidrop mode. Prevent the ugly connect/disconnect adapter firmware bug workaround to be called before each line reset. Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Change-Id: Id85bff075dba9077e4e501e2cdcfd64d5d9d0531 Reviewed-on: https://review.openocd.org/c/openocd/+/7381 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-15jtag/drivers/cmsis_dap: speed up long transfers using DAP_TransferBlockTomas Vanek2-22/+83
DAP_TransferBlock command saves n - 3 bytes in comparison to DAP_Transfer, where n is number of transfers. Use DAP_TransferBlock optionaly to save some USB bandwidth. The change increases the speed of the write transfer from 40 KiB/s to 42 KiB/s @ USB FS, adapter speed 1000. Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Change-Id: Ifde0159cfd44481d2b81b90daa088e731c03e26d Reviewed-on: https://review.openocd.org/c/openocd/+/7372 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-15jtag/drivers/cmsis_dap: improve USB packets fillingTomas Vanek2-8/+62
DAP write transaction occupies 5 bytes of a command packet. DAP read transaction needs just one byte in a command packet and expect 4 bytes in a response. The fixed maximal number of transactions in a packet caused packet filling less than optimal. Compute both command and expected response sizes based on read or write direction of each transaction. Run the queue if one of sizes does not fit into a packet. The change increases the speed of the mostly read transfer from 36 KiB/s to almost 40 KiB/s @ USB FS, adapter speed 1000 due to reduction of adapter inserted RDBUFF reads. Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Change-Id: Ib70812600eaae0403b8ee8673b6f897348496569 Reviewed-on: https://review.openocd.org/c/openocd/+/7364 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-15jtag/drivers/cmsis_dap: introduce packet_usable_sizeTomas Vanek4-12/+8
USB bulk backend needs to avoid zero sized USB packets sent after each full sized packed for performance reasons. HID backend uses fixed size HID reports so the full size of the report can be utilized. Introduce packet_usable_size to reflect it. Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Change-Id: I34094c9edac5730624480711cbd6aa65883c47c7 Reviewed-on: https://review.openocd.org/c/openocd/+/7363 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-15jtag/drivers/cmsis_dap: use unsigned typesTomas Vanek2-23/+24
Not all variables converted, JTAG part is left as is. Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Change-Id: Ie9cc890769a2f53cb3a07fd457030e1b98910d44 Reviewed-on: https://review.openocd.org/c/openocd/+/7362 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-15jtag/drivers/cmsis_dap: use dap parameter instead of cmsis_dap_handleTomas Vanek1-6/+7
Replace the direct dereference of cmsis_dap_handle by dereference of the dap function parameter wherever possible. Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Change-Id: I32601dbe0270267642720a8524706aa76d187c3b Reviewed-on: https://review.openocd.org/c/openocd/+/7361 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-15jtag/drivers/cmsis_dap: move pending request FIFOTomas Vanek2-56/+59
Move all pending request FIFO related variables to the struct cmsis_dap Pure refactoring, no functional changes. Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Change-Id: I2cea9c1e265ac102ec0f314767b8b9afdcda9ee9 Reviewed-on: https://review.openocd.org/c/openocd/+/7360 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-15flash/nor, contrib/loaders: move numicro M0 write assembly to contrib/loadersJian-Hong Pan1-57/+2
Simply move numicro M0 flash write assembly to contrib/loaders. Also, modify corresponding Makefile and generated numicro_m0.inc. To make the path more general, this patch rename the path "contrib/loaders/flash/numicro_m4" to "contrib/loaders/flash/numicro" as well. Signed-off-by: Jian-Hong Pan <chienhung.pan@gmail.com> Change-Id: I9adea24c2b3c97319a9b015cf50257f3d131dc26 Reviewed-on: https://review.openocd.org/c/openocd/+/7346 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-15flash/nor, contrib/loaders: move numicro M4 write assembly to contrib/loadersJian-Hong Pan1-56/+1
Simply move numicro M4 flash write assembly to contrib/loaders. Also, add corresponding Makefile and generated numicro_m4.inc. Signed-off-by: Jian-Hong Pan <chienhung.pan@gmail.com> Change-Id: I22b8be0a245857335b11bd0b538db415fc34748d Reviewed-on: https://review.openocd.org/c/openocd/+/7343 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-15flash: support Nuvoton M541 & NUC442/472 seriesZale Yu1-81/+253
This patch is picked from the flash part of OpenOCD-Nuvoton's commit ("flash: supported Nuvoton M4 series. jtag: Used HW reset instead of auto reset. tcl: added a configuration file for Nuvoton M4 series.") [1] to support flashing Nuvoton's Cortex-M4 chips: M541 & NUC442/472 series. The code comes from the commit basically. Jian-Hong Pan tweaked for the compatibility with current OpenOCD. So, leave the author as Zale Yu. [1]: https://github.com/OpenNuvoton/OpenOCD-Nuvoton/commit/c2d5b8bfc705 Signed-off-by: Zale Yu <cyyu@nuvoton.com> Signed-off-by: Jian-Hong Pan <chienhung.pan@gmail.com> Change-Id: I9dc69eccb851df14c1b0ce2f619d7b3da0aa92aa Reviewed-on: https://review.openocd.org/c/openocd/+/7329 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-01-15flash/nor/numicro: reorder the parts listZale Yu1-998/+349
This patch is picked from the flash part of OpenOCD-Nuvoton's commit ("flash: supported Nuvoton M4 series. jtag: Used HW reset instead of auto reset. tcl: added a configuration file for Nuvoton M4 series.") [1] It reorders Nuvoton MCU part list and spreads out the way to define the banks' base address & size of the parts. The code comes from the commit basically. Jian-Hong Pan tweaked for the compatibility with current OpenOCD. So, leave the author as Zale Yu. [1]: https://github.com/OpenNuvoton/OpenOCD-Nuvoton/commit/c2d5b8bfc705 Signed-off-by: Zale Yu <cyyu@nuvoton.com> Signed-off-by: Jian-Hong Pan <chienhung.pan@gmail.com> Change-Id: I1f21f54dfdf53e5b8ea04d803347d1dbc8c321a0 Reviewed-on: https://review.openocd.org/c/openocd/+/7339 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>