Commit Graph

728 Commits

Author SHA1 Message Date
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 02b979d382 jtagtap: Added support for configurable TAP idle cycles ready for RISC-V support 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 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 d1fa50336e target/adiv5: clang format/tidy 2022-07-25 18:28:57 +01:00
dragonmux c530bd077b misc: Switched to using C11 2022-07-18 20:59:15 -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 85d24e8289 target: Implemented a command to allow erasing Flash ranges on any target 2022-07-18 17:12:13 -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
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 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
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
Jonathan Giles 780ee7a2a8 Fix build error and logic ... 2022-06-28 06:31:16 -04: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
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 aa9c80b37d misc: Formatting consistency 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 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 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
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 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
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
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
Dag Ågren f6edb54395 Fix RP2040 memory sizes. 2022-06-01 11:41:58 -04:00
dragonmux 2914be1a67
cortexa: Fix the new Watchpoint support causing a no-build 2022-05-31 22:03:21 -04:00
Gareth McMullin 0b7dd00c77 cortexa: Indicate watchpoint as stop reason if there is only one. 2022-05-31 21:58:51 -04:00
Gareth McMullin b5ef9e5bcf Implement watchpoints on Cortex-A 2022-05-31 21:58:51 -04:00
Rafael Silva 1aadcf2678 target/samx7x: handle tcm reconfiguration
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-05-31 21:48:54 -04:00
Rafael Silva dcc450a494 target/sam3x: rework gpnvm command
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-05-31 21:48:54 -04:00
Rafael Silva cf6ce32371 target: split mem_map_free into ram_map_free and flash_map_free
Signed-off-by: Rafael Silva <rafaelsilva@ajtec.pt>
2022-05-31 21:48:54 -04:00
Rafael Silva 8462f5e0d4 target/samx7x: handle tcm config on probe
Signed-off-by: Rafael Silva <rafaelsilva@ajtec.pt>
2022-05-31 21:48:54 -04:00
Rafael Silva 508b8d90cc target/sam3x: name changes to reflect multiple supported families
Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-05-31 21:48:54 -04:00
Rafael Silva 430d306511 target: add samx7x probe method
adds support for SAME70, SAMS70, SAMV71 and SAMV70

Signed-off-by: Rafael Silva <perigoso@riseup.net>
2022-05-31 21:48:54 -04:00
dragonmux 2d4d6aa65a ch32f1: Fixed the assumption that uint32_t is an `unsigned int` 2022-05-31 21:37:02 -04:00
dragonmux 94a0f1587d ch32f1: Cleaned up some of the formatting 2022-05-31 21:37:02 -04:00
Michal Moskal 6b465d6a77 Temporarily enable DBG clock in stm32g0_detach(); fixes #1003 2022-04-12 05:39:14 -04:00
mean e535f53981 remove static vars 2022-04-10 23:40:44 -04:00
mean 844ca65a8f cosmetic 2022-04-10 23:40:44 -04:00
mean 17dca6f791 tabify 2022-04-10 23:40:44 -04:00
mean 733cf12663 cleanup 2022-04-10 23:40:44 -04:00
mean 17d7dca9ae build ch32 in its own file 2022-04-10 23:40:44 -04:00
mean 7c120ecb58 put ch32f1 in its own file 2022-04-10 23:40:44 -04:00
mean 04eb33e039 rename to comply to naming scheme 2022-04-10 23:40:44 -04:00
mean e12939582c revert function clones_probe 2022-04-10 23:40:44 -04:00
mean 83e3d9c135 disable verification 2022-04-10 23:40:44 -04:00
mean a3feae60aa cleanup tabs 2022-04-10 23:40:44 -04:00
mean fb216a2a98 tabify 2022-04-10 23:40:44 -04:00
mean 9b23265dde add support for ch32 flash write, it is a bit hackish 2022-04-10 23:40:44 -04:00
mean 90d15e6633 add probe for ch32 + make room for other clones 2022-04-10 23:40:44 -04:00
dragonmux 804a1a4f43
stm32f4: Attach logic cleanup by making sure we only set the extra bits needed when writing DBGMCU_CR 2022-03-31 13:46:29 -04:00
Uwe Bonnes eed1cc81ff STM32F4: Move DBGMCU_handling to target specific code. Apply for F4 too. 2022-03-31 13:43:52 -04:00
dragonmux a0c77e216d adiv5_swdp: Changed the low-level access code to retry till timeout (partial revert of 61efe26)
Proper initialisation of the ack value also fixes a potential use-before-init UB
2022-03-29 15:33:23 -07:00
dragonmux d9ef3ff147 adiv5_swdp: Formatting consistency cleanup 2022-03-29 15:33:23 -07:00
dragonmux bba2bfdcf4 advi5: Raise the access timeouts as 20ms is too low in some cases 2022-03-29 15:33:23 -07:00
mean 8fb3b7b1a8 reuse exception to avoid using the stack 2022-03-22 10:10:33 -04:00
dragonmux 4fe8fd8944 samd: Fixed the hosted build as the code from #987 assumed unsigned long was 32-bit 2022-03-14 21:38:45 -07:00
dragonmux e271c16f6c Removal of MFR descriptions as requested in #978 2022-03-14 21:37:44 -07:00
dragonmux 3bb8c2bf19 jtag_scan: Cleaned up the ones array to use a more correct syntax 2022-03-14 21:37:44 -07:00
dragonmux 75e786da11 jtag_devs: Added a few more parts based on 0170aff and cleaned up the description wording for the existing ones 2022-03-14 21:37:44 -07:00
dragonmux 23534ab174 target: Cleanup in target_new() for the check_error callback 2022-03-14 21:37:44 -07:00
dragonmux 361dc9c234 Revert "adiv5_swdp_scan: If SWD scan fails, try a JTAG scan."
This reverts commit 3df692ecb2.
2022-03-14 21:37:44 -07:00
dragonmux d1c9d94174 jtag_scan: Remove the now redundant IDCode parameter from the handlers 2022-03-14 21:37:44 -07:00
dragonmux 27c143a3a3 jtag_scan: Properly fixed the wrong IDCode getting to the handlers 2022-03-14 21:37:44 -07:00
dragonmux 7d2afcff06 Revert "jtag: Make jtag_devs argument to jtag_handler."
This reverts commit 6308506276.
2022-03-14 21:37:44 -07:00
dragonmux 024152b03e Revert "jtag_scan: Deliver full idcode to the handler."
This reverts commit 1845d71f00.
2022-03-14 21:37:44 -07:00
dragonmux 02d9a1d3cf Revert "jtag_scan: Rework chain detection"
This reverts commit 2d4a503135.
2022-03-14 21:37:44 -07:00
arpadbuermen 4045406ed8 Added support for fine-grained bootloader and flash locking in samd.c
lock_flash and lock_bootprot currently support only locking the whole flash and locking the maximal leading flash chunk (32k). 
An optional numerical parameter is added. It can be specified in decimal or 0x prefixed hexadecimal. 
For samd21 'lock_bootprot 0' locks the first 32k of flash while 'lock_bootprot 6' locks the first 512 bytes. 'lock_bootprot 0' is equivalent to 'unlock_bootprot'.  
Similarly, 'lock_flash <number>' locks the flash segments corresponding to zeros in the binary representation of the given number. 
'lock_flash 0xffff' is equivalent to 'unlock_flash'. 
If the optional parameter is not given both commands work as previously.
2022-03-14 00:26:31 -07:00
Uwe Bonnes c1a12edbe9 kinetis: Clarify arguments to kl_gen_command
gcc11 chokes on the old setup
2022-03-13 19:48:38 -07:00
Uwe Bonnes d594b42976 Cortexm: With connect under reset, keep the device halted until attach. 2022-01-22 14:07:42 +01:00
Frank Kunz 8def28dee9 Add option bit support for STM32WLxx
Support for read/write/erase option bits.

Signed-off-by: Frank Kunz <mailinglists@kunz-im-inter.net>
2022-01-02 12:29:03 +01:00
Sean Cross c832cb04e7 samd: add support for SAMD09
The SAMD09 CPU is used in boards such as the Adafruit Seesaw. It has a
smaller amount of memory and flash than other SAMD ports.

This was tested with an Adafruit Seesaw. These boards come with preloaded
firmware. As a test, the firmware was dumped and flash was erased. Then,
flash was verified to be all zeroes. Finally, the firmware was loaded
back in:

	(gdb) p/x *(unsigned int *)0@32
	$8 = {0x20000f88, 0x1db, 0x1d1, 0x1d9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d9, 0x0, 0x0, 0xf5, 0x1081, 0x1d9, 0x1d9, 0x1d9, 0x1d9, 0x1d9, 0x1d9, 0x1d9, 0x0, 0x1d9, 0x1d9, 0x25e9, 0x0,
	  0x0, 0x1d9, 0x1d9, 0x1d9}
	(gdb) dump ihex memory flash.ihex 0 8192
	(gdb) mon erase_mass
	Erase successful!
	(gdb) p/x *(unsigned int *)0@32
	$9 = {0xffffffff <repeats 32 times>}
	(gdb) load flash.ihex
	Loading section .sec1, size 0x2000 lma 0x0
	Start address 0x00000000, load size 8192
	Transfer rate: 5 KB/sec, 910 bytes/write.
	(gdb) p/x *(unsigned int *)0@32
	$10 = {0x20000f88, 0x1db, 0x1d1, 0x1d9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d9, 0x0, 0x0, 0xf5, 0x1081, 0x1d9, 0x1d9, 0x1d9, 0x1d9, 0x1d9, 0x1d9, 0x1d9, 0x0, 0x1d9, 0x1d9, 0x25e9, 0x0,
	  0x0, 0x1d9, 0x1d9, 0x1d9}
	(gdb)

Signed-off-by: Sean Cross <sean@xobs.io>
2021-12-29 15:25:51 +01:00
Sean Cross d00607f71a samd: parameterize memory and flash sizes
Various SAMD devices have different amounts of memory. Up until now, all
SAMD devices have had the same amount, and therefore this value was
hardcoded to 32k of RAM and 256k of flash.

Add a parameter to the description field and set it to default to the
previous values. Use this description field when adding memories to the
target definition.

Signed-off-by: Sean Cross <sean@xobs.io>
2021-12-29 15:25:51 +01:00
Koen De Vleeschauwer d4cd81fa36 start_time undeclared if ENABLE_DEBUG=1 2021-11-21 12:57:30 +01:00
Uwe Bonnes 73b4612ec7 adiv5_swdp: Initialize a volatile variable
GCC did not warn about possibly missing initialization and so for gdb target
was not recognized.
2021-11-20 22:38:35 +01:00
Uwe Bonnes 5cb501049a adiv5_swdp/scan: Handle parity errors, seen with NRF52 with SYSTEMOFF #381/#949 2021-11-18 22:59:17 +01:00
fabalthazar 92d6056711 STM32G0 OTP area programming 2021-11-15 21:19:08 +01:00
Koen De Vleeschauwer 73624826b6 semihosting exit code 2021-11-14 12:03:33 +01:00
Uwe Bonnes 181466549b adiv5: Progressive incrementing TRNCNT for the DHCSR write when trying to halt
Workaround for CMSIS-DAP/Bulk debugger orbtrace  that returns NO_ACK
with high values of TRNCNT. Perhaps only STM32F767 needs write to DHCSR
with high occupancy to catch the device in a moment not sleeping.
2021-10-31 12:55:41 +01:00
Uwe Bonnes 88e44d1c12 cmsis: use exception in wait_word(). 2021-10-31 12:55:41 +01:00
Uwe Bonnes a1d4649795 SWD: Use dp_low_write to allow multidrop scan. 2021-10-31 12:55:41 +01:00
Uwe Bonnes 4f36c1ddf8 Remove dp_low_read() and use exception protected dp_read() 2021-10-31 12:55:41 +01:00
Uwe Bonnes d144f9d54b adiv5: CMSIS DAP transactions are slow but work in principle
Slowness results in strange STM32F767 DHCSR implementation to nearly never
halt in the given 2 second period when F767 is sleeping most of the time.
2021-10-31 12:55:41 +01:00
Uwe Bonnes 761e0230d4 cmsis-dap: Print messages when transfers fail.
Expect signal integrity errors when using jumper cables. Often probes switch
the SWJ GPIO with highest speed, resulting in possible reflections. Additional
ground wires may help. If there is isolation between probe and targets,
additional ground wires are a must or ground shift will wrack the transfer!
2021-10-31 12:55:41 +01:00
Uwe Bonnes c13778139f adiv5/hosted: Export the BMP_TYPE in DP. 2021-10-31 12:55:41 +01:00
Uwe Bonnes b7e7aa3f9a adiv5: Either use only LL functions in cortexm_initial_halt or no LL at all.
Platform implementation may disturb ADIV5_AP_DRW and so low_read DHCSR may
give values other from registers
2021-10-31 12:55:41 +01:00
Uwe Bonnes 8845a22226 stm32l4: Use targetid when available.
Fixes STM32U5 from crashing.
2021-10-31 11:13:34 +01:00
Uwe Bonnes 5dafc0828c SWD: Remove excessive line resets. 2021-10-31 11:12:46 +01:00
SG 7307f086c6
Support for STM32WB55 (#942)
* add STM32WB55 support
2021-10-30 13:01:06 +02:00
Uwe Bonnes e1a928beb1 Fixes to compile with gcc11 #925
Target code changes are pure for formal correctness and not tested!
2021-10-10 15:59:57 +02:00
Uwe Bonnes b076d5cea1 stm32f1: Check if unlock failed and propagate error. 2021-09-22 21:41:43 +02:00
Uwe Bonnes 554e34517e Better reporting when monitor command fails. 2021-09-22 21:41:43 +02:00
Uwe Bonnes 9e98cfa220 adiv5: Remove leftover debug output. 2021-09-22 21:41:43 +02:00
Uwe Bonnes 9ebc44bcea Make more functions static. 2021-09-22 15:16:20 +02:00
Uwe Bonnes 9de69bb3ab Adiv5/Initial halt: More fixes for dd28fa5743. #925
Stlink does not like low level access and aborts with STLINK_SWD_DP_ERROR.
Either our implementation still has faults or stlink can not handle

MINDP devices with BMP/Firmware also seemm not to like low level access,
either du to some hidden error in BMP or by design
2021-09-22 15:16:20 +02:00
Uwe Bonnes a9854e9b37 adiv5: Fix the MINDP case introduced with dd28fa5743 #925 2021-09-16 12:39:26 +02:00
dpc f66caa0d29 add some more nxp s32k14x variants
the sdid bits correspond to s32k14x as well as s32k11x but i only have
access to the k14x variants so didn't bother w/ the k11x variants.
the memory/flash sizes also can come from the sdid bits, but the
splits still need to come from a lookup.
2021-09-13 23:01:05 +02:00
dpc 95288bcf75 fix a size format warning 2021-09-13 23:01:05 +02:00
Uwe Bonnes dd28fa5743 adiv5: Tighten up loop to initial halt cortexm
Use TRNCNT when available.

Now the F767 with the NutOS 300 ms sleep example  with the one ms tick is
halted even in hosted after few ms.
2021-09-04 21:15:07 +02:00
Uwe Bonnes 863a41daac adiv5_swdp: Initialize initial_dp with the definition 2021-08-15 16:43:29 +02:00
Uwe Bonnes 6308506276 jtag: Make jtag_devs argument to jtag_handler. 2021-08-15 16:43:29 +02:00
Uwe Bonnes 6dff2a9f31 target: target_error_check now defaults to not indicate error.
Remove unneeded nop_function from efm32
2021-08-15 16:43:29 +02:00
Uwe Bonnes 3df692ecb2 adiv5_swdp_scan: If SWD scan fails, try a JTAG scan. 2021-08-15 16:43:29 +02:00
Uwe Bonnes 2d4a503135 jtag_scan: Rework chain detection
Fixme: stlinkv2/hosted probably does only handle STM devices. Check if
jtag_devs.c really needed.
2021-08-15 16:43:29 +02:00
Uwe Bonnes 1845d71f00 jtag_scan: Deliver full idcode to the handler. 2021-08-15 16:43:29 +02:00
Thiadmer Riemersma c7bc4b6a5d Bug fix in Flash erase function for LPC MCUs. 2021-08-13 16:18:53 +02:00
Thiadmer Riemersma 72bd825a60 Add support for NXP LPC11xx XL series, add 'readuid' command for some MCUs of the LPC11xx series where it was missing; add comments mapping Device IDs to part descriptions. 2021-07-31 16:08:34 +02:00
Uwe Bonnes 0c63903071 adiv5: Recover from bad AP access.
E.g. AP1 on a STM32WLE5 points to a ROM table, but access to the ROM table
via AP1 hangs forever.
- Substantial reduce timeout when wait for a response. Valid access should
  succeed fast.
- Abort AP access to free DP for other accesses
- Don't throw exception, only set dp->fault
- React on higher level
2021-07-15 15:06:54 +02:00
Björn Mellström 5ea01030e2 Add nRF51 command for (only) erasing the UICR registers
Original implementation by: Benjamin Vedder <benjamin@vedder.se>
2021-06-07 13:50:36 +02:00
Björn Mellström 4b8c4990dc Fix warning about unused variable in adiv5.c
This happens if the platform has debugging support but debugging
is not enabled.
2021-06-03 12:56:41 +02:00
Björn Mellström 711a87f7ba Fix some warnings when compiling with -Wshadow
There are still a few more places that would need to be corrected
before -Wshadow could be added by default.
2021-06-03 12:55:28 +02:00
Uwe Bonnes 891633322a lpc: Care for protected pages on LPC80x devices. 2021-06-01 16:23:19 +02:00
Uwe Bonnes f7b4697280 lpc11xx/lpc8c04: Do not expose two top system flash sectors. 2021-06-01 16:23:19 +02:00
Uwe Bonnes 42ebcac329 efm32_devices: Rearrange struct efm32_device_t to save flash space. 2021-06-01 16:23:19 +02:00
Uwe Bonnes 21a702dc1e lpc: More verbosity and more definitions 2021-06-01 16:23:19 +02:00
Uwe Bonnes 87acd99fe4 cortexm: For Cortex-M0+ devices, probe also for lpc11 to detect LPC80 #884 2021-05-18 12:24:00 +02:00
Uwe Bonnes 517d5b5b31 rp: Show spinner only when called from monitor command. 2021-05-16 11:26:14 +02:00
James Turton 0ab10fee0b rp: Increase timeout for flash_range_program
If the RP2040 is using the ring oscilator (ROSC) rather than the crystal
oscilator (XOSC) then flashing program will take much longer. As the XOSC is not
enabled at boot we should not assume it will be enabled before the debugger is
connected (or indeed at all), thus should use the longer timeout during load
commands.
2021-05-16 11:26:14 +02:00
James Turton ff30259354 rp: Add more debug logging during flash 2021-05-16 11:26:14 +02:00