Commit Graph

317 Commits

Author SHA1 Message Date
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
Paul Fertser d90e10cdba adiv5_swdp: avoid dead-loop with a sleeping target
A sleeping target continues to communicate over SWD properly but
consistently returns SWDP_ACK_WAIT.

It might be nice to be able to wait for the target to wake up on its
own but if it's not going to wake up, BMP becomes absolutely
unresponsive. Probably the timeout should be made configurable or some
other workaround invented.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2013-06-19 19:28:16 +12:00
Gareth McMullin 27a86e244f native: Enable hard SRST signal. 2013-06-19 19:21:49 +12:00
Gareth McMullin c05b7a1f63 Rename lpc11xx driver. 2013-06-17 16:06:03 +12:00
Gareth McMullin 3caaa28fa1 Fix warning about implicit cast. 2013-06-17 15:57:13 +12:00
Gareth McMullin 8c877d6dfa Fix trailing whitespace everywhere. 2013-06-17 15:53:32 +12:00
Gareth McMullin 2d63dd4b5b Fix register array sizes. 2013-06-17 15:52:15 +12:00
Paul Fertser df32aad757 semihosting: improve handling of console I/O
This implements special handling for SYS_OPEN to catch requests for
":tt" which is reserved by ARM for console input/output. They're
mapped to the appropriate GDB file descriptors automatically.

An additional file handle offset is introduced because ARM doesn't
consider zero handle to be valid.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2013-05-18 15:33:58 +12:00
Gareth McMullin 5020d1f05d Move semihosting support to cortexm.c.
Try to implement more syscalls.
2013-05-18 15:33:58 +12:00
Paul Fertser aca421d0bb Basic semihosting support
Implement bare minimum necessary to support console IO.

This works with standard newlib builds and is based on the reference
documentation:
http://infocenter.arm.com/help/topic/com.arm.doc.dui0471c/CHDJHHDI.html

Tested using gcc-arm-none-eabi-4_7-2013q1-20130313 for both
stm32f1-based BMP and stm32f0 target.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2013-05-18 15:33:58 +12:00
Gareth McMullin feaf626673 Add support for Atmel SAM3N devices. 2013-05-18 15:32:06 +12:00
Paul Fertser cdaed128c1 stlink: add support for SRST handling
This enables SRST signals in open drain mode for both stlinkv1 and
stlinkv2 hardware platforms.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2013-05-14 12:34:53 +12:00
Paul Fertser e0fc21a2a7 adiv5_swdp: allow to connect to a sleeping target by pulling SRST
This patch introduces a new command, "connect_srst [enable|disable]"
which allows to enable special mode in which SRST would be pulled low
before the SWD scan till attaching to a target.

Since on Cortex-Mx the SRST signal doesn't gate JTAG and SWD, it's
possible to connect to a target while holding reset, ask it to stop at
reset vector and only then deassert reset, thus allowing to attach to
the kind of firmware that goes immediately to sleep or disables
debugging by other means early on start.

Tested on an STM32VLDiscovery board with STM32F100 configured to go to
STOP mode and executing WFI in the very beginning of main().

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2013-05-14 12:32:44 +12:00
Allen Ibara 510d1c0dc8 Add support for burning flash on lpc4337. 2013-05-14 12:25:13 +12:00
Gareth McMullin 56f44c39d9 nxp: support the lpc1114dip28 by Rickta59 2013-04-27 20:57:20 -07:00
Gareth McMullin e3f3171a33 usbuart: Fix build error and clean up whitespace. 2013-04-27 13:14:22 -07:00
Allen Ibara 43f7e7a3cf Changes to the USBUART to make it less likely to drop characters at higher baud rates.
USB UART seems to work fine at 115.2Kbps or 230.4Kbps, but starts to drop characters
as the data rate goes higher. This commit changes the usbuart ISR to fill a software
FIFO, and adds a low priority timer interrupt to run deferred processing to drain a
FIFO and send USB CDCACM packets, rather than calling the usb send within the UART
ISR.

Tested on native platform, up to 1.5MBps.
2013-04-27 12:56:58 -07:00
Uwe Bonnes f1ea5ed8f9 F4Discovery: Slow Down GPIO access a little, as off-board SWD otherwise needs _very_ good ground connection. 2013-04-23 13:43:43 -07:00
Uwe Bonnes ad151fdca8 F4 Discovery: - Unconditionally use the System Bootloader - Use PC2/4/5/6 Pins for JTAG/SWD to avoid collision with eventual STLink Uart connection - Indicate Bootloader with blue LED 2013-04-23 12:14:18 -07:00
Gareth McMullin 6659d87e9b Remove DFU bootloader self protection.
It can still be enabled by building with -DDFU_SELF_PROTECT
2013-04-16 16:54:52 -07:00
Gareth McMullin 126df7bb35 Allow extra LDFLAGS on command line. Use nano.specs for swlink. 2013-04-16 16:47:38 -07:00
Gareth McMullin 45e02360b7 native: Fix up deprecated warnings. 2013-04-16 12:47:29 -07:00
Gareth McMullin 89b908337d Add missing #includes 2013-04-16 12:36:19 -07:00
Gareth McMullin 67a96410e3 libftdi: Clean up warnings. 2013-04-16 12:33:28 -07:00
Gareth McMullin da448ec1a6 libftdi: Add 'flossjtag' cable. 2013-04-16 12:14:37 -07:00
Uwe Bonnes 6b7babf624 stm32f4: Add option erase command
--
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
>From d488dffe4dab4e5188c750489006260745a9e25a Mon Sep 17 00:00:00 2001
From: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Date: Mon, 15 Apr 2013 15:26:58 +0200
Subject: stm32f4: Add option erase command
2013-04-15 10:22:17 -07:00
Paul Fertser 9c95f039cf Make code compatible with newlib-nano and use it for stlink
With gcc-arm-none-eabi-4_7-2013q1-20130313 and -O2 I get
   text    data     bss     dec     hex filename
  45744     304    2376   48424    bd28 blackmagic

With -Os the results are even more impressive:
   text    data     bss     dec     hex filename
  37900     304    2376   40580    9e84 blackmagic

Since -Os might lower the debugging speed, do not enable it yet in the
absence of real measurements.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2013-04-14 11:48:59 -07:00
Paul Fertser 91b481731d stm32f1/stm32f4: fix hardware CRC calculation
This was real-life tested on stm32f1 hardware including computation
for odd-sized ranges.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2013-04-14 11:35:23 -07:00
Gareth McMullin 7db6e3e00c Revert "Revert "STM32: Use hardware CRC unit""
This reverts commit 58abbf7fc7.
2013-04-14 11:28:46 -07:00
Gareth McMullin 58abbf7fc7 Revert "STM32: Use hardware CRC unit"
This reverts commit 32b909067b.

This CRC routine doesn't work.  The bit order used by the
STM32 CRC unit is reveresed from what GDB uses.
2013-04-04 21:37:51 -07:00
Gareth McMullin 61d464bf09 dfu: Fix warnings. 2013-04-04 20:16:13 -07:00
Gareth McMullin d4411fc51f Removed verison info from USB strings on native platform. 2013-03-31 12:18:11 -07:00
Gareth McMullin 3a70b81cce Add erase_mass command for stm32f4 devices. 2013-03-27 14:10:07 -07:00
Gareth McMullin d7a6f0165e Accept new chip ID for stm32f4 and include flash layout for 2MiB parts.
Thanks to Mike Smith.
2013-03-27 11:24:43 -07:00
Gareth McMullin 87dad080e1 Fix build for f4discovery host. 2013-03-17 10:17:05 +13:00
Gareth McMullin 931cd97f15 Removed stm32_can and usps_f407 platforms. 2013-03-15 20:50:55 +13:00
Uwe Bonnes 486c5de013 swlink: Add missing item to connector layout 2013-03-14 22:56:31 +01:00
Uwe Bonnes 920ced062e SWLINK: Add variant for the STM8S Discovery board 2013-03-12 12:24:10 +01:00
Gareth McMullin e880c553fb Restore trace timer interrupt handler. 2013-03-12 19:14:11 +13:00
Gareth McMullin 7c2e994381 Split out platform specific bootloader parts to separate files. 2013-03-12 19:04:10 +13:00
Gareth McMullin 55f161208d Further split-up of DFU bootloader. 2013-03-12 15:00:15 +13:00
Gareth McMullin 14e5e8b0b6 Separated clean and dirty bootloader sections. 2013-03-12 09:57:28 +13:00
Vegard Storheil Eriksen e8f9d52d2f gdb_if: Fix USB flow control.
The introduction of the double buffering broke USB flow control, causing
loss of data when a new packet arrived with the previous still present in
the double buffer.

With this patch the endpoint is kept in NAK until the double buffer is empty.
2013-03-06 20:36:49 +01:00
Gareth McMullin d5be7b7a50 Merge pull request #11 from aibara/master
Another small fix for adiv5, ap_mem_write_bytes double increment analogous to previous fix for ap_mem_read_bytes
2013-02-18 00:51:45 -08:00
Gareth McMullin 99ac73907f Merge pull request #9 from jeffstaley/master
Bug fixes for lpc11xx code
2013-02-18 00:50:50 -08:00
Uwe Bonnes ff8de39774 usbuart: Don't try to send until configured. Enumeration may hang else 2013-02-15 17:55:36 +01:00
Uwe Bonnes dee82a0d4f Document changes between ST-Link V1 and V2 and implement needed changes 2013-02-15 17:39:27 +01:00
Uwe Bonnes f8ea954275 STLINK: Add pointer to Discoveryboard modification instructions 2013-02-11 19:36:22 +01:00
Uwe Bonnes 327ee49a67 usps_f407: add another platform 2013-02-03 14:22:14 +01:00
Uwe Bonnes 31f39339fd stm32/usbdfu.c: Rearrange code to clarify the tasks to be done 2013-02-03 14:14:48 +01:00
Allen Ibara 4d6ae0a1b2 Avoid double increment of dst in adiv5 write bytes function. 2013-01-31 13:39:41 -08:00
Uwe Bonnes b1a942aca3 STM32F0/3: Handle the option bytes 2013-01-30 17:16:44 +01:00
Piotr Esden-Tempski 9819f9d5b3 Corrected the led pin for F3 and F4 discovery boards. Needs proper fixing so that it works on all platforms in the future. 2013-01-28 12:15:50 -08:00
mirage b50b3ffa86 Error in calculating ending sector number. 2013-01-26 11:38:27 +08:00
Uwe Bonnes 96ae3886ff stm32:cdcacm/usbdfu: Print version and build information in the product string 2013-01-25 13:01:57 +01:00
Uwe Bonnes 8415fc829b stm32/cdcacm.c: remove unneeded includes 2013-01-23 17:28:34 +01:00
Uwe Bonnes 32b909067b STM32: Use hardware CRC unit 2013-01-23 16:11:17 +01:00
Uwe Bonnes d868088d78 STM32L1: Add to the list of known JTAG IDs 2013-01-23 00:16:01 +01:00
Uwe Bonnes 6157754201 libftdi: List some know cables and allow to specify cable and serial 2013-01-23 00:16:01 +01:00
Uwe Bonnes ce059cc8ed LIBFTDI: Propagate the command line arguments to platform_init 2013-01-23 00:15:47 +01:00
Uwe Bonnes 73d120577b usbdfu: Write protect the bootloader sector on F4 2013-01-22 19:04:51 +01:00
Uwe Bonnes 09e2d00b8e STM32F4: Add option byte handling 2013-01-22 18:49:11 +01:00
Piotr Esden-Tempski 0a91fc3b30 Updated stlink platform to the new locm3 usb api. 2013-01-21 13:43:37 -08:00