Commit Graph

1649 Commits

Author SHA1 Message Date
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