-
Notifications
You must be signed in to change notification settings - Fork 328
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
calloc() memory per register. #658
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This replaces a static array with 8 bytes per register. When there are vector registers larger than 8 bytes, they would end up clobbering each other's values. I can't believe I didn't catch this earlier. Change-Id: I9df4eaf05617a2c8df3140fff9fe53f61ab2b261 Signed-off-by: Tim Newsome <tim@sifive.com>
GregSavin
approved these changes
Nov 2, 2021
ntfreak
pushed a commit
to openocd-org/openocd
that referenced
this pull request
Dec 24, 2021
This replaces a static array with 8 bytes per register. When there are vector registers larger than 8 bytes, they would end up clobbering each other's values. I can't believe I didn't catch this earlier. See riscv-collab/riscv-openocd#658 Change-Id: I9df4eaf05617a2c8df3140fff9fe53f61ab2b261 Signed-off-by: Tim Newsome <tim@sifive.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6775 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
timsifive
added a commit
that referenced
this pull request
Dec 29, 2021
* jimtcl: update to version 0.81 (2021-11-28) Change-Id: I374348047331b88e35b6584a5c65d8a73240b8a1 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6757 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz> * tcl: stm32mp13x: add target and board config files The stm32mp13x has one core Cortex-A7. The board Discovery Kit includes an on-board STLink-V3 with SWD connection. The webpage of the board is not active yet. Change-Id: I8836b26612a160ead79766955ebefaf3d21a329c Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6675 Tested-by: jenkins Reviewed-by: Tarek BOCHKATI <tarek.bouchkati@gmail.com> * doc: mention SWD multidrop Change-Id: I361dc351c407b67613eadef4d29e27ed0e00bd05 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/6744 Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Tested-by: jenkins * flash/nor/kinetis_ke: add .help fields for tcl commands Add help texts from similar driver kinetis.c While on it fix one existing help: the flash is obviously not NAND Change-Id: Ibd295105586b008aaabf2fb4e4a75bf551266e38 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/6727 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * flash/nor/kinetis_ke: remove 'kinetis mdm test_securing' cmd The command might be a leftover from development of the driver. There is no documentation what it does. Change-Id: Iaa5aa1ac51638bd6acce172a5dd03846a165dc27 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/6728 Tested-by: jenkins Reviewed-by: Ivan-Artekit <ivan@artekit.eu> * doc: document 'atsamv gpnvm' command Change-Id: I922c75e2d074447558f85bfda5421aa24a850be1 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/6729 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * flash/nor/at91samd: remove 'at91samd info' command The command is a stub only, does nothing. Change-Id: Ib3b8c2122a9f6f2e179bee34ac56d0adf367bfcc Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/6730 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * doc: fix list of supported nRF52 devices Change-Id: I64d6d851dd9333689556b7062b1ff38d41b5ad32 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/6731 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * doc: document 'cmsis-dap cmd' command Change-Id: I90b7f020ee2bf078fdf22e3d21423f333ae061ac Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/6732 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * doc/openocd.texi: Document add_help_text and add_usage_text Document add_help_text and add_usage_text under Genral Commands -> Misc Commands. The text are taken from command's help strings. Change-Id: I2bbbee8e5faa8d9654227c304e0528f5144275e8 Signed-off-by: Yasushi SHOJI <yashi@spacecubics.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6734 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * doc/openocd.texi: Document usage command Document usage command under General Commands -> Server Commands. The text is taken from the command's help string. Change-Id: I957cb46cca98181c3c5e676228c5c103e47bb655 Signed-off-by: Yasushi SHOJI <yashi@spacecubics.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6735 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * flash/nor/fespi: algorithm, large address, errors * Move more smarts into the target algorithm code, and rewrite that in C so it's easier to understand/maintain. * Support >24-bit addresses. * Check for errors. Change-Id: I3b1a143589fe6defafb8f95820aa682acc9646e7 Signed-off-by: Tim Newsome <tim@sifive.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6679 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz> * target,flash: allow target_free_working_area on NULL area pointer Standard C library free() allows NULL pointer as a parameter. Change target_free_working_area() to conform this convention. Remove NULL pointer tests before target_free_working_area() calls. While on it add missing setting pointer to NULL after target_free_working_area(). Change-Id: I7c692ab04a9933398ba5bc614723ad0bdecb87b3 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/6712 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * gdb_server: added and improved several debug prints Added and improved several prints related to the GDB connection and various error states that may occur in relation to this connection. Change-Id: I233246190b613cc925b783561cfa3aa5267360fd Signed-off-by: Jan Matyas <matyas@codasip.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6288 Reviewed-by: Tim Newsome <tim@sifive.com> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Tested-by: jenkins * cortex_m: remove last references to debugport_init() The function debugport_init() has never existed in OpenOCD code, but few comments erroneously references it in place of the existing function ahbap_debugport_init(). Commit 00dbc18 ("arm_adi_v5: Split ahbap_debugport_init") splits the function ahbap_debugport_init() in dap_dp_init() and mem_ap_init(), but did not removed all the incorrect comments about debugport_init(). Few of such comments has been removed in later patches. Remove the last comment that references debugport_init(). Change-Id: Ibd1f125475386e5653340fedf706903a0ee15897 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6694 Tested-by: jenkins * adi_v5_swd: add jtag-to-swd through dormant ARM IHI 0031A does not support SWJ-DP, so no switch between JTAG and SWD is considered. ARM IHI 0031B is not publicly available and it's reported as "Confidential Beta" in the history list in following doc versions. From ARM IHI 0031C the direct switch between JTAG and SWD is already deprecated in favor of passing through dormant mode. With no access to IHI 0031B we haven't info if any device strictly requires the direct switch. OpenOCD implements only the deprecated direct switch, so changing it could cause regression on devices that do not implement dormant mode. Plus, not all the adapters support dormant mode. Nevertheless there are already target devices that only allow entering in SWD by passing through dormant. Let the code try both method, alternating one tentative with the deprecated legacy direct switch, then another tentative passing through dormant, and repeat till timeout. This would work on any device that don't support dormant, on new devices that require switch through dormant and will work with adapters that don't support dormant. Change-Id: Ib8619635277d497872079a33fa4e38be9beb84a0 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6695 Tested-by: jenkins * doc: list internal commands called by init Change-Id: I5534c94a983906533a1b38c30ec3eb982e62dee7 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/6760 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * doc: document noinit command Change-Id: I915c7d3231935fd44407b5fa65d86d4cb93e8db5 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/6761 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * target/target: Check checksum_memory before call Make sure checksum_memory is present. Otherwise it'll segfault. Change-Id: If31123323bd8a03282da43505c9604fde735ad0e Signed-off-by: Yasushi SHOJI <yashi@spacecubics.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6758 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * doc/openocd.texi: Document command mode command Document "command mode" command Server Configuration -> Configuration Stage. The text is taken from command's help string. In addition to the help string, this commit explain the words mismatch, the doc uses "stage" but the command and source code uses "mode" to describe the same thing. Change-Id: I1d5fc8c64a3a0b07ea8430bf016bcbd54e52da1c Signed-off-by: Yasushi SHOJI <yashi@spacecubics.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6736 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * doc/openocd.texi: Document find and ocd_find command Document both find and ocd_find command under Config File Guidelines -> Interface Config Files. find command is used in the previous section as well but the previous section is more about using OpenOCD. The section added is "aimed at any user who needs to write a config file". Change-Id: I698207fe58d564c615a15b50756aa5547a5f40b7 Signed-off-by: Yasushi SHOJI <yashi@spacecubics.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6737 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * doc: Update doc for commands "riscv expose_csrs" and "riscv expose_custom" These commands were extended/improved in the last drop of RISC-V target updates. Update also the documentation to properly describe how the commands should be used now. Change-Id: I9e2ba6adbe1a4c032b96f5f8ff2d4791fa4c2527 Signed-off-by: Jan Matyas <matyas@codasip.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6738 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-by: Tim Newsome <tim@sifive.com> * doc: Updated RISC-V memory-related cmds in documentation - "riscv set_prefer_sba" - removed from the doc, superseded by the latter - "riscv set_mem_access" - new command, new entry added into the doc This change only addresses the documentation. The corresponding implementation of the RISC-V commands is already merged. Change-Id: I3c07672cde94324407cf667504dba5402f63a543 Signed-off-by: Jan Matyas <matyas@codasip.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6743 Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Tested-by: jenkins * Add Microchip SAME51 Curiosity Nano board This board is (software wise) similar to the existing SAME54 Xplained Pro board, with just a slightly different MCU. (Hardware wise, it features a vastly different form factor.) Signed-off-by: Jörg Wunsch <openocd@uriah.heep.sax.de> Change-Id: I5e5435d49d333fb74471994ee84de59ed983153c Reviewed-on: https://review.openocd.org/c/openocd/+/6747 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-by: Axel W. Reviewed-by: Tomas Vanek <vanekt@fbl.cz> * linuxgpiod: Allow using multiple GPIO chips. Allow passing optional gpiochip number before gpio number. If no optional chip number is passed, the one from the 'gpiochip' configuration directive is used. Change-Id: I16933d81581d9af4d1600c5f9fdbc832ef3fda94 Signed-off-by: Laszlo Sitzer <dlsitzer@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6742 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * target/arm_jtag.h: fix wrong comparison in arm_jtag_set_instr Change [1] introduced a regression that results in comparison in arm_jtag_set_instr() to be always true if the length of the IR register is not 8 bit. The value on the left side of the != operator contains only tap->ir_length number of bits while value on the right is full 8-bit instruction code. This forces OpenOCD to update the JTAG IR register on each transaction even if the instruction in the JTAG IR register is correct. This causes noticeable performance degradation, especially with slow JTAG adapters. [1] https://review.openocd.org/c/openocd/+/6285 time ./src/openocd -s tcl/ -f interface/cmsis-dap.cfg \ -c "transport select jtag" -f target/psoc6.cfg \ -c "init; load_image data.bin 0x08000000; exit" Without this change: real 0m4,863s user 0m0,074s sys 0m0,128s With this change: real 0m3,083s user 0m0,038s sys 0m0,098s Signed-off-by: Bohdan Tymkiv <bohdan200@gmail.com> Change-Id: Iaded83a04ecc7e65f18256afae582267ccc1fc59 Reviewed-on: https://review.openocd.org/c/openocd/+/6762 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * flash/nor/spi: add micron MT25QU01G 1Gbit SPI flash on VCU118 Rev. 2.0 Contributed to riscv-openocd in #487 Signed-off-by: Tim Newsome <tim@sifive.com> Change-Id: I93447dd970d9901a671567fe8ab9e407432f8db9 Reviewed-on: https://review.openocd.org/c/openocd/+/6764 Reviewed-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Tested-by: jenkins * jtag/drivers/vsllink: fix memory leak Close libusb context in vsllink_quit() Change-Id: I85da8d7228b1b2b033a32b2f9ae9ed0726546b55 Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/6766 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * target/cortex_m: minor refactoring in cortex_m_store_core_reg_u32() Unlike cortex_m_load_core_reg_u32() storing core register uses the same code pattern around DHCSR read as offered by the convenience helper cortex_m_read_dhcsr_atomic_sticky(). Use the helper. Change-Id: Ia947204944a8b549f3c2be7fb2f717aad18970c4 SeeAlso: 65d7629 (cortex_m: poll S_REGRDY on register r/w) SeeAlso: 0dcf95c (target/cortex_m: cumulate DHCSR sticky bits) Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/6767 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * openocd: add keep_alive during command sleep The command sleep holds the host CPU until it completes. Send keep_alive to GDB, so it will not timeout. Change-Id: I92e9c5fc871b4e6a7695cdc449ca9fb3c1f1d9ec Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6770 Tested-by: jenkins Reviewed-by: Jan Matyas <matyas@codasip.com> * gdb_server: fix a comment in gdb_new_connection() On 2008-03-05, before git's age, commit 6d95014 adds a comment about unobserved ACK supposedly sent by GDB at connection. The ACK is sent since GDB 3.95 (1999-05-04), but a bug introduced in GDB 6.5 (2006-06-21) and fixed in GDB 7.0 (2009-10-06) makes GDB sending the query for "supported packets" before sending the ACK. Due to the bug, the author of the commit failed to see the ACK. Change-Id: I574a8013e7d159d1c71087af83b7c2ce92be86bd Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6769 Tested-by: jenkins * semihosting: use macro COMMAND_HANDLER We have the macro #define COMMAND_HANDLER(name) \ static __COMMAND_HANDLER(name) Use it! Change-Id: I0e5385cb54197c743348f0d2ce215c93b8e396a4 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6786 Tested-by: jenkins * target/riscv: calloc() memory per register. This replaces a static array with 8 bytes per register. When there are vector registers larger than 8 bytes, they would end up clobbering each other's values. I can't believe I didn't catch this earlier. See #658 Change-Id: I9df4eaf05617a2c8df3140fff9fe53f61ab2b261 Signed-off-by: Tim Newsome <tim@sifive.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6775 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-by: Tomas Vanek <vanekt@fbl.cz> * contrib/udev: Add missing J-Link USB PID See libjaylink/contrib/99-libjaylink.rules Change-Id: I36733e18eb4bc11828c5fa563c687d28be9e34bd Signed-off-by: Marc Schink <dev@zapb.de> Reviewed-on: https://review.openocd.org/c/openocd/+/6778 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> * Document how vector registers are exposed to gdb. See #570 Change-Id: Ie7cdef3717e107a9df0b48316cfbc547dea9a7fd Signed-off-by: Tim Newsome <tim@sifive.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6776 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Co-authored-by: Antonio Borneo <borneo.antonio@gmail.com> Co-authored-by: Tomas Vanek <vanekt@fbl.cz> Co-authored-by: Yasushi SHOJI <yashi@spacecubics.com> Co-authored-by: Jan Matyas <matyas@codasip.com> Co-authored-by: Joerg Wunsch <openocd@uriah.heep.sax.de> Co-authored-by: Laszlo Sitzer <dlsitzer@gmail.com> Co-authored-by: Bohdan Tymkiv <bohdan200@gmail.com> Co-authored-by: Jaehoon Park <52432979+jaehoon-sifive@users.noreply.github.com> Co-authored-by: Marc Schink <dev@zapb.de>
dnltz
pushed a commit
to aesc-silicon/elements-openocd
that referenced
this pull request
Jan 5, 2022
This replaces a static array with 8 bytes per register. When there are vector registers larger than 8 bytes, they would end up clobbering each other's values. I can't believe I didn't catch this earlier. See riscv-collab/riscv-openocd#658 Change-Id: I9df4eaf05617a2c8df3140fff9fe53f61ab2b261 Signed-off-by: Tim Newsome <tim@sifive.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6775 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Shunichi-K
pushed a commit
to sonydevworld/spresense-openocd
that referenced
this pull request
Mar 8, 2023
This replaces a static array with 8 bytes per register. When there are vector registers larger than 8 bytes, they would end up clobbering each other's values. I can't believe I didn't catch this earlier. See riscv-collab/riscv-openocd#658 Change-Id: I9df4eaf05617a2c8df3140fff9fe53f61ab2b261 Signed-off-by: Tim Newsome <tim@sifive.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6775 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This replaces a static array with 8 bytes per register. When there are
vector registers larger than 8 bytes, they would end up clobbering each
other's values. I can't believe I didn't catch this earlier.
Change-Id: I9df4eaf05617a2c8df3140fff9fe53f61ab2b261
Signed-off-by: Tim Newsome tim@sifive.com