Commit Graph

2041 Commits

Author SHA1 Message Date
dragonmux 886c790b25 serialno: Refactored the serial number code, cleaning up its API and localising implementation details 2022-08-12 22:25:52 -07:00
dragonmux 259077a87d common: Moved the USB initialisation code into usb.c 2022-08-12 22:25:52 -07:00
dragonmux ada59291c2 common: Broke the USB descriptors out to their own header 2022-08-12 22:25:52 -07:00
dragonmux d6f8a343a2 platform: Fixed the order of operations with the physical UART init vs the USB stack init 2022-08-12 22:25:52 -07:00
dragonmux 82bca86806 platform: Renamed cdcacm_init -> blackmagic_usb_init 2022-08-12 22:25:52 -07:00
dragonmux 105f6a3dce common: Begun splitting the USB code into more sensibly named implementation files 2022-08-12 22:25:52 -07:00
dragonmux 3606784663 hosted/cmsis_dap: Add a dummy read to the end of dap_mem_write_sized() so we always wait on the write to ensure it's complete before any DP access can occur 2022-08-08 14:45:38 -07:00
dragonmux 4c544bad28 adiv5: Add a dummy read to the end of firmware_mem_write_sized() so we always wait on the write to ensure it's complete before any DP access can occur 2022-08-08 14:45:38 -07:00
dragonmux 7107d14bbc sfdp: Moved the read debugging into the implementation 2022-08-08 14:43:29 -07:00
dragonmux 1556db88de rp: Made use of the extra information we pull back from the SFDP data in rp_flash_erase 2022-08-08 14:43:29 -07:00
dragonmux 09b044e351 rp: Cleanup in the Flash write/erase routines 2022-08-08 14:43:29 -07:00
dragonmux e69a79cecf rp: Types cleanup for the Flash erase/write routines 2022-08-08 14:43:29 -07:00
dragonmux 4630353be4 rp: Created a Flash container type for the SPI-specific configuration bits 2022-08-08 14:43:29 -07:00
dragonmux d883fd0cdc rp: Refactored the SPI Flash parameter and size readout into rp_add_flash() 2022-08-08 14:43:29 -07:00
dragonmux 8e99e8ec4d rp: Added some debugging to the SFDP read routine to aid with SFDP failures 2022-08-08 14:43:29 -07:00
dragonmux 298299d85b rp: Cleaned up some variable naming in the ROM function table reader 2022-08-08 14:43:29 -07:00
dragonmux 9681475ab5 rp: Made use of the SFDP routines to extract the necessary Flash parameters 2022-08-08 14:43:29 -07:00
dragonmux 253d0cc1d9 rp: Entirely rewrote the SPI Flash read routine so we can implement SFDP support 2022-08-08 14:43:29 -07:00
dragonmux 6559c46ce9 sfdp: Implemented a structure for the JEDEC ID data 2022-08-08 14:43:29 -07:00
dragonmux 969c7c6c14 rp: Naming cleanup for the memory region base addresses and sizes 2022-08-08 14:43:29 -07:00
dragonmux ff30b66b3a rp: Cleaned up the RP register definitions for the SPI Flash and the chip select line control routine 2022-08-08 14:43:29 -07:00
dragonmux 2058725dd8 rp: Cleaned up and rewrote the ROM function table readout code to be more understandable and transparent
This saves 20 bytes of Flash
2022-08-08 14:43:29 -07:00
dragonmux a372cfd787 rp: Fixed the private structure naming and made a typedef for it 2022-08-08 14:43:29 -07:00
dragonmux 11b43a7c66 rp: Refactored the ROM table tags using a helper macro 2022-08-08 14:43:29 -07:00
dragonmux f2b0d3030c rp: Fixed the UB _-prefixed naming of the ROM routines 2022-08-08 14:43:29 -07:00
dragonmux 8d772d048b rp: Cleaned up ROM table function table readout 2022-08-08 14:43:29 -07:00
dragonmux 8382b0aa7d rp: Magic numbers cleanup using top of file definitions 2022-08-08 14:43:29 -07:00
dragonmux 96259d11c8 sfdp: Implemented the logic needed to read the headers and basic parameter table 2022-08-08 14:43:29 -07:00
dragonmux d9c7c8bc13 sfdp: Implemented types and helpers for the basic parameter table 2022-08-08 14:43:29 -07:00
dragonmux c6133a8cae sfdp: Begun implementing the machinary needed to read and parse out SFDP headers from SPI Flash 2022-08-08 14:43:29 -07:00
dragonmux 64c0b8a298 target_internal: typedef'd the target_flash structure to make use nicer 2022-08-08 14:43:29 -07:00
Rafael Silva 802c5fb87c hosted/jlink: fix bad line reset cmd building
extra memset set bits that were not set before code cleanup
2022-08-08 12:30:34 -04:00
dragonmux 1b8dd3a5d9 target: Made target_flash_for_addr() available as a target internal 2022-08-07 20:16:04 -07:00
Piotr ESden-Tempski 253a12f014 native: Enable uart on HW >=V3 when debugging.
We were disabling the UART on all Hardware V1 and newer, as V1 and V2
had the SWD pins connected to the UART pins. Since V3 this is not the
case any more so we can keep the UART enabled when an SWD debugger is
connected to the BMP.
2022-08-07 22:59:23 -04:00
dragonmux 7cacdab98e hosted: Cleaned up the CFLAGS and LDFLAGS building to use pkg-config to find libusb1 and corrected the pkg-config presence check 2022-08-07 13:42:32 -07:00
dragonmux 3dadd64f9b samd: Made all the defined constants unsigned 2022-08-07 13:38:42 -07:00
dragonmux da2c4f24b0 samd: Done a little reformatting of the defined constants 2022-08-07 13:38:42 -07:00
dragonmux 5ade9143a6 samd: Removed piles of needless command handler casts 2022-08-07 13:38:42 -07:00
dragonmux 0be6c1bc72 samd: Corrected the DID family mask 2022-08-07 13:38:42 -07:00
dragonmux d9e14645da samd: Fixed a couple of clang-tidy warnings 2022-08-07 13:38:42 -07:00
dragonmux aff2f4e428 hosted/cli: Made sure the command line options structure is initialised with opt_mode = BMP_MODE_DEBUG before args parsing 2022-08-07 13:37:09 -07:00
Sean Cross c89fd19632 adiv5_jtagdp: remove double-parens on if statement
Some parens were doubled-up, which can cause warnings on certain
platforms. Remove the double-parens in order to fix this warning.

Signed-off-by: Sean Cross <sean@xobs.io>
2022-08-07 11:10:05 -04:00
Sean Cross aeab1bae03 adiv5: use PRIxNN specifiers for debug printfs
This fixes a few printf-style warnings that slipped through due to the
fact that they're only enabled on debug builds. This enables building
this file on an Xtensa platform where -Werror and -Wformat is enabled by
default.

Signed-off-by: Sean Cross <sean@xobs.io>
2022-08-07 11:10:05 -04:00
SId Price d41bb2a7f0 Fix Windows build due to lack of alloca.h 2022-08-06 18:35:01 -04:00
Rafael Silva 0075abacbf jlink_adiv5_swdp: remove duplicated logic on swdp low access 2022-08-06 18:02:30 -04:00
Rafael Silva 4f01ffe56c misc: change return type of scan routines to size_t 2022-08-06 18:02:30 -04:00
Rafael Silva 7db6c71095 platform: set power flag to const 2022-08-06 18:02:30 -04:00
Rafael Silva 322af2506b hosted/platform: make platform identifier nicer to read 2022-08-06 18:02:30 -04:00
Rafael Silva 3a673225b7 hosted/stlink: make swd scan function more consisted with other probes
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-08-06 18:02:30 -04:00
Rafael Silva ce6477886f target/adi: unify DPIDR TARGETID handling in adiv5_dp_init
this makes the assumption that DPs will be v1 or higher, for SWD-DP scans this is
guaranteed, but on JTAG-SCANS it may not be true, DPv0 does not have DPIDR
implemented and reads are UNPREDICTABLE

Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-08-06 18:02:30 -04:00
Rafael Silva c04b98435a adiv5_jtagdp: code format 2022-08-06 18:02:30 -04:00
Rafael Silva 0fbb6921b9 jlink_adiv5_swdp: code cleanup 2022-08-06 18:02:30 -04:00
Rafael Silva 564114df13 platform: code format and style 2022-08-06 18:02:30 -04:00
Rafael Silva a1f0d28913 platform: check calloc result 2022-08-06 18:02:30 -04:00
Rafael Silva 81890b1fe9 target/adi: clarify TARGETSEL mask and offset 2022-08-06 18:02:30 -04:00
Rafael Silva 20d4109c56 target/stm32h7: fix ids
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-08-06 13:46:53 -04:00
Rafael Silva 87cabb78e5 target/cortexm: print t->part_id not ap->partno in unknown device warning
this is the id used to probe, which may or may not be the same
2022-08-05 13:47:09 +01:00
gatin00b 180ceabae3 fix: Correct grammatical error 2022-08-03 19:30:27 -07:00
Rafael Silva ae23cb879e hosted/jlink: add warning when ignoring unkown pids 2022-08-01 23:04:28 +01:00
Rafael Silva eb8b930841 hosted/jlink: add pid 0x1015 as a valid J-Link debugger 2022-08-01 23:04:28 +01:00
Rafael Silva 46fd32da5c hosted/jlink: fix vid-pid transposition error 2022-08-01 23:04:28 +01:00
dragonmux 0077d31be3 rp: Make the function naming scheme uniform 2022-07-31 16:23:31 -07:00
dragonmux 6288d5884d rp: Fixed another clang-tidy warning 2022-07-31 16:23:31 -07:00
dragonmux 7266e3cf54 rp: More code re-ordering to make the order of definitions make more sense 2022-07-31 16:23:31 -07:00
dragonmux 982d1ac847 rp: atoi() -> strtoul() to fix the clang-tidy warning and improve robustness and correctness 2022-07-31 16:23:31 -07:00
dragonmux efb2e99408 rp: re-grouped the target-specific commands to the bottom of the implementation 2022-07-31 16:23:31 -07:00
dragonmux ae982cae6b rp: Begun re-ordering the code to make it more like other targets 2022-07-31 16:23:31 -07:00
dragonmux 9015013195 rp: static correctness for several of the RP2040 routines 2022-07-31 16:23:31 -07:00
dragonmux f429898adb rp: Removed rp_detach as the function serves no purpose 2022-07-31 16:23:31 -07:00
grumat df513ebda8 Added support for AT32F403A/407/415. 2022-07-31 12:21:26 +01:00
Rafael Silva f435bd2136 target/adi: rework handling of TARGETID
add missing fetching of targetid in jlink probes
clarify how targetid is being read
handle idcode as debug_port_id
use targetid when available to identify device in probe routine
2022-07-31 12:09:07 +01:00
Rafael Silva ad65f4a7c7 target/adi: remove superfluous ap_ prefix from ap variable 2022-07-31 12:09:07 +01:00
Rafael Silva 8238d3c020 target: rename target idcode 2022-07-31 12:09:07 +01:00
Rafael Silva 8e06539eb5 target/lp17xx: remove unnecessary check
this actually just checked that is was a DP designed by arm for probably a cortex M3 or M4
we already check for M3 afterwards, not very useful
2022-07-31 11:16:36 +01:00
Rafael Silva 07b8d9c285 target/efm32: remove unnecessary check 2022-07-31 11:16:36 +01:00
Rafael Silva 1286faff64 target/adi: correct raspberry jep code, cleanup dpidr/targetid code handling 2022-07-31 11:16:36 +01:00
Rafael Silva 58025feec2 target/adi: rename missleading idcode variable 2022-07-31 11:16:36 +01:00
Rafael Silva a9229a869b target/semihosting: move semihosting defines to its own header 2022-07-31 11:16:36 +01:00
Rafael Silva 73f3910f62 misc: code format & cleanup 2022-07-31 11:16:36 +01:00
Uwe Bonnes 460bd1e477 stm32/gdb_if: Use _WFI when nothing to do. 2022-07-30 21:45:51 -07:00
fabalthazar 02261b900e Do not reply OK forever if USB port closed 2022-07-30 19:03:14 -07:00
fabalthazar 74b4b863c1 Do not turn IDLE LED off when port closed and target already detached 2022-07-30 19:03:14 -07:00
dragonmux e6075d4bd3 ch32f1: Static correctness for for ch32f1_buffer_clear 2022-07-30 18:05:42 -07:00
dragonmux 7e7bc3789c ch32f1: Fixed the return type for ch32f1_flash_lock 2022-07-30 18:05:42 -07:00
dragonmux f548473f28 ch32f1: Fixed the return type for ch32f1_flash_unlock 2022-07-30 18:05:42 -07:00
dragonmux 9d43ade05c cortexm: Fixed the probing for LMI devices (both Cortex-M3 and Cortex-M4)
Other routines that were firing in front of lmi_probe were putting the devices into bad state and causing a plethora of issues
2022-07-30 18:04:07 -07:00
dragonmux a561e71fc3 lmi: Refactored out the device IDs as defines 2022-07-30 18:04:07 -07:00
dragonmux c6b833665b lmi: Cleaned up in lm3s_probe() 2022-07-30 18:04:07 -07:00
dragonmux 289aad6792 lmi: Added support for the LM3S8962 2022-07-30 18:04:07 -07:00
dragonmux f3f7253f00 lmi Added support for LM3S5732 2022-07-30 18:04:07 -07:00
dragonmux 20b973daa0 lmi: Corrected the LM3S3748 RAM and Flash regions as they were mis-sized 2022-07-30 18:04:07 -07:00
dragonmux 738b6c650f lmi: Refactored the probe code as it handles multiple device families and the structure should reflect that 2022-07-30 18:04:07 -07:00
dragonmux 75773631cb cortexm: Fixed a clang-tidy warning in the PROBE macro 2022-07-30 18:04:07 -07:00
dragonmux 08207b9af9 lmi: Added some more robustness to the probe routine 2022-07-30 18:04:07 -07:00
dragonmux d3c80f8b32 jtag_scan: Reordered jtag_dev_t to fix a clang-tidy warning about excessive padding 2022-07-30 18:00:08 -07:00
dragonmux a4ee80edfe jtag_scan: Cleaned up and reworked jtag_dev_shift_dr() 2022-07-30 18:00:08 -07:00
dragonmux 2eb19d4eb7 jtag_scan: Cleaned up and reworked jtag_dev_write_ir() 2022-07-30 18:00:08 -07:00
dragonmux 14dafdbf92 jtag_scan: Finished cleaning up in jtag_scan() 2022-07-30 18:00:08 -07:00
dragonmux 181e84cb0c jtag_scan: Adjusted the parameter and result types for jtag_scan(), jtag_add_device(), and related functions 2022-07-30 18:00:08 -07:00
dragonmux 36db97a57c jtag_scan: Cleaned up and reworked the BMDA integration and scan debugging information 2022-07-30 18:00:08 -07:00
dragonmux 8bf601a368 jtag_scan: Continued reworking jtag_scan() and switched jtag_dev_count to a uint32_t as it can't be negative 2022-07-30 18:00:08 -07:00
dragonmux 190c45b450 jtag_scan: Reworked IR length and device count scanning when irlens is not given 2022-07-30 18:00:08 -07:00
dragonmux 9f35763199 jtag_scan: Reworked and cleaned up how scan works when irlens is specified 2022-07-30 18:00:08 -07:00
dragonmux b258730499 jtag_scan: Turned the JTAG conformance hard errors into warnings 2022-07-30 18:00:08 -07:00
dragonmux c488a15982 command: Improved the messages emitted out of the Trace/SWO command 2022-07-30 17:47:53 -07:00
dragonmux fb579e5929 command: Added some output for cmd_morse when there is no message set 2022-07-30 17:47:53 -07:00
dragonmux e013b48139 command: Cleaned up cmd_debug_bmp 2022-07-30 17:47:53 -07:00
dragonmux a467568325 command: Cleaned up in cmd_traceswo 2022-07-30 17:47:53 -07:00
dragonmux 65c58998b4 command: Cleaned up and refactored cmd_rtt 2022-07-30 17:47:53 -07:00
dragonmux 39611b8b4f command: Cleaned up in cmd_target_power 2022-07-30 17:47:53 -07:00
dragonmux e8610d9ca2 command: Fixed a clang-tidy warning in cmd_halt_timeout 2022-07-30 17:47:53 -07:00
dragonmux bffd3d3d14 command: Cleaned up cmd_connect_reset 2022-07-30 17:47:53 -07:00
dragonmux 567fc631f0 command: Refactored display_target() 2022-07-30 17:47:53 -07:00
dragonmux 50457bac13 command: Cleaned up in cmd_frequency and added some robustness 2022-07-30 17:47:53 -07:00
dragonmux 35f071c22e command: Cleaned up in cmd_jtag_scan 2022-07-30 17:47:53 -07:00
dragonmux 5d0e36e668 command: Cleaned up and refactored cmd_help 2022-07-30 17:47:53 -07:00
dragonmux f33744aa6a command: Fixed a pile of type confusion in the command function arguments 2022-07-30 17:47:53 -07:00
dragonmux 823634e609 command: Refactored and cleaned up command_process 2022-07-30 17:47:53 -07:00
dragonmux 68a6a7b85e command: Run clang-format across the code 2022-07-30 17:47:53 -07:00
dragonmux f85265438c command: Cleaned up parse_enable_or_disable 2022-07-30 17:47:53 -07:00
dragonmux c2ce4430c8 command: Implemented a new command for performing intentional TDI-low resets 2022-07-30 16:59:38 -07:00
dragonmux 84c004281d lpc11xx: Further cleanup in lpc11xx_add_flash 2022-07-30 16:59:38 -07:00
dragonmux af86d50bc2 lpc11xx: Moved the readuid command to where it makes more sense 2022-07-30 16:59:38 -07:00
dragonmux 3d1933a5a0 lpc11xx: Run clang-format across the code 2022-07-30 16:59:38 -07:00
dragonmux a9fff1e8a6 adiv5: Tidied up in adiv5_component_probe() 2022-07-30 16:43:43 -07:00
dragonmux ce37d4e833 adiv5: Fix some nomenclature in adiv5_dp_init() 2022-07-30 16:43:43 -07:00
dragonmux 733d8ddc19 adiv5: Fix the invalid AP handling loop so that we don't stop early and bail out before time.
This improves target detection reliability.
2022-07-30 16:43:43 -07:00
dragonmux 1ea9641ada hosted/remote_jtagtap: Refactored remote_jtagtap_init and cleaned up 2022-07-30 16:26:04 -07:00
dragonmux 02b979d382 jtagtap: Added support for configurable TAP idle cycles ready for RISC-V support 2022-07-30 16:26:04 -07:00
dragonmux 0f0435a7c1 hosted/remote_jtagtap: Fixed the debug error string in jtagtap_tdi_tdo_seq 2022-07-30 16:26:04 -07:00
dragonmux d0faab957a hosted/remote_jtagtap: Refactored jtagtap_reset and cleaned up 2022-07-30 16:26:04 -07:00
dragonmux 5876c7674b hosted/remote_jtagtap: Refactored jtagtap_tms_seq and cleaned up 2022-07-30 16:26:04 -07:00
dragonmux 267dabacb1 hosted/remote_jtagtap: Refactored jtagtap_tdi_tdo_seq and cleaned up 2022-07-30 16:26:04 -07:00
dragonmux 8177e3c723 hosted/remote_jtagtap: Refactored jtagtap_cycle and cleaned up 2022-07-30 16:26:04 -07:00
dragonmux 088eb6f01b hosted/remote_jtagtap: Refactored jtagtap_next and cleaned up 2022-07-30 16:26:04 -07:00
dragonmux 7b5121c970 hosted/remote_jtagtap: reformatted with clang-format 2022-07-30 16:26:04 -07:00
dragonmux f02304dfdb hosted/remote_jtagtap: Implemented support for jtagtap_cycle 2022-07-30 16:26:04 -07:00
dragonmux 2bfd84d1b2 remote: Implemented support for using the new jtagtap_cycle call 2022-07-30 16:26:04 -07:00
dragonmux 1b39173780 remote: Fixed several clang-tidy warnings caused by bad (reserved) function naming 2022-07-30 16:26:04 -07:00
dragonmux deadf9a78d jtagtap: Implemented jtagtap_cycle for running extra clock cycles on the bus when needed 2022-07-30 16:26:04 -07:00
grumat 5e9a974c42 Fixed compatibility issues with CH32F1 target driver and other STM32F103 clones. 2022-07-30 09:57:28 +01:00
ylm 84ffdd3b21 fix: Add nop instruction for timing purpose
Adding a nop instruction in the no_delay TMS sequence routine fixes timing on the f4discovery platform
2022-07-30 02:49:56 +01:00
ylm 4d64edad7a fix: Use standard macros for debug message formating 2022-07-29 21:22:17 +01:00
dragonmux 57fec4d0b6 adiv5: Cleaned up a couple of the debug prints 2022-07-29 21:22:17 +01:00
Rafael Silva 7c14b62419 target: fix probing for lpc1343 2022-07-26 05:14:30 +01:00
Rafael Silva bf30580330 target/adiv5: add missing include in hosted build
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-07-26 05:08:10 +01:00
Rafael Silva 8b5206fb8d target: add weak aliasing to allow disabling targets
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-07-26 05:08:10 +01:00
dragonmux 6f81cb6a68 adiv5: Removed an extraneous pair of perens as they suppress desirable warnings 2022-07-25 18:28:57 +01:00
dragonmux 3592658a26 adiv5: Cleaned up the loop in adiv5_ap_read_id 2022-07-25 18:28:57 +01:00
dragonmux bb3e74062e adiv5: Fixed the naming of a timeout in cortexm_prepare 2022-07-25 18:28:57 +01:00
Rafael Silva 013b2dee60 target/adiv5: further cleanup 2022-07-25 18:28:57 +01:00
Rafael Silva 0942d7047a target/adiv5: saner designer code handling and cleanup
Signed-off-by: Rafael Silva <rafaelsilva@ajtec.pt>
2022-07-25 18:28:57 +01:00
Rafael Silva ce3d80528e command: clarify hex format
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-07-25 18:28:57 +01:00
Rafael Silva d1fa50336e target/adiv5: clang format/tidy 2022-07-25 18:28:57 +01:00
dragonmux 37efd257e8 gdb_main: Fixed a small DEBUG_GDB regression for vFlashErase and vFlashWrite debugging 2022-07-20 23:03:31 -07:00
dragonmux e2f07b359a gdb_main: Implemented a notification to GDB that the "process" has exited when the user runs a new bus scan while attached to a target 2022-07-20 21:37:16 -07:00
dragonmux c0b5f89148 gdb_packet: Implement notification packets 2022-07-20 21:37:16 -07:00
dragonmux 5ae5ffb7c3 gdb_main: Add some output in the scan commands to indicate when still attached that you aren't after the command, despite what GDB thinks 2022-07-20 21:37:16 -07:00
dragonmux b47ee11537 gdb_main: Implemented qfThreadInfo and qsThreadInfo for GDB 11+ 2022-07-20 21:37:16 -07:00
dragonmux 4ba77a60ca gdb_main: Implemented vKill as it's required for GDB 11+ 2022-07-20 21:37:16 -07:00
dragonmux 2378e8614e gdb_main: Cleaned up the naming in the 'g' and 'G' packet handlers 2022-07-20 21:37:16 -07:00
dragonmux bc5cca7a8b hex_utils: Cleaned up and fixed the type confusion that was going on 2022-07-20 21:37:16 -07:00
dragonmux adff7651b6 gdb_main: Reply to vAttach with TID 1 because GDB 11 and 12 are terminally broken otherwise 2022-07-20 21:37:16 -07:00
dragonmux 0c8ebc693d gdb_main: Implemented support for qC queries 2022-07-20 21:37:16 -07:00
dragonmux 00c09b4156 gdb_main: More type confusion fixes and cleanup 2022-07-20 21:37:16 -07:00
dragonmux 75d7dd32d1 gdb_main: Implemented H[m|M|g|G|c] packet support 2022-07-20 21:37:16 -07:00
dragonmux f448368d39 gdb_packet: Done a spring pass on the types situation and cleaned things up 2022-07-20 21:37:16 -07:00
Sean Cross a83e024eea general: check _DEFAULT_SOURCE and _GNU_SOURCE
The _DEFAULT_SOURCE and _GNU_SOURCE defines must exist in order to
enable certian glibc features. Therefore, it is common to define these
either in header files or on the command line.

Some platforms define these in their system headers. For example,
ESP-IDF defines this in their `features.h` file. This results in
a clash when blackmagic is compiled.

Check that these defines do not already exist prior to defining them.

Signed-off-by: Sean Cross <sean@xobs.io>
2022-07-20 05:18:42 +01:00
dragonmux c530bd077b misc: Switched to using C11 2022-07-18 20:59:15 -07:00
dragonmux 52e5357e99 swdptap: Refactored swdptap_seq_out_parity and cleaned up 2022-07-18 18:57:10 -07:00
dragonmux da1038313f swdptap: Refactored swdptap_seq_out and cleaned up 2022-07-18 18:57:10 -07:00
dragonmux 29baa2725c swdptap: Further cleanup to the seq_in functions 2022-07-18 18:57:10 -07:00
dragonmux caaf7837a5 swdptap: Made the cycle code a little easier to reason about
This doesn't actually change the resulting binary size, so worth doing
2022-07-18 18:57:10 -07:00
dragonmux c267327975 swdptap: Refactored swdptap_seq_in_parity and cleaned up 2022-07-18 18:57:10 -07:00
dragonmux 6f0bdf5f32 swdptap: Refactored swdptap_seq_in and cleaned up 2022-07-18 18:57:10 -07:00
dragonmux 92c7a11cd2 swdptap: Cleaned up swdptap_turnaround 2022-07-18 18:57:10 -07:00
dragonmux 10d30821e5 swdptap: Cleaned up the naming and and signatures of the SWDP implementation functions 2022-07-18 18:57:10 -07:00
dragonmux 1a362db5ab hosted/cmsis_dap: Naming cleanup 2022-07-18 18:57:10 -07:00
dragonmux a8c2082adf jtagtap: Const-correctness 2022-07-18 18:57:10 -07:00
dragonmux 9a21ef043f hosted/ftdi_bmp: Cleaned up and fixed the signature for libftdi_buffer_write 2022-07-18 18:57:10 -07:00
dragonmux d1c24b4fec jtagtap: Cleaned up and fixed the signatures for the JTAG TAP implementation functions 2022-07-18 18:57:10 -07:00
dragonmux 46958ba404 dap: Cleaned up the naming and signature of the JTAG TAP DAP functions 2022-07-18 18:57:10 -07:00
dragonmux 96cdd17974 remote: Cleaned up the REMOTE_NEXT state 2022-07-18 18:57:10 -07:00
dragonmux bdae0b2ded jtagtap: Refactored jtagtap_tdi_seq, cleaning up and fixing naming 2022-07-18 18:57:10 -07:00
dragonmux 131165701c jtagtap: Fixed more of the naming for parameters to the JTAG TAP functions 2022-07-18 18:57:10 -07:00
dragonmux 124b3c79d7 jtagtap: Refactored jtagtap_tdi_tdo_seq and cleaned up 2022-07-18 18:57:10 -07:00
dragonmux 1671b97f61 jtagtap: Reworked jtagtap_tms_seq(), saving 8 bytes and simplifying things 2022-07-18 18:57:10 -07:00
dragonmux 303fa15171 jtagtap: Reformatted and begun cleaning up the JTAG TAP primitives implementation 2022-07-18 18:57:10 -07:00
dragonmux a6f2b52d9b jtagtap: Reformatted and cleaned up in the header 2022-07-18 18:57:10 -07:00
dragonmux 7b1c4a5565 hosted/cli: Remove the `-d`/`--device` deprecation warning
This option is still useful to many users and there isn't a particular reason for it to be marked deprecated
2022-07-18 17:13:52 -07:00
dragonmux 85d24e8289 target: Implemented a command to allow erasing Flash ranges on any target 2022-07-18 17:12:13 -07:00
dragonmux 52cad38fac hosted/dap: Cleaned up some of the link reset pointer maths 2022-07-18 17:10:23 -07:00
dragonmux 8e8ad7dbd4 hosted/cmsis_dap: Removed one-bit SWD read while SWIO is undriven + pulled up which can cause issues with certain CMSIS-DAP adaptors
Many thanks to @mubes for finding this and suggesting a fix
2022-07-18 17:10:23 -07:00
Giovanni Santana 1b8e522e87 nrf51: Add command to enable flash protection
Add braces for the while loop
2022-07-15 16:57:52 +01:00
Giovanni Santana 6ae846ae24 target/nrf51: Add command to enable flash protection
Add command `mon protect_flash`  to enable flash read/write protection
2022-07-15 16:57:52 +01:00
Piotr Esden-Tempski e19c2a7298 BMDA: Make the pkg-config checks work on older gnu make versions.
The .SHELLSTATUS variable was added in GNU Make 4.2. Mac OS for example
ships with 3.81.
2022-07-15 12:40:09 +01:00
Piotr Esden-Tempski d0c45cf095 BMDA: Using tabs outside of a target indent causes issues.
It is safer to only use spaces to indent make statements outside of
targets as each line that executes any shell code will fail if it is
indented with tabs.
2022-07-15 12:40:09 +01:00
Jonathan Giles a3d3a2326f Add include path so that libusb headers found on OSX. 2022-07-15 02:19:03 +01:00
dragonmux 94b62ff924 target: Fixed several clang-tidy warnings which improve readability of the code 2022-07-14 16:19:43 -07:00
dragonmux bdf4dc8731 nrf51: Fixed mass erase after run then user interrupt (Ctrl + C) not working 2022-07-14 14:19:14 -07:00
dragonmux 5607eac812 cortexm: Cleaned up formatting, types and const-correctness in cortexm_attach 2022-07-14 14:19:14 -07:00
Rafael Silva 069f05ea4b target/efm32: stop hiding data in driver string
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-07-14 13:11:19 +01:00
Rafael Silva 096927b0b8 target/efm32: bootloader lock word handling fix
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-07-14 13:11:19 +01:00
Rafael Silva c2589bc39f target/efm32: mass erase correctness
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-07-14 13:11:19 +01:00
Rafael Silva 00dd7f145f target/efm32: code cleanup
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-07-14 13:11:19 +01:00
Rafael Silva 42d36d9d10 target/efm32: general formatting/style cleanup
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-07-14 13:11:19 +01:00
Piotr Esden-Tempski 018fc517a1 stm32f4: Fixes erase_mass command return error.
The final erase_mass command check is looking for the EOP (End of
OPeration) bit to be set. This bit is only set when the EOP interrupts
(EOPIE = 1) are enabled. We are not enabling those on the target so this
bit will never get set. As we are monitoring the BSY flag to make sure
the erase_mass operation is still ongoing and finished it is enough if
we just check the error flags.
2022-07-13 20:57:09 -07:00
dragonmux ae81d1635f hosted/cmsis_dap: Enhanced the hid_open failure output on Linux to help users narrow down the issue faster 2022-07-13 19:37:35 -07:00
dragonmux 0d2fb6ab79 hosted/cmsis_dap: Broken up the dap_init function into multiple parts so they're easier to understand 2022-07-13 19:37:35 -07:00
dragonmux ec5ac64bdc hosted/cmsis_dap: Done a first pass at rewriting the HID serial number logic to be unicode-safe 2022-07-13 19:37:35 -07:00
dragonmux 50ff4a2dbe hosted/dap: Fixed the definiiton of dap_info, adding const-correctness 2022-07-13 19:37:35 -07:00
dragonmux 2f9d280e2a hosted/dap: Cleanup and named all the enums defined in dap.h 2022-07-13 19:37:35 -07:00
dragonmux 1765d2afbc hosted/dap: Reformatted the header with clang-format 2022-07-13 19:37:35 -07:00
dragonmux 83191bb87d hosted: Made ASAN globally available, not only on Linux. 2022-07-13 19:37:35 -07:00
dragonmux 4bea5cfe81 hosted/cmsis_dap: Added a call to hid_error() when hid_open fails 2022-07-13 19:37:35 -07:00
dragonmux 000b05e1eb hosted: Updated the build system documentation 2022-07-13 19:37:35 -07:00
dragonmux a43fe4f5bf hosted: Reformatted Makefile.inc to make it easier to read 2022-07-13 19:37:35 -07:00
dragonmux a0b20bba84 hosted: Fixed the ASAN build configuration as it's wrong when using Clang as the compiler 2022-07-13 19:37:35 -07:00
dragonmux 4e50b22775 hosted: Removed the custom HIDAPI implementation for windows
The HIDAPI library provides a perfectly cogent implementation that includes statically linkable objects.
Their implementation is more correct and more up to date than this, so use it.
2022-07-13 19:37:35 -07:00
dragonmux 6d7c6c5daf lmi: Added progress dots for mass erase to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux d64992ade8 rp: Cleanup in how we define some of the Flash constants 2022-07-13 19:34:57 -07:00
dragonmux ce94169099 stm32l0: Added some links to the reference manuals 2022-07-13 19:34:57 -07:00
dragonmux a22d6e5056 stm32l0: Run clang-format across the code 2022-07-13 19:34:57 -07:00
dragonmux b84f883aeb lmi: Implemented mass erase 2022-07-13 19:34:57 -07:00
dragonmux 90b7362162 stm32l4: Switched to the unified mass erase command and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux 787d66fe95 stm32h7: Switched to the unified mass erase command, breaking up the implementation cleanly and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux 980a1f140c stm32g0: Switched to the unified mass erase command, breaking out the bank erase command and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux d82ad89715 stm32f4: Switched to the unified mass erase command and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux 2f0d35de19 samx5x: Bracket and GDB message cleanup 2022-07-13 19:34:57 -07:00
dragonmux 591f05d7e5 samd: Cleanup and fixed a notification TODO 2022-07-13 19:34:57 -07:00
dragonmux 94d5c0576b samd/samx5x: Switched to the unified mass erase command and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux e9b75ba4bc rp: Switched to the unified mass erase command and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux ffd358824f nrf51: Switched to the unified mass erase command for the recovery target and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux 57d8e8f5d9 nrf51: braces cleanup in nrf51_flash_erase 2022-07-13 19:34:57 -07:00
dragonmux ee694fcb75 nrf51: Switched to the unified mass erase command and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux 8130b62bcf lpc546xx: Switched to the unified mass erase command for the recovery target and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux 9af2d2a413 lpc: Clean up part of the lpc_iap_call command wait loop 2022-07-13 19:34:57 -07:00
dragonmux 56ecbb3b89 lpc43xx: Switched to the unified mass erase command and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux 6f57cdf6ba lpc17xx: Switched to the unified mass erase command and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux ae1cb56ce0 kinetis: Switched to the unified mass erase command for the recovery target and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux 9d46d0c5c6 target: Refactored out the progress printer to reduce Flash usage 2022-07-13 19:34:57 -07:00
dragonmux b8ca831cfb efm32: Switched to the unified mass erase command for the recovery target and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux c1758088cd efm32: Switched to the unified mass erase command and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux 17c04d585e stm32f1: Switched to the unified mass erase command and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux c2d72b4825 kinetis: Switched to the unified mass erase command and added progress dots to stop GDB timing out 2022-07-13 19:34:57 -07:00
dragonmux c35f65c6c0 target: Implemented a global target mass erase command 2022-07-13 19:34:57 -07:00
dragonmux 30e2106e40 target: Make the buffers used to program a target's Flash better bounded in lifetime and memory usage 2022-07-13 19:08:31 -07:00
Anti Sullin 3e9913e88b Implement semihosting debug output redirection to usb-uart port. 2022-07-13 18:49:20 -07:00
Piotr Esden-Tempski c7b54d2eaa BMP V2.3: Fix outdated ADC reads.
We are using GD32F103 on the BMP V2.3 hardware. The GD32F103 has an
errata for the ADC where the end of conversion (EOC) bit is not reset
when reading the ADC result. This resulted in us not waiting for the new
value to be acquired and reading an old value instead. The solution for
that is resetting the EOC bit manually after reading the ADC result, so
that on the next acquisision we wait for the conversion to finish.

This patch also increases the sampling time as the GD32 have lower ADC
impedance than the STM32 and this should help us read a more accuarate
target voltage.
2022-07-14 01:54:43 +01:00
dragonmux 4bc68409f8 kinetis: Clean up how kl_gen_flash_done builds the command buffers to send to ensure the security byte is OK 2022-07-11 17:12:23 -07:00