Commit Graph

379 Commits

Author SHA1 Message Date
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
Richard Eoin Meadows c9089f5851 Added monitor option to toggle target power 2014-05-28 12:25:48 +01:00
Richard Eoin Meadows 63bce97cbd PLATFORM_FATAL_ERRORs are now caught even when they happen in the
initial JTAG scan that occours during platform_init.

Previously any fatal errors that occoured during this scan caused a
hardfault.
2014-05-28 12:10:26 +01:00
Gareth McMullin 72ae78a185 Updated libopencm3. Fixes broken bootloader, issue #43. 2014-05-08 11:02:35 -07:00
Mike 34d0f64529 Nordic nRF51 series support 2014-05-01 15:09:59 +01:00
Gareth McMullin 3077472620 Unwind hardfaults in dual-stack mode. 2014-03-31 20:58:06 +13:00
Jared Boone 096e1b32c6 Add support for LPC11U14 (tested) and related U-series microcontrollers (untested). 2014-03-08 19:07:50 +13:00
Gareth McMullin cbb85b6a45 LPC812 support 2014-03-08 18:58:39 +13:00
Frantisek Burian 12aeaad441 [locm3] Use the new clock-enabling mechanisms in locm3. 2014-02-13 18:21:16 +01:00
Frantisek Burian 690e99c6b2 Fix the STK_CTRL to the STK_CSR library change. 2014-02-13 17:52:09 +01:00
Richard Eoin Meadows e5624a7e6d Added support for the LPC1115FBD48/303 (ID determined experimentally) 2014-01-29 08:02:04 +08:00
bon@elektron.ikp.physik.tu-darmstadt.de d27c50c601 Add STM32F03X and STM32F07X handling. 2014-01-24 05:03:38 +08:00
bon@elektron.ikp.physik.tu-darmstadt.de 0c9d5d8166 Add dfu bootloader update application and use absolute delay for stlink
Hello,

appended 3 patches
- adds a dfu-bootloader appliaction
- uses absolute delays when waiting for pull-up delays on the STLINK
(hopefully fixes issue #30)

Updating the dfu-bootloader by additional application is helpfull for the
STLINK, as for flashing the bootloader by SWDb otherwise jumpers need to be
soldered or external SWD is not possible.
Use like:
- dfu-util -s 0x08002000:leave -D dfu_upgrade.bin
- dfu-util -s 0x08000000:leave -D blackmagic_dfu.bin
- Push reset buttom and reconnect to enter new dfu bootloader
- dfu-util -s 0x08002000:leave -D blackmagic.bin
--
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
>From fae5022c304a8866f056ea66660ac7ce3809dcf8 Mon Sep 17 00:00:00 2001
From: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Date: Sun, 20 Oct 2013 15:00:36 +0200
Subject: F1: Prepare to update dfu bootloader via DFU with additional
 application.
2014-01-24 04:59:09 +08:00
Gareth McMullin ac0fc8216a Merge pull request #35 from burgrp/upstream
Fix in checksum calculation condition
2014-01-23 10:52:09 -08:00
Gareth McMullin eb2f2afa9a Merge pull request #32 from aibara/lpc43xx_updates
Lpc43xx target support updates
2014-01-23 10:51:46 -08:00
Pavel Burgr ce17cc2e2b Fix in checksum calculation condition 2014-01-22 10:35:35 +01:00
Allen Ibara 01244fc84d LPC43XX: Force target to use internal clock.
Without this, flash write timing might be incorrect.
2014-01-10 13:24:25 -08:00
Allen Ibara 2b798fa8fc LPC43XX: Make the chunk_offset logic more explicit. 2014-01-10 13:24:25 -08:00
Allen Ibara 487252150f LPC: Cleanup regs_size (in bytes).
Also use sizeof() to make it clear why we multiple and divide by 4.
2014-01-10 13:24:25 -08:00
Allen Ibara df9c19f071 LPC43XX: Remove type cast for erase function 2014-01-10 13:24:25 -08:00
Allen Ibara 911af3b836 LPC43XX: Add reset command to do a system reset (but not the debug). 2014-01-10 13:24:25 -08:00
Allen Ibara 813622b1b6 LPC43XX: Add mkboot target command; dont make banks bootable by default.
This used to be done transparently in the write step, however that
breaks the 'verify' command. This is also more flexible for cases
where you want to write a flash bank without ever intending it to
be bootable.
2014-01-10 13:24:25 -08:00
Allen Ibara 29c7846612 LPC43XX: Make sure to align target struct to word alignment 2014-01-10 13:24:25 -08:00
Frantisek Burian 8014d434de Update to the newest libopencm3 2014-01-04 17:29:54 +01:00
Gareth McMullin 8835df1822 Merge remote-tracking branch 'origin/usbuart_highrate' 2013-12-04 16:16:08 +13:00
Gareth McMullin 42570efaf8 Revert "STM32F4: Add handling of second bank and dual boot devices."
This reverts commit 536482f804.
2013-10-22 07:48:06 +08:00
Uwe Bonnes 09fbe783c5 f4discovery: Limit clock to 48 MHz and stack 24 kiByte so that code can be compiled unchanged for F401Discovery too.
TODO: Bump clk up to 84 MHz as soon as libopencm3 supports that speed.
2013-10-22 07:26:35 +08:00
Uwe Bonnes 536482f804 STM32F4: Add handling of second bank and dual boot devices. 2013-10-22 07:21:35 +08:00
Uwe Bonnes cbd73cfb8f STM32F4: Recognize F401. 2013-10-22 07:21:35 +08:00
Uwe Bonnes 5aa802969b stlink: Give the NRST check more time as otherwise some L1 discovery board stayed in the bootloader. 2013-10-22 07:18:09 +08:00
Uwe Bonnes 086f3565f0 stm32f1: Fix handling of option byte write. Write needs to happend on erased option bytes. 2013-10-20 16:14:25 +02:00
Uwe Bonnes 15e529a43a stm32f1.c: On a read protected device, deny any other option action than erase.
Otherwise the first option action triggers an error, inhibiting further option
actions.
2013-10-20 16:14:19 +02:00
Michael Tharp c395c6f73a Configure SRST output as open-drain for BMP Mini hardware 2013-10-05 13:14:03 +08:00
Benno Leslie 3cce6f472c Add support for the SYS_WRITEC semihosting operation.
This is implemented in the same manner as QEMU semihosting
support, specifically, a SYS_WRITEC results in a single
character write to STDERR.
2013-10-05 13:14:03 +08:00
Richard Eoin Meadows b8f9a2ed4b Bugfix: Always apply the vector table magic number correctly.
Previously when the flash write length was less than the Chunk size the 2nd chunk write would re-calculate and apply an incorrect magic number
2013-10-05 13:14:03 +08:00
Marc Singer 40820a2354 Added internal pull-up to PWR_BR.
o Prevent probe from inadvertently powering target.  If PWR_BR is
  allowed to float, the gate on Q1 (blackmagic_mini) will tend to be
  close enough to zero to turn the transistor on.  We activate the
  internal pull-up on this IO pin to force the transistor off.
2013-10-05 13:14:03 +08:00
BuFran e67192348f FIX: usbd_init compatibility fix
Updated compatibility with libopencm3 commit 113e5c22e6390ba072148315e83a5faa5ff7ce86
2013-10-05 12:23:23 +08:00
BuFran c857165c12 FIX: FLASH_* collision with libopencm3 definitions
Resolve collision to FLASH_* from the libopencm3 by adding STM32F1_ prefix to the L1's
2013-10-05 12:23:23 +08:00
BuFran c28350f242 FIX: u{8,16,32} -> uint{8,16,32}_t to be compatible with new library
The use of u8, u16, u32 has been deprecated in libopencm3.
Update it with standard uint8_t, uint16_t, uint32_t types
2013-10-05 12:23:23 +08:00
BuFran f1584b266b [BUILD] Don't throw error on already cleaned output 2013-10-05 12:23:23 +08:00
Gareth McMullin 700833f38f Use do {...} while(0) for PLATFORM_FATAL_ERROR() macro. 2013-08-19 12:27:36 +12:00
Gareth McMullin a30ef31018 Handle SW-DP fault on WDATAERR. 2013-06-19 21:06:59 +12:00
Gareth McMullin d8f737fc53 Disable ADIv5 timeout while target is running. 2013-06-19 21:05:53 +12:00