aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-03-25helper/compiler: fix build on MacOSAntonio Borneo1-0/+8
On MacOS, clang defines [1]: #define __nonnull _Nonnull that creates incompatibility with GCC and with the macro __nonnull defined in some libc. Detect clang on MacOS and undefine __nonnull. Change-Id: I64fcf51b102ea91c196e657debd8c267943a2b08 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Links: [1] https://github.com/llvm/llvm-project/blob/llvmorg-16.0.0/clang/lib/Frontend/InitPreprocessor.cpp#L1226 Reviewed-on: https://review.openocd.org/c/openocd/+/7544 Tested-by: jenkins
2023-03-18svf: new command line options -noreset and -addcyclesKai Schmitz2-5/+31
-noreset: when using several SVF input files in a sequence it is not always desireable to have a JTAG reset between the execution of the files. The -noreset option skips this unwanted reset. -addcycles <x>: some tests rely on a certain number of extra clock cycles between the actual JTAG commands. The -addcycles option injects a number x cycles after each SDR instruction. Signed-off-by: Kai Schmitz <kai.schmitz@advantest.com> Change-Id: I31932d6041dbc803be00016cd0a4f23fb2e7dbe1 Reviewed-on: https://review.openocd.org/c/openocd/+/7433 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-03-18tcl: remove exec permission to tcl config filesAntonio Borneo2-0/+0
With the new checkpatch we will not get this type of issues anymore. In mean time, let's fix what we have missed during the review process. Change-Id: Iecebf9d43f51a29ee09505d360792793afd24b40 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Fixes: 53556fcded05 ("tcl/interface: add Ashling Opella-LD FTDI config files") Reviewed-on: https://review.openocd.org/c/openocd/+/7530 Tested-by: jenkins
2023-03-18tcl/tools/test_cpu_speed: Fix register nameMarc Schink1-1/+1
Use correct register name after it has beed changed in commit 11ee500bffe4 ("target/armv7m: Rename xPSR to xpsr") Change-Id: I3648848f4b47af2d20d60c3e0ecef78f75f6d605 Signed-off-by: Marc Schink <dev@zapb.de> Reviewed-on: https://review.openocd.org/c/openocd/+/7473 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-03-18jimtcl: update to version 0.82Antonio Borneo2-2/+2
The new version modifies it's auto configure in change https://github.com/msteveb/jimtcl/commit/ccd47be13019 stating: configure: Default to --full Now use --minimal and/or --without-ext to disable things. With such change jimtcl doesn't build anymore as OpenOCD submodule because of errors linking with new dependencies openssl and zlib. Use option --minimal to keep the same build configuration as with former jimtcl 0.81. Add option --disable-ssl to avoid a build error on system with no ssl libraries installed. This is already fixed in jimtcl upstream but not part of 0.82. Note that ssl is not currently used by OpenOCD. Change-Id: I0879891dbd083bfbff1e904daf6cd549c3329bbf Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7517 Tested-by: jenkins
2023-03-18build: fix distcheck for jimtclAntonio Borneo1-2/+6
The issues have been highlighted while integrated jimtcl 0.82, but were already present. While building jimtcl as submodule, OpenOCD generates the file jimtcl/configure.gnu to pass specific configure flags. Issue 1: this file is not included in the distribution. This causes the rebuild from the distribution to have a jimtcl built with different (the default) configure flags. With jimtcl 0.82 the new default is to enable all the features, but a bug causes the build to fail when openssl is not installed in the build system (the bug is already fixed but after 0.82 [1]). All these together cause OpenOCD Jenkins to fail the build for target 'distcheck' with jimtcl 0.82. Add jimtcl/configure.gnu to OpenOCD distribution's file list. The build system considers jimtcl/configure.gnu as a temporarily file that should be removed during 'distclean'. Issue 2: 'distcheck' set read-only permission to the source files, including jimtcl/configure.gnu, so 'distclean' fails removing it. Add a leading '-' to ignore errors while trying to remove the file. Issue 3: Now that 'distcheck' properly configures and builds jimtcl, 'distcheck' still fails because we have enabled jimtcl json support in [2] and jimtcl 'distclean' fails to properly remove one object file (fixed after 0.82 [3]). Make OpenOCD removing the file jimtcl/jsmn/jsmn.o to complete the execution of 'distcheck'. Add a comment specifying which of the jimtcl versions are affected. Change-Id: I2f9153c5a41ba66b989b27c7bc57b38d1744cc29 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Link: [1] https://github.com/msteveb/jimtcl/commit/22277943a19c Link: [2] 0a36acbf6ac6 ("configure: build jimtcl with json extension") Link: [3] https://github.com/msteveb/jimtcl/commit/32a488587a3e Reviewed-on: https://review.openocd.org/c/openocd/+/7527 Tested-by: jenkins Reviewed-by: zapb <dev@zapb.de>
2023-03-18openocd: drop JIM_EMBEDDED macroAntonio Borneo1-3/+0
The macro JIM_EMBEDDED was required to be defined before including jim.h in applications that embed jimtcl. This requirement has been dropped in 2010 by removing the file dos/Embedder-HOWTO.txt from jimtcl in https://github.com/msteveb/jimtcl/commit/2d8564100c86#diff-3e93fa55e666 Drop the macro definition and the comment that mandates it. Change-Id: I36883f60f25bb25839e4ebf908159569659764dd Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7518 Tested-by: jenkins
2023-03-18helper: add compiler.h to handle compiler specific workaroundsAntonio Borneo3-3/+50
Not all compilers nor compiler versions supports the attributes used in OpenOCD code. Collect in a single file the workaround to handle them. Change-Id: I92d871337281169134ce8e40b2064591518be71f Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7519 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
2023-03-18target/xtensa: add NX supportIan Thompson3-52/+370
- Manual integration of NX support from xt0.2 release - No new clang static analysis warnings Signed-off-by: Ian Thompson <ianst@cadence.com> Change-Id: I95b51ccc83e56c0d4dbf09e01969ed6a4a93d497 Reviewed-on: https://review.openocd.org/c/openocd/+/7356 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
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-18doc: add missing FreeRTOS symbolChao Du1-1/+1
A new FreeRTOS symbol xSchedulerRunning was added into the symbol list. But the doc was not updated accordingly. Signed-off-by: Chao Du <duchao@eswincomputing.com> Change-Id: If1b18591e2681477ad96f1dea566cc2547097767 Reviewed-on: https://review.openocd.org/c/openocd/+/7531 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz> 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-03-18TODO: remove outdated AT91SAM92xx entryWolfram Sang1-2/+0
SAM9260 gained good generic infrastructure since 2009. And we always want "improvements", no need for a TODO item. Signed-off-by: Wolfram Sang <wsa@kernel.org> Change-Id: I92551ef9d42ee47ad7441f2354587bbb45edc97e Reviewed-on: https://review.openocd.org/c/openocd/+/7526 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2023-03-18tcl/board/at91sam9g20-ek: remove outdated FIXMEWolfram Sang1-4/+0
It was fixed by e94180571 ("at91sam9: factorise cpu support") in 2011. Signed-off-by: Wolfram Sang <wsa@kernel.org> Change-Id: I95ea149b45a9902424bf9068b4a2830c17ddc6be Reviewed-on: https://review.openocd.org/c/openocd/+/7525 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
2023-03-03tlc/interface: does fix source of raspberrypi-gpio-connector.cfgTomas Deingruber1-1/+1
in raspberrypi-native.cfg Fixes: bec6c0eb094f (tcl/interface: universal config for all Raspberry Pi models) Signed-off-by: Tomas Deingruber <Deingruber.Tomas@gmail.com> Change-Id: I632c8acd84974937849b5fdf2943239def17bd6d Reviewed-on: https://review.openocd.org/c/openocd/+/7512 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz> 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-03README: Remove statement about libjaylink Git submoduleMarc Schink1-2/+1
Change-Id: I552c08979849c66d7f8f559ccfd49d27f8b68bb8 Signed-off-by: Marc Schink <dev@zapb.de> Reviewed-on: https://review.openocd.org/c/openocd/+/7470 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-28tcl/target: add rescue mode to RP2040 configTomas Vanek1-0/+30
Integrate a rescue mode inspired by [1]. The current OpenOCD must be restarted before normal work with the RP2040 because the rescue debug port must not be activated (or the target is reset every 'dap init'). To continue without restarting OpenOCD we would need to switch off the configured rescue dap. Change-Id: Ia05b960f06747063550c166e461939d92e232830 Link: [1] https://github.com/raspberrypi/openocd/blob/rp2040/tcl/target/rp2040-rescue.cfg Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/7327 Reviewed-by: Jonathan Bell <jonathan@raspberrypi.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-28tcl/interface: universal config for all Raspberry Pi modelsTomas Vanek3-73/+104
Speed calibration coeffs are computed from cpufreq/scaling_max_freq and from the device-tree compatibility information. Raspberry Pi linux offers /dev/gpiomem for non-root access to the GPIO registers since ~2016. Do not configure 'bcm2835gpio peripheral_base' as it is necessary only if /dev/mem is used - it requires running OpenOCD as root - it's a security risk so it should be avoided. The configuration of the GPIO connector (40-pin header) is factored out and ready to use in interface configuration for other driver (e.g. linux gpiod). Mark raspberrypi2-native.cfg as deprecated and redirect it to raspberrypi-native.cfg Change-Id: Icce856fb660b45374e94174da279feb51f529908 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/7264 Tested-by: jenkins Reviewed-by: Jonathan Bell <jonathan@raspberrypi.com> 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 Fritiofson4-1/+391
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>