Commit Graph

521 Commits

Author SHA1 Message Date
Uwe Bonnes a7f6753153 STM32f0: F07 and F09 have 2kiByte blocksize. 2015-06-22 16:44:19 +02:00
Uwe Bonnes 09544bc710 src/stm32f1.c: More verbose FO detection message. 2015-06-22 16:44:08 +02:00
Gareth McMullin 4af5c03d75 lmi: Use registers for stub parameters. 2015-04-21 20:05:41 +12:00
Gareth McMullin ca17de6243 lpc11xx: Correctly detect LPC8xx devices. 2015-04-11 17:23:01 -07:00
Gareth McMullin 9009ed6581 cortexm: Add target option to inhibit assersion of SRST. 2015-04-11 16:08:59 -07:00
Gareth McMullin 24122aa318 lpc43xx: add chipid for LPC43S37. 2015-04-11 16:08:25 -07:00
Gareth McMullin 09b781f1c1 target: Remove old flash interface. 2015-04-11 16:05:41 -07:00
Gareth McMullin 3d8b34f180 lpc: split out common code and rewrite to use new interface. 2015-04-11 16:05:40 -07:00
Gareth McMullin cd5d569d38 lpc: Reduce differences between lpc11xx and lpc43xx code. 2015-04-11 16:05:40 -07:00
Gareth McMullin 54eb3a719f samd: use new flash interface. 2015-04-11 16:05:40 -07:00
Gareth McMullin d340053078 nrf51: use new flash interface. 2015-04-11 16:05:40 -07:00
Gareth McMullin 1541f1c7a8 kinetis: use new flash interface. 2015-04-11 16:05:40 -07:00
Gareth McMullin 9e09ae2e1e lmi: use new flash interface. 2015-04-11 16:05:40 -07:00
Gareth McMullin 622497f7e2 stm32f1: use new flash interface. 2015-04-11 16:05:40 -07:00
Gareth McMullin 7cd3432994 stm32f4: Add second bank for F42x/F43x. 2015-04-11 16:05:40 -07:00
Gareth McMullin 1efad1a03a stm32f4: use new flash interface. 2015-04-11 16:05:40 -07:00
Gareth McMullin fc2f266a13 sam3x: Update to use new buffered flash interface. 2015-04-11 16:05:40 -07:00
Gareth McMullin 21c209fd8f sam3x: simplify probe function. 2015-04-11 16:05:40 -07:00
Gareth McMullin 3ed4207e8a stm32l0: Update to use new buffered flash writes. Remove old stubs. 2015-04-11 16:05:40 -07:00
Gareth McMullin 45328ea124 Add buffering support for flash drivers.
Some devices can get a significant boost in performance by writing to
flash memories one page at a time.  Generic function to do this are
provided at the target layer and may be used by flash drivers.
2015-04-11 16:05:40 -07:00
Gareth McMullin 36f749fed9 Fix flash buffer alignment in target layer. 2015-04-03 21:21:30 -07:00
Gareth McMullin 7202db5860 Add new functions to wrap flash driver erase/write/done operations. 2015-04-03 21:20:01 -07:00
Gareth McMullin 691d21989a Add function to add simple flash driver to target.
Clean up ram/flash/memory map on target destruction.
2015-04-03 21:18:16 -07:00
Gareth McMullin 0fc635b3f8 Add functions for dynamically generating the XML memory map. 2015-04-03 21:18:16 -07:00
Gareth McMullin 482070c91b Merge branch 'v1.6-branch'
Conflicts:
	src/Makefile
	src/platforms/stlink/platform.h
	src/platforms/swlink/platform.h
2015-04-03 21:02:01 -07:00
Gareth McMullin 97824b7f02 Use git describe for version in generated header file. 2015-04-03 20:21:33 -07:00
Gareth McMullin 865beaba98 Suppress warning about longjmp clobbering local variable. 2015-04-02 21:06:18 -07:00
Florian Larysch bc89217e3f sam3x: add SAM3U support 2015-04-01 00:04:52 +02:00
Gareth McMullin 21d464293c gdb: don't access target fields directly. 2015-03-29 18:06:13 -07:00
Gareth McMullin c2cde32716 Improve cortexm_read/write_regs. Use more sensible return types. 2015-03-29 17:37:03 -07:00
Gareth McMullin 274b818517 Make cortexm_pc_write static. 2015-03-29 16:48:51 -07:00
Gareth McMullin 779dcf0f69 stm32l0: use cortexm_run_stub. 2015-03-29 16:47:55 -07:00
Gareth McMullin 012922ed00 nrf51: use cortexm_run_stub. 2015-03-29 16:31:38 -07:00
Gareth McMullin 810269dce1 nrf51: Use generated stub. 2015-03-29 16:28:18 -07:00
Gareth McMullin cac286d398 lmi: Use generated stub with cortexm_run_stub. 2015-03-29 16:20:57 -07:00
Gareth McMullin 2215e33bcf lmi: Clean up magic numbers, remove adiv5 links, and doc ref. 2015-03-29 15:58:18 -07:00
Gareth McMullin 31fae032f7 cortexm: Separate stub loading from running. 2015-03-29 15:20:00 -07:00
Gareth McMullin 9f271d5cd7 Consistently use 'target *t' for target var. 2015-03-28 20:47:17 -07:00
Gareth McMullin 1e54139f4a target: Remove pc_read/pc_write methods. 2015-03-28 20:15:33 -07:00
Gareth McMullin 4313b64bbe Add a flash_done target method. 2015-03-26 20:47:57 -07:00
Gareth McMullin f74def3552 Remove old STM32L1 driver. 2015-03-26 20:47:57 -07:00
Gareth McMullin d9af3cca6c Remove unfinished ARM7TDMI driver. 2015-03-26 20:47:57 -07:00
Gareth McMullin 64c79e1d03 Consistently name target var 't' in cortexm. 2015-03-26 20:47:57 -07:00
Gareth McMullin bda4279028 Send error reply and abandon target list on unhandled timeout. 2015-03-26 20:42:47 -07:00
Gareth McMullin 68f54a3545 Remove old platform specific error handling macros. 2015-03-22 14:06:56 -07:00
Gareth McMullin 5ab8564ff6 Clean up handling of lost targets using new exceptions mechanism. 2015-03-22 14:05:12 -07:00
Gareth McMullin 588bad34ba Build with -Os for swlink. 2015-03-22 12:26:45 -07:00
Gareth McMullin 9a8dbdeff7 Fix errors when building for non-native platforms. 2015-03-22 12:26:45 -07:00
Gareth McMullin 83b83ca48f Use controlled timeout on SW/JTAG DP transactions. 2015-03-22 12:26:45 -07:00
Gareth McMullin d0a03f55a6 Handle timeout exceptions during scans and report to the user. 2015-03-22 12:26:45 -07:00
Gareth McMullin d6225eec76 Raise timeout exception when target is in WFI.
Ignore the exception when polling for halt, and report the exception
to the user if halting the target fails.
Remove old allow_timeout flag in DP struct that's no longer needed.
2015-03-22 12:26:45 -07:00
Gareth McMullin fa046601a5 Add exception handling mechanism and raise exception on low-level comms failure. 2015-03-22 12:26:45 -07:00
Gareth McMullin a497127a8d Move MIN macro to general.h 2015-03-22 12:23:03 -07:00
Gareth McMullin acfd258aa7 Rewrite STM32F4 stub in C and use new interface. 2015-03-19 21:49:09 -07:00
Gareth McMullin 8ddb186b35 Allow stub to return an error code. 2015-03-19 21:49:09 -07:00
Gareth McMullin 437aedda11 Rewrote stm32f1 stub in C and call with parameters in registers. 2015-03-19 07:48:57 -07:00
Gareth McMullin c2462a6788 Add cortexm generic stub call, and use in stm32f1 driver. 2015-03-19 07:48:47 -07:00
Gareth McMullin e380ced517 Change STM32F1 driver to use generated stub. 2015-03-19 07:43:36 -07:00
Gareth McMullin 1de685198c Flatten samd_probe. 2015-03-17 21:58:36 -07:00
Gareth McMullin 5c337c9aa7 Whitespace. 2015-03-17 21:58:36 -07:00
Richard Meadows 1366c32f89 samd: Simplified samd_flash_write further by always using manual writes.
Tested on all three devices as listed at the top of samd.c
2015-03-17 21:58:36 -07:00
Gareth McMullin 0bf7778759 samd: Remove low level ADIv5 calls an favour of target_mem_write. 2015-03-17 21:58:36 -07:00
Gareth McMullin 018d9cce80 Check vasprintf return value. 2015-03-17 21:19:02 -07:00
Gareth McMullin f5f87bf70f Build for stlink with -Os. 2015-03-15 20:39:19 -07:00
Gareth McMullin c3f798438a Remove abstraction of adiv5_dp_write. Both implementations were identical. 2015-03-15 17:12:31 -07:00
Gareth McMullin 2bf54f9a72 Replace adiv5_ap_mem* functions with inline wrappers to target mem*. 2015-03-15 16:02:09 -07:00
Gareth McMullin ee3af96a73 Consolidate target_mem_read* and target_mem_write* methods.
There are now only mem_read and mem_write, that must
handle all alignments.  These methods return void, errors must be
checked with target_check_error.
2015-03-15 14:31:57 -07:00
Gareth McMullin 2e785e56fa adiv5: Encode APnDP into register definition.
Clean up magic numbers in adiv5 calls.
Removed old adiv5_dp_write_ap and adiv5_dp_read_ap.
2015-03-14 18:03:04 -07:00
Gareth McMullin 6f5b1873d7 Use size_t for sizes in flash functions. Fix all sign compare warnings. 2015-03-14 15:18:22 -07:00
Gareth McMullin f5c856af3b Fix pointer sign warnings and remove -Wno-pointer-sign. 2015-03-13 20:35:39 -07:00
Gareth McMullin f52a51403f stm32l0: cleanup includes. 2015-03-11 20:47:51 -07:00
Gareth McMullin 1196b03d66 stm32l0: Fix pointer/integer casting warnings. 2015-03-11 20:47:51 -07:00
Gareth McMullin 3d28c1418c Cleaned up printf/scanf for C99 integer types. 2015-03-11 20:47:42 -07:00
Gareth McMullin 4baa8aba4f cdcacm: Fix DCD for second ACM interface. 2015-03-11 20:13:38 -07:00
Gareth McMullin 7c1c19881f Reassert DCD after DTR is written. Fixes #41. 2015-03-11 05:45:43 -07:00
Marc Singer bf1cb71eb7 Revisions on Gareth's comments.
o Implemented byte writes to EEPROM now that the emulator has a
  byte-wide target write.
o Added comment describing the reason that mass erase doesn't work.
o Removed all unused code.
o Changed to Linux kernel indent style.
o Changed to Linux kernel function to parenthesis style.
o Stub generation doesn't use Perl, switched to sed.  Also, only
  including the instructions instead of the source and the instructions.
o Handling unaligned destination writes.
2015-03-08 16:25:22 -07:00
Marc Singer e0a8ce5a88 STM32L0x target support.
Target support for stm32l0's and stm32l1's including option bytes and
data EEPROM.  This module will superceed the previous stm32l1 driver.

o Program flash write and erase.
o Options modification and interpretive status.
o Stubs for program flash writes and erases.  Stubs are modestly
  faster than non-stub version.   The stm32l0 will not execute stubs
  when the MCU has crashed.  A monitor option may be used to force
  non-stub flash writes.
o Stubs generated from C++ code and converted to arrays of half-words.
o Writes to data EEPROM supoprted when loading segments.
o EEPROM data monitor command to write words.
o Stubs supported on stm32l1.
2015-03-08 16:17:34 -07:00
Gareth McMullin 0d99e22a26 Quieten build system. 2015-03-07 11:03:50 -08:00
Gareth McMullin 1eac78b1c8 Move targets to make bin and hex files to toplevel makefile. 2015-03-07 11:03:50 -08:00
David Lawrence c8f469c868 SAM4S: Erase flash in 8K instead of 16K chunks. 2015-03-05 10:46:22 -05:00
Gareth McMullin 49390fee2a Fix Windows DFU instructions in the Hydrabus readme. 2015-03-04 20:22:19 -08:00
Benjamin Vernoux 9f0c29d329 Add support for HydraBus (tested with SWD with STM32F405 and SWD+JTAG with LPC4330 M0/M4) 2015-03-04 20:22:00 -08:00
Gareth McMullin c731c6ece3 Make F4 conditionals check STM32F4, not F4DISCOVERY. 2015-03-03 21:39:29 -08:00
Gareth McMullin 2e37db2270 Error on any failure on 'make all_platforms' 2015-03-02 23:14:43 -08:00
Gareth McMullin 87b8f330f0 Add a makefile target to build all platforms. 2015-03-02 22:20:25 -08:00
Gareth McMullin 3e466f2d23 Factor out timing routines common to all STM32 targets. 2015-03-02 21:59:04 -08:00
Gareth McMullin b07ffffcee Factor out common cdcacm.c from stm32 and tm4c.
Cleaned up interface to enter bootloader and read serial number.
2015-03-02 10:16:33 -08:00
Gareth McMullin 4d4813de87 Clean up includes everywhere.
All source files include general.h first and before anything else.
This inlcludes platform.h and platform_support.h
No header file needs to include to include any of these, but should include
any others needed for it's own declarations.
2015-03-01 22:16:04 -08:00
Gareth McMullin 9d80641261 Move common platform include to a common directory. 2015-03-01 20:15:31 -08:00
Gareth McMullin 476f83b69a Move common USB stuff out of platform header files. 2015-02-28 22:48:26 -08:00
Gareth McMullin 5eff0ab5d6 Factor out common GPIO code in STM32 platforms. 2015-02-28 22:09:50 -08:00
Gareth McMullin 48fb7ec662 Add missing includes to fix warnings. 2015-02-28 22:06:10 -08:00
Gareth McMullin 75001a4421 Factor Morse code functions out of platform code. 2015-02-28 22:05:10 -08:00
Gareth McMullin 5d136398e1 Use sensible return convention for platform_target_get_power() 2015-02-28 21:23:24 -08:00
Gareth McMullin 1b2cd547bc Merge pull request #72 from dlaw/master
Add support for SAM4 erase command
2015-01-26 10:59:32 +13:00
Gareth McMullin 1552218e8f Merge pull request #71 from maknoll/master
SAM3S support
2015-01-26 10:56:52 +13:00
David Lawrence b771d0dcd6 Add support for SAM4 erase command 2015-01-23 16:36:12 -05:00
Martin Knoll a7283196d1 SAM3S support 2015-01-22 16:09:01 +01:00
Richard Meadows ea78e2d737 Complete refactor of samd20 -> samd 2015-01-18 22:40:02 +00:00
Richard Meadows 565795e168 Added support for SAMD10/11/21, and list of tested SAM D devices
This allows blackmagic to be used with the new Arduino Zero board via
the unpopulated SWD header on the east end of the board.
2015-01-18 22:35:59 +00:00
Richard Meadows 3726061773 Support for the NVMCTRL Security Bit (PROT=1) 2015-01-18 20:46:26 +00:00
Richard Meadows e75ea64a01 Renamed nvmc control a register to match datasheet 2015-01-18 14:11:58 +00:00
Richard Meadows 1c1312b467 Added better feedback for samd erase failures 2015-01-18 13:22:41 +00:00
Gareth McMullin a3ab9b24d1 Avoid repetition of cortexm code in stmd20 driver. 2015-01-18 12:16:17 +13:00
Gareth McMullin f1981925b3 Merge branch 'samd20-revb-fix' of https://github.com/richardeoin/blackmagic into richardeoin-samd20-revb-fix 2015-01-18 11:03:10 +13:00
Richard Meadows cad30cfa39 Fixed run command on SAM D20 old revision B silicon.
This appears to be related to Atmel Errata Reference 12015 (see §
35.4.1 DSU in the datasheet) but only applies to revision B silicon -
not revision C. While this is an old silicion revision (latest is
revision E as of 17 Jan 2015) I found one on a development board.
2015-01-17 18:58:00 +00:00
Richard Meadows 9072faf6ca Fixed spaces / tabs from last commit 2015-01-17 18:35:36 +00:00
Richard Meadows c12002b636 Check target_attach succeeded in vRun command, and return error if not 2015-01-17 18:30:58 +00:00
Gareth McMullin abcc04d4f3 Merge pull request #63 from beewoolie/static-stubs
Fix to move stubs into rodata.
2015-01-17 13:18:20 +13:00
David Lawrence 985627af7e SAM4S support 2015-01-12 14:53:58 -05:00
Marc Singer da28970c3e Fix to move stubs into rodata.
o Stubs were declared as globals which means they will be initialized
  data.  No need for this.  Now, stubs are static const and are only
  present in the program image.
2015-01-09 18:18:10 -08:00
Gareth McMullin 9c5ffd61f7 First cut at Freescale Kinetis support. 2015-01-06 22:26:00 +13:00
Uwe Bonnes d162e75ceb stm32f4.c: Add STM32F411 ID. 2014-12-23 21:32:21 +13:00
Gareth McMullin fdd7799304 Merge pull request #60 from themadinventor/lp-icdi-clean
Added (preliminary) support for TI TM4C123 Launchpad
2014-12-23 21:31:43 +13:00
Fredrik Ahlberg 346258934b Added support for TI TM4C123 Launchpad 2014-11-23 22:59:16 +01:00
Vegard Storheil Eriksen 9434299613 Add support for halfword memory accesses. 2014-10-21 00:12:50 +02:00
Gareth McMullin fd9eef821e Revert USB double buffered OUT handling on STM32F1.
This introduced a bug where the endpoint can get stuck, forever sending NAK.
2014-10-16 13:50:56 -07:00
Gareth McMullin f85a8c4ebb Fix build for f4discovery by defining platform_hwversion(). 2014-10-16 13:50:56 -07:00
Gareth McMullin a5549d630c Whitespace cleanup. 2014-10-16 13:50:56 -07:00
Gareth McMullin 60626e5bbe Merge pull request #57 from aibara/dev/lpc43xx_wdt
LPC43XX: Attempt to handle case of running WDT.
2014-09-17 10:14:21 +12:00
Allen Ibara c5abc9a0bd LPC43XX: Attempt to handle case of running WDT.
If the WDT is running, it may reset while we are trying to flash.
Since we can't disable it, we set a long period and attempt to pet it
before each IAP call.
2014-09-16 14:54:24 -07:00
Gareth McMullin 9fda010b32 Give up unwinding a fault if reading the stack fails. 2014-09-12 12:24:43 +12:00
Richard Eoin Meadows 091389b982 SAMD20 prints die revision 2014-09-03 21:17:48 +12:00
Richard Eoin Meadows f4e20d0d04 Ooops - Semicolon from last commit :-) 2014-09-03 21:17:48 +12:00
Richard Eoin Meadows f4474557d0 SAM D20 MBIST shouldn't fail silently 2014-09-03 21:17:48 +12:00
Richard Eoin Meadows 39a0b064af Use external access DSU range 2014-09-03 21:17:48 +12:00
Richard Eoin Meadows 2a444ab1fb Fixed SAM D20 support with reset attached.
monitor connect_srst enable can be used to connect to targets that re-use the SWCLK pin
2014-09-03 21:17:48 +12:00
Richard Eoin Meadows e75798f201 Optimised flash write, programming speed is now approx. 2x faster 2014-09-03 21:17:48 +12:00
Richard Eoin Meadows 02812b6bf1 Added notes about the datasheet and NVMCTRL Security Bit 2014-09-03 21:17:41 +12:00
Richard Eoin Meadows 945a2802d5 Atmel SAMD20 support 2014-09-03 21:17:41 +12:00
Gareth McMullin 9d9ecb572e Assert SRST when scanning JTAG if configured. Closes #54. 2014-08-27 19:03:37 +12:00
Gareth McMullin 8a32b46f65 Fix build for non-native targets. 2014-08-08 20:22:33 +12:00
Gareth McMullin 84fc40085e Send a null packet on end of USB transfer if last data packet is full. 2014-08-06 12:38:57 +12:00
Hans Baier d265b76001 Add support for STM32F401RE 2014-08-06 10:49:48 +12:00
Gareth McMullin d7c30caa3e Style clean up. 2014-07-30 21:15:43 +12:00
Gareth McMullin f06bc0fd79 Minor fixes to stm32f1 flash routines. 2014-07-30 20:27:30 +12:00
Gareth McMullin fad6eb3c14 Fix parity support on USB UART interface. 2014-07-30 19:57:18 +12:00
Gareth McMullin 2b61bed291 Merge branch 'nrf51-uicr' of https://github.com/richardeoin/blackmagic into richardeoin-nrf51-uicr
Conflicts:
	src/nrf51.c
2014-07-30 16:55:02 +12:00
Gareth McMullin 4447fb428a Merge pull request #50 from richardeoin/nrf51-ficr
Added monitor commands for reading various nRF51 device parameters
2014-07-30 16:51:46 +12:00
Gareth McMullin 936b7460e0 Merge branch 'John-Titor-lpc11xx-flash' 2014-07-30 16:48:56 +12:00
Gareth McMullin 3daf5d7e11 Merge branch 'lpc11xx-flash' of https://github.com/John-Titor/blackmagic into John-Titor-lpc11xx-flash
Conflicts:
	src/lpc11xx.c
2014-07-30 16:45:55 +12:00
Gareth McMullin bfe5d1168b Merge pull request #47 from richardeoin/target-power
Added monitor option to toggle target power
2014-07-30 14:19:46 +12:00
Gareth McMullin 7e396b0205 Merge pull request #30 from BuFran/pulls/l152c
[SUP] Add support for stm32l152c-discovery board
2014-07-30 14:17:51 +12:00
Gareth McMullin 5d61575ce6 Merge remote-tracking branch 'origin/lpc8xx'
Conflicts:
	src/lpc11xx.c
2014-07-30 14:11:10 +12:00
Frantisek Burian 88a80e25d5 [SUP] Add support for stm32l152c-discovery board 2014-07-09 16:35:33 +02:00
Richard Eoin Meadows 7dc18768c4 Support erasing + flashing the User Information Configuration Registers (UICRs) 2014-06-11 13:43:59 +01:00
Richard Eoin Meadows 380f128d0a Added monitor commands for reading various nRF51 device parameters 2014-06-11 13:39:06 +01:00
none 3543e560af Fix lpc11xx magic number programming when chunks overlap
In the case where the vectors are in a separate section smaller than
the chunksize, the lpc11xx magic number calculation could generate an
incorrect value.
2014-06-10 21:23:17 -07:00
Richard Eoin Meadows c1b1d45155 TRST only exists on hardware version 0 2014-05-28 12:45:21 +01:00
Richard Eoin Meadows 42e41edfa1 Target power option is only for versions > 0 2014-05-28 12:33:43 +01:00