Commit Graph

1835 Commits

Author SHA1 Message Date
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
dragonmux f0566979b0 kinetis: Fixed the flash write command generation for K64 devices 2022-07-11 17:12:23 -07:00
dragonmux 6f273cadd8 kinetis: Try to be safer about our FCCOB writes so the Flash controller's less likely to get mad 2022-07-11 17:12:23 -07:00
Rafael Silva 0c18fcefe3 kinetis: macro organization and clearer function naming
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-07-09 15:55:37 -07:00
dragonmux 18a49ac853 kinetis: Run clang-format on the code 2022-07-09 15:45:06 -07:00
dragonmux 72e4f4d2b2 kinetis: Refactored out some common code from kinetis_probe for the S32K14 lineup 2022-07-09 15:45:06 -07:00
dragonmux fee6f28915 kinetis: General formatting and readability cleanup 2022-07-09 15:45:06 -07:00
dragonmux 9b8d2fb822 stlink: Added documentation about the new SWIM_AS_UART build option 2022-07-03 18:05:02 -07:00
Silke Hofstra a95e2e80bc stlink: Add option to turn SWIM/RST into UART RX/TX
Building for `stlink` with `SWIM_AS_UART=1` now enables the use of the
SWIM and RST ports as RX and TX on cheap ST-Link V2 clones.

This is done by using USART1 on the alternative port instead of USART2.
2022-07-03 18:05:02 -07:00
Marcin Niestroj c26115b3f7 blackpillv2: clarify how to exit bootloader mode
There is no need to press any other "key" other than NRST button. So
update documentation according to that.
2022-07-01 06:56:57 -04:00
Marcin Niestroj 86a12ddaaa blackpillv2: clarify how to enter to bootloader mode
According to [1] all PCB revisions have BOOT0 and NRST labels near
buttons. Reference those in README for ease of use.

PB2/BOOT1 has a 10k pull-down on PCB (in all revisions, according to
[1]), so there is no need to do anything on the board (like "jumpering
to GND") unless the board was modified by user. Hence don't reference
PB2/BOOT1 in the README, as it was just confusing to the user.

[1] https://github.com/WeActTC/MiniSTM32F4x1/tree/master/HDK
2022-07-01 06:56:57 -04:00
Marcin Niestroj 61c2724c9d blackpillv2: fix PROBE_HOST in Readme.md
After renaming directory with s/blackpill/blackpillv2/, Readme.md still
contained the old 'blackpill' name in PROBE_HOST. Fix that by replacing
it with 'blackpillv2'.

Fixes: 3ccb0af21c ("blackpillv2: Renamed blackpill to blackpillv2 to
  prevent ambiguity.")
2022-07-01 06:01:06 -04:00
Jonathan Giles 780ee7a2a8 Fix build error and logic ... 2022-06-28 06:31:16 -04:00
dragonmux d78f7696cc stm32/serialno: Run clang-format on the serial number code 2022-06-27 23:11:42 -07:00
dragonmux fef40b701f stm32/serialno: Fixed a typo in the 24 character serial number loop
before: 0670FF530000000000000000
after: 0670FF535567494867085055
2022-06-27 23:11:42 -07:00
Manoel Brunnen d140b4b667 stlink: Fix the LED pinout on the Nucleo boards 2022-06-27 23:09:56 -07:00
Rafael Silva 1a963b81f6 target/stm32f1: GD32E230 option write special case handling
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-06-27 18:13:52 -04:00
Rafael Silva e7a7d82b33 target/stm32f1: remove unused code snippet and superfluous preprocessor check, less pedantic wording on warning
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-06-27 18:13:52 -04:00
Rafael Silva a5ebff14bb target/stm32f1: remove redundant grouping ad for loop cleanup
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-06-27 18:13:52 -04:00
Rafael Silva 90ed4fe31a target/stm32f1: clang-format and code styling for better readability
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-06-27 18:13:52 -04:00
Rafael Silva 5666fa2a2f target/sam3x: add aditional check for valid EEFC addr
Signed-off-by: Rafael Silva <rafaelsilva@ajtec.pt>
2022-06-27 07:48:54 -04:00
Rafael Silva 1bca0323d9 target/sam3x: saner uninitialized variable prevention
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-06-27 07:48:54 -04:00
dragonmux 3a02fdea9d misc: Added a clang-tidy Makefile target so enforcing the formatting is easier 2022-06-26 18:55:04 -07:00
Jonathan Giles 730a795f09 Add idcode for GD32F303CG detection 2022-06-26 21:00:26 -04:00
dragonmux 09f64b0627 misc: Added a HACKING.md to provide an explanation of nomenclature and how we handle reset terminology 2022-06-26 16:51:58 -07:00
dragonmux c33d02bc19 hosted/stlink: Improved the information output and its consistency 2022-06-26 16:51:58 -07:00
dragonmux aa9c80b37d misc: Formatting consistency 2022-06-26 16:51:58 -07:00
dragonmux 2765811bbb hosted/stlink: Naming consistency for 'stlink' global object 2022-06-26 16:51:58 -07:00
dragonmux 66b2d0659a hosted: type naming consistency 2022-06-26 16:51:58 -07:00
dragonmux baf84c9eb4 launchpad-icdi: Cleaned up and fixed some C89-isms 2022-06-26 16:51:58 -07:00
dragonmux 0139a349ab hosted/FTDI: Cleaned up the error handling so the compiler can usefully tell us of errors in conditions
This also fixes an accidental assignment bug in libfti_max_frequency_set()
2022-06-26 16:51:58 -07:00
dragonmux 826840bf90 hosted/remote: Cleaned up the error handling so the compiler can usefully tell us of errors in conditions 2022-06-26 16:51:58 -07:00
dragonmux fbe804f905 hosted/ftdi: Updated the 'cables' definitions 2022-06-26 16:51:58 -07:00
dragonmux 5ec848e948 hosted/jlink: Fixed use of 'int' where 'size_t' is more appropriate 2022-06-26 16:51:58 -07:00
dragonmux 9b53fbf6ea launchpad-icdi: Fixed up and rewritten the serial number code to match what was done in #1041 2022-06-26 16:51:58 -07:00
dragonmux c271c5c979 remote: Updated the naming in the remote protocol macros 2022-06-26 16:51:58 -07:00
dragonmux adc03e47d6 hosted: Cleaned up and fixed the definitions of the fill functions for HOSTED_BMP_ONLY 2022-06-26 16:51:58 -07:00
dragonmux 94afb264e4 command: Cleaned up and improved the naming of cmd_reset and cmd_connect_reset 2022-06-26 16:51:58 -07:00
dragonmux 12fefa73c9 platforms: Cleaned up and fixed many markdown lint errors, improving the formatting of many of the platform README's 2022-06-26 16:51:58 -07:00
dragonmux 0dae6a4019 misc: Renamed connect_assert_nrst to clarify usage and align naming 2022-06-26 16:51:58 -07:00
dragonmux b226c53d13 misc: Renamed CORTEXM_TOPT_INHIBIT_NRST to clarify usage and align naming 2022-06-26 16:51:58 -07:00
dragonmux 5edf549b48 misc: Updated comments and READMEs to properly reflect pinouts and function 2022-06-26 16:51:58 -07:00
dragonmux 2eaa579965 platforms: NRST and TRST naming consistency
This aligns the nRST and nTRST pin naming with the bulk of the README's for the platforms along with the hardware
2022-06-26 16:51:58 -07:00
dragonmux a8e12d716d misc: Renamed platform_nrst_{get,set}_val to clarify naming and provide consistency 2022-06-26 16:51:58 -07:00
SId Price bc9032da06 Fix uninitialized variables in target sam3x
Exposed while building hosted with -Og option
2022-06-26 18:52:12 -04:00
dragonmux 0612f2dc79 hosted: Documented the new command line option and added it to the ZSH completions 2022-06-26 14:28:35 -07:00
dragonmux 52dcf46e61 command: Done a little cleanup of the formatting and layout 2022-06-26 14:28:35 -07:00
dragonmux 10a4c3f77e hosted: Implemented the extra logic to implement auto-scan in the CLI 2022-06-26 14:28:35 -07:00
dragonmux 2aea7238af command: Implemented the new 'auto_scan' command for the firmware 2022-06-26 14:28:35 -07:00
dragonmux ce3544b206 hosted: Removed unwanted automatic switch over to JTAG when SWD scan fails 2022-06-26 14:28:35 -07:00
dragonmux b713376ce7 hosted/cmsis_dap: Fixed the naming of the cmsis_type_e enum 2022-06-26 14:24:08 -07:00
dragonmux 07321a4114 ch32f1: Fixed another broken debug print that made assumptions about %x and %d that are wrong 2022-06-26 14:19:46 -07:00
dragonmux 680a009690 cortexm: Added additional debug information for part probing 2022-06-26 14:19:46 -07:00
dragonmux b5b2d4dc95 ch32f1: Re-ordered a couple of the operation in ch32f1_probe so it plays nicer with the STM32 parts 2022-06-26 14:19:46 -07:00
dragonmux 0368b76078 ch32f1: Further formatting and layout cleanup 2022-06-26 14:19:46 -07:00
dragonmux fbc87cc518 ch32f1: Fixed the probe routine distrubing state for other parts wrt `t->idcode`
The CH32F1 routine now reads the IDCode into a local.
If the part number matches and appears to be the chip (based on Flash locking), it only then writes the IDCode into `t->idcode`, which is at the point we can only `return true` from the probe routine anyway.
2022-06-26 14:19:46 -07:00
dragonmux 08a8988462 ch32f1: formatting cleanup to bring things closer to inline with the rest of the codebase 2022-06-26 14:19:46 -07:00
SId Price 9aba7ecce2 Define the long options structure as const. 2022-06-26 17:08:32 -04:00
SId Price 84408fef57 Remove unwanted whitespace 2022-06-26 17:08:32 -04:00
SId Price 3495207980 Further help text updates 2022-06-26 17:08:32 -04:00
SId Price 7edd4b3379 Textual corrections to help 2022-06-26 17:08:32 -04:00
SId Price 39bf17b768 Add back code lost during recent rebase 2022-06-26 17:08:32 -04:00
SId Price 7dd82418e0 Implement long options initial commit 2022-06-26 17:08:32 -04:00
dragonmux 6f38b844af stm32/serialno: Fixed a regression in 24 character serial number suport which was causing them to display all 0's 2022-06-26 14:06:18 -07:00
dragonmux 4a0e373b49 stm32/serialno: Fixed a small regression that made it in with #1041 resulting in a transposition of alpha characters in serial numbers 2022-06-26 14:06:18 -07:00
Maciej Musiał 2673e34ddd cortexm: fixed an issue with watchpoint handling and a register sanity check 2022-06-26 13:44:45 -04:00
Uwe Bonnes 1009329882 stlinkv2: Treat STLINK_SWD_AP_FAULT after STLINK_ERROR_WAIT as STLINK_ERROR_WAIT
cortexm_initial_halt() repeats the DHCSR write with high values for TRNCNT in
CSW. This is needed to catch a STM32F7 mostly in WFI. While the repeated write
is running, STLINKV3 on a Nucleo-WL55 (V3J7M2B0S0) answers first with
STLINK_SWD_AP_WAIT and on more read if write command is still running with
STLINK_SWD_AP_FAULT. At some point when the last command is finished, normal
STLINK_ERROR_OK indicates finally successful read. Treat STLINK_SWD_AP_FAULT
after STLINK_ERROR_WAIT as STLINK_ERROR_WAIT in that case. STLINK_SWD_AP_FAULT
may still be issued on other invalid accesses and should still be treated as
error in the other possible cases. Fixes #1071.
2022-06-26 12:08:23 -04:00
SId Price b1a02d4f48 Correct filenames in the rest of the files using cl_utils.h 2022-06-26 12:04:21 -04:00
SId Price 664a91b254 Fix filename in cmsis_dap.c 2022-06-26 12:04:21 -04:00
SId Price 8a86faf49d Rename cl_utils.* to cli.*, and fix references
File "serial_unix.c" edited but Linux build not done (Windows only dev environment)
2022-06-26 12:04:21 -04:00
SId Price 0ebcba458d Move all files from "pc" folder to "hosted", update Makefile.inc 2022-06-26 12:04:21 -04:00
SId Price fcae730bf8 Correct scanf format specifier
Rather than casting here, use PRIu32 - as in "%" PRIu32 ".%" PRIu32 - it's undefined behaviour and quite illegal to do the cast as, depending on platform, you'll end up with only some of the bytes in units and tenths written and which ones and what that means will depend on endianess.
2022-06-26 12:02:41 -04:00
SId Price 02d2ba98d5 Enable power control in BMPA and add required functions 2022-06-26 12:02:41 -04:00
Uwe Bonnes 80c98df2f9 stm32wxxx: CPU2 needs wake-up call and has unexpected PIDR4 in AP1
"Single" core  STM32WLE still sees AP1 but on first scan aborts gracefully
after some errors and on later runs sees AP1 as unusable. Fixes #832.

Decode the Cross trigger interface found on CPU2 on STM32WBxx.
2022-06-25 16:52:36 -04:00
Uwe Bonnes 471ba19a77 adiv5.c: Read all CIDR data in one call.
E.g on STM32WXXX AP1 with C2BOOT not set, the AP base registers have valid
values but reading them fails and turns the AP unusable. BMDA reading CIDR
with multiple calls will will loop and finally hang up BMD. Other target
devices may show similar behaviour.
Reading CIDR with a single call allows recovery from in that case and
additional spares target transactions.
2022-06-25 16:52:36 -04:00
dragonmux 14d3846663 gdb_main: Fix a formatting bug that breaks, among other things, breakpoints 2022-06-24 18:35:31 -07:00
James Turton e702afad69 rp: Clean up code a little bit 2022-06-24 20:44:00 -04:00
James Turton e67cb9f43c rp: Update rp_get_flash_length algorithm
Try to look for repeating sectors before reverting to reading the
JEDEC ID of the flash chip. This way we don't interrupt the flash
execution if a valid program is running, but can detect the flash
size if the flash memory has been erased.
2022-06-24 20:44:00 -04:00
James Turton f2cb13cf36 rp: Add rp_attach and rp_detach callbacks
Query JEDEC ID of flash chip on attach to be able to decode flash
chip size.
2022-06-24 20:44:00 -04:00
James Turton 354e37fbad rp: Tidy up some other things 2022-06-24 20:44:00 -04:00
James Turton ce273889fc rp: Refector rp_flash_write
Fix typo in debug message
2022-06-24 20:44:00 -04:00
James Turton f4261c465e rp: Refactor rp_flash_erase
Always align erase length to 4k sector size.
Check that start address and length are actually inside the flash.
2022-06-24 20:44:00 -04:00
Rafael Silva dd571467b5 target/sam: slight gpnvm command usage correctness
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-06-24 20:19:47 -04:00
dragonmux d85e9fb7a2
hosted: Un-marked hid.c as exectuable as it can't be 2022-06-15 12:56:33 -04:00
dragonmux 14d7286db1
stlink: Added a little extra whitespace to help the readability of the platform header 2022-06-15 12:56:24 -04:00
SId Price 7160bb987b Fixup preprocessor definition
Suggested by @DragonMux
2022-06-14 13:45:51 -04:00
Jonathan Giles 9f4d50a018 Change from tty.usb* to cu.usb* for more consistent behavior on OSX 2022-06-13 15:25:23 -07:00
dragonmux b4c81f6302 platforms/f072: moved the linker script and fixed the build system 2022-06-12 17:10:32 -07:00
dragonmux 3e6bd6cdf2 platforms/f072: updated the platform definition 2022-06-12 17:10:32 -07:00
Uwe Bonnes 20e09abed2 platforms/f072: Introduced a new platform for the SMT32F072
F0 needs separation of DMA Interrupts, show problems with 128 Byte USART/DMA
buffers, perhaps caused by the st_usbfs_v2_usb_driver and has no
scb_reset_core.
2022-06-12 17:10:32 -07:00
dragonmux fafe38ba19 hosted/cmsis-dap: Various CMSIS-DAP implementation correctness improvements 2022-06-12 16:35:15 -07:00
Mikaela Szekely db4b568e52 Fix compatibility with dash as /bin/sh.
Ubuntu's default /bin/sh is dash, which does not support the `&>`
redirection syntax. This commit moves version.h generation back into the
Makefile, as 8afaedd had it, but restores compatibility with
GNU Make < 4.0, which 8afaedd, broke. This also fixes building on macOS,
as macOS bundles GNU Make 3.81.
2022-06-12 16:31:00 -07:00
dragonmux 7180a5b9a2 hosted: Fixed issues finding and linking HIDAPI on MacOS 2022-06-12 16:31:00 -07:00
dragonmux 7846112a7b misc: Updated the build system to use the new version header generator script, fixing #1043 2022-06-12 16:31:00 -07:00
dragonmux 9a0e4b4f23 stm32/serialno: Cleaned up the inconsistencies in how DESIG_UNIQUE_ID_BASE is used in the serialno code 2022-06-12 16:18:39 -07:00
dragonmux 5a9131dcb2 stm32/serialno: Fixed a couple of mistakes made in the cleanup and attempted a different way to quiet the errant GCC warning 2022-06-12 16:18:39 -07:00
dragonmux 24ffef7175 stm32/serialno: Cleaned up the serial number handling code which is tripping GCC 11 up due to a compiler regression 2022-06-12 16:18:39 -07:00
dragonmux 1a316c5a2f platforms/f3: moved the linker script and fixed the build system
We need build the right libopencm3 library which is not done by default, so this adds an extra build step for it
2022-06-12 15:58:11 -07:00
dragonmux ef5cfd829f platforms/f3: updated the platform definition 2022-06-12 15:58:11 -07:00
Uwe Bonnes 55a3132d1c platforms/f3: Introduced a new platform for the STM32F3 series 2022-06-12 15:58:11 -07:00
James Turton af48a343a8 rp: Add description for SPI flash commands 2022-06-11 11:54:34 -04:00
James Turton b43b9a6545 rp: Add erase_sector to command list
The command can be used either by specifying the length only, or
the start address and the length like so:
monitor erase_sector <length>
monitor erase_sector <start_addr> <length>
If no start address is specified, it will begin erasing from the
start of the flash sector.
2022-06-11 11:54:34 -04:00
James Turton 53672f1fc3 rp: Remove CHIP_ERASE command from rp_flash_erase
There seems to be a bug in the bootrom for the rp2040 which means
that the chip erase command is not accepted. This is because the
CS pin must be released (set high) directly after sending the chip
erase command (0x60 or 0xC7) (see Winbond W25Q128JV datasheet for
details). Instead the bootrom sends the address after the command,
thus the SPI flash silently ignores the command. Instead, we must
erase each 64KB block one at a time, but thankfull the bootrom
handles this correctly for us.
2022-06-11 11:54:34 -04:00
James Turton b1694dfab9 rp: Always use maximum flash size (16MB) when defining flash region
There are some cases when the this old method for finding the flash
size will fail, such as if the flash chip has been erased with 0xFF
bytes (rather than blank 0x00 bytes). As this is unreliable,
setting the wrong flash size could cause problems when trying to
inspect memory regions which appear to be out of range.
2022-06-11 11:54:34 -04:00
James Turton 203c5149e7 rp: Add CORTEXM_TOPT_INHIBIT_SRST to target_options 2022-06-11 11:54:34 -04:00
James Turton 4ec68023af cortex-a: Fix compiling for native probe 2022-06-09 04:13:12 -04:00
dragonmux 483e51dce1 hosted/bmp_libusb: Further cleanup to the main bmp_ident string 2022-06-04 18:49:02 -07:00