Commit Graph

1203 Commits

Author SHA1 Message Date
Uwe Bonnes 9e365a58f7 Cortex-M: Try harder to halt devices in WFI.
E.g. STM32F7 and L0 need multiple C_DEBUG and C_HALT commands to halt
the device.
2018-06-13 14:02:43 +02:00
Uwe Bonnes 44fc24e0e7 Allow to specificy if SRST is asserted and when it is released.
E.g. for STM32L0 and F7, IDCODE register can not be read while device is
under Reset.
2018-06-13 13:46:07 +02:00
Uwe Bonnes 66e357d517 Cortex-M: Probe Cortex-M even if ROM table read fails.
Rom table in some devices (e.g. STM32L0/F7) can not be read while
device is in WFI. The Cortex-M SWD signature is however available.
If we know by that signature, that we have a Cortex-M, force a
probe for Cortex-M devices.
2018-06-13 13:04:17 +02:00
newbrain ae6f0eadc9 Support for MSP432 TI MCUs (#353)
Introduces flashing and debugging support for Texas Instruments MSP432
series of MCUs
2018-06-07 08:34:21 +12:00
Piotr Esden-Tempski 077e455a94 Setting the driver string on scan.
This way swdp_scan and jtag_scan commands will show the chip that was
detected instead of the generic STM32F4 string. The generic name is
most confusing when attaching to an STM32F7 target.
2018-06-01 12:46:14 -07:00
Uwe Bonnes 2657aa6fbb libftdi: Allow more flexible Swd Read/Write Switching. 2018-05-30 19:21:03 +02:00
Uwe Bonnes df05d7ce7b libftdi: Allow device specific port/pin to read SWD bitbanged.
Gracefully abort swd scan if devices can not do SWD.
Best effort to indicated SWD capability on existing cables and
add descriptions for the cables.
2018-05-30 19:21:03 +02:00
Uwe Bonnes fce25b9fd5 libftdi/swdptap.c: Substantial speed increase for bitbanging SWD.
Provide the swd sequences unrolled.
2018-05-30 19:21:03 +02:00
Uwe Bonnes 992ccf91a9 libftdi/swdptap.c: Use MPSSE Mode for bitbanging SWD. 2018-05-30 19:21:03 +02:00
Uwe Bonnes f3cacba219 libftdi: Flush buffer with detach. 2018-05-30 19:21:03 +02:00
Uwe Bonnes 2ec078cfcf libftdi/jtagtap.c: Allow NULL as one DI/DO argument jtagtap_tdi_tdo_seq.
Implement jtagtap_tdi_seq() by calling jtagtap_tdi_tdo_seq().
2018-05-30 19:21:03 +02:00
Uwe Bonnes de33473535 libftdi/jtagtap: Copy DI direct into the write buffer. 2018-05-30 19:21:03 +02:00
Uwe Bonnes aa938c6dae libftdi/jtagtap: Try harder to initialize Ftdi MPSSE jtag mode.
After "mon s" at least the second "mon j" now succeeds again.
2018-05-30 19:21:03 +02:00
Uwe Bonnes c548e307fe libftdi/jtagtap: Clean up code. 2018-05-30 19:21:03 +02:00
Uwe Bonnes 7d45bd4869 ibftdi/jtagtap: Remove magic numbers. 2018-05-30 19:21:03 +02:00
Uwe Bonnes 6f0a46d9c1 libftdi: Export active cable description. 2018-05-30 19:21:03 +02:00
Uwe Bonnes 68c7180376 libftdi: Add ftdiswd variant. 2018-05-30 19:21:03 +02:00
Uwe Bonnes f4bc6f9ddd libftdi/platform.c: Issue SEND_IMMEDIATE before reading. 2018-05-30 19:21:03 +02:00
Uwe Bonnes 744deb678d libftdi/platform.c: Only set bit direction with MPSSE SET_BIT_XXXX. 2018-05-30 19:21:03 +02:00
Gareth McMullin 48d232807e
Merge pull request #337 from adamgreig/stm32f4-ram-size
Update maximum RAM sizes for F4 and F7 devices
2018-04-26 13:38:11 +12:00
Adam Greig e1cefb2031 Update maximum RAM sizes for F4 and F7 devices 2018-04-24 11:06:07 +01:00
Uwe Bonnes 93f3b14b68 stm32f1(f0): Do not read normal device registers during probe.
Device may not be halted and memory map setup may fail.
2018-04-23 11:06:08 +12:00
Uwe Bonnes a0596a0dcc stm32l4: Build Memory Map during attach.
Reading target registers while target not halted may fail and result in
invalid memory map.
2018-04-23 11:06:08 +12:00
Uwe Bonnes 5f404cdbc0 Construct memory map on the stack
The memory map uses 1k of SRAM and is only needed during attach. Release
after use lowers pressure on SRAM.
2018-04-23 10:51:04 +12:00
Uwe Bonnes 6127a6431e stlink: Check nRST line level when setting SRST.
Problem: On some boards flashing hanged.
Cause: Releasing SRST caused a slow rise of nRST and flashing
started while the target still was in reset.
Attention: platform_delay(ms) only resolved 0.1 s.
Nucleo-P boards have SRST unconnected to target nRST by default.
2018-04-23 10:48:05 +12:00
Gareth McMullin 63967346cd stm32f4: Don't duplicate resources on reattach. 2018-04-23 10:48:05 +12:00
Gareth McMullin 00decb3718 target: Separate function to free memory map. 2018-04-23 10:48:05 +12:00
Gareth McMullin 1fd2a24c2d stm32f4: Only construct memory map at attach. 2018-04-23 10:48:05 +12:00
Uwe Bonnes 72c1498ae1 stlink: Make SWO Trace Buffer smaller.
Changes for delayed memory map setup otherwise overflow SRAM silently.
2018-04-23 10:48:05 +12:00
Gareth McMullin 9d7925792f Merge branch 'master' into always_buffer_flash 2018-04-23 10:40:20 +12:00
Gareth McMullin 28bd4fc0ce
Merge pull request #305 from UweBonnes/swo_async
Use async SWO from the bluepill pull request.
2018-04-09 08:27:49 +12:00
Mike Walters fa62403ee3 nrf51: Add nRF51802 device id. (#331) 2018-04-03 10:45:56 +12:00
Uwe Bonnes fc25a3339a traceswoasync: Implement async swo for stm32.
Use for stlink.
Uses dma with large buffer.
Pull up swo to provide idle level on unconnected swo pin.
2018-03-27 13:40:49 +02:00
Uwe Bonnes 93bc3a155a traceswo: Provide command option for async swo. 2018-03-27 13:40:49 +02:00
Uwe Bonnes 3e3e450408 cdcacm.c: Use less buffer for the usb_uart buffers and reallocate.
With 128 bytes for both usb_uart buffers, traceswo gives errors!
Keep the size for the receive buffer and diminisch the transmit buffer,
as there is no flow control to the device.
Probably related to https://github.com/libopencm3/libopencm3/issues/477
2018-03-27 13:40:49 +02:00
Gareth McMullin cfaa5ea963 Merge branch 'korken89-master' 2018-03-27 13:01:06 +13:00
Gareth McMullin 76bfb4929d Use lowercase register names. 2018-03-27 13:00:39 +13:00
Gareth McMullin a3f855ce5c Merge branch 'master' of https://github.com/konsgn/blackmagic into konsgn-master 2018-03-27 08:03:03 +13:00
Christopher Woodall 31965a5bbc Added support for k64 (#301) 2018-03-25 14:43:33 -07:00
Akila Ravihansa Perera 471ce2547c Added LPC17xx support (#317) 2018-03-25 12:53:30 -07:00
Mark Rages a41d8cb97a Another nRF52 device id. (#315) 2018-03-25 12:37:51 -07:00
Emil Fresk 1ee6d4503e Update to split 'special' into its sane parts (update from @mubes) 2018-03-24 16:44:59 +01:00
Konsgn 04fbabb299 mkl27 support 2018-01-21 23:43:01 -05:00
konsgn 1fe870b8df added MKL27<128kB support 2018-01-16 13:23:36 -05:00
Adam Heinrich f5cac4c78d platforms/stm32: Ignore noise errors on USBUART 2018-01-13 21:11:17 +01:00
Uwe Bonnes 922f857de7 stm32f1.c: Add missing fall through statement needed by GCC7. 2017-12-18 13:56:59 +01:00
Uwe Bonnes 1f3c235205 src/target/stm32f1.c: Add CCM Ram of STM32F303 devices. 2017-12-08 13:39:24 +01:00
Gareth McMullin 048e8447a5 target: Only support buffered flash writes 2017-10-13 08:58:37 +13:00
Gareth McMullin c53a12bfd1 cortexm: Better cache support for Cortex-M7
- On probe, read CTR for cache presence and minimum line length
- Make D-Cache clean a function
- Clean before memory reads
- Clean and invalidate before memory writes
- Flush all I-Cache before resume
2017-10-12 09:26:01 +13:00
Nick Downing 0e5b3ab00e Make Cortex M driver write DCCIMVAC (Data cache clean and invalidate by address to the PoC=Point of Coherency) prior to reading or writing each 32 bytes of RAM 2017-10-12 08:41:58 +13:00
Gareth McMullin 9a5b31c37b Fix fallthrough warnings on gcc 7 2017-10-09 11:07:29 +13:00
Uwe Bonnes 120a2d9378 target: Fix calculation of erase size. 2017-10-05 22:11:01 +02:00
Uwe Bonnes a7815fff3d target.c: No need to split write while still in same flash block. 2017-10-04 21:52:29 +02:00
Uwe Bonnes 25610e5ec5 target: Fix unconsistant use of tmplen. 2017-10-04 21:52:29 +02:00
Gareth McMullin f27f3bad5c libftdi: Fix tdi_tdo_seq result unpacking 2017-10-05 08:26:33 +13:00
Gareth McMullin 2db42ba8e5 Merge pull request #287 from gsmcmullin/update_libopencm3
Update libopencm3
2017-10-04 10:58:44 +13:00
Uwe Bonnes 0aa47113f3 stm32f4: Fix F4 dual bank OPTCR1 to option byte mapping. 2017-10-02 16:22:14 +02:00
Uwe Bonnes c4d3712b39 stm32f4.c: Rework flash structure recognition.
Dual bank devices do not have sectors (8)12..15 !
Dual banks devices need to MER1 set for mass erase.
F72x has different FLASHSIZE_BASE
2017-10-02 16:22:14 +02:00
Gareth McMullin 0ed66547d5 Fix libopencm3 breakage 2017-09-25 11:17:03 +13:00
Uwe Bonnes 4966168802 s[t|w]link: Implement ENABLE_DEBUG. 2017-09-23 16:40:28 +02:00
Uwe Bonnes ce1ef6e41b stm32: Move rdi handling to common stm32 code. 2017-09-23 16:39:35 +02:00
Uwe Bonnes 203f6702d8 Flashsize_F103: Options for BMP on STM32F103C8 devices 2017-09-21 23:05:20 +02:00
Uwe Bonnes 963df9febc stlink: Use common initialization and detect V2.1 boards.
Factor out hardware revision detection, USB detach and power settings, as
all three program (bootloader, bmp and dfu-upgrade) need it.
2017-09-21 18:43:06 +02:00
Gareth McMullin 259f1b90df cortexa: Check for fault on set/clear soft breakpoint. 2017-09-20 11:16:36 +12:00
Gareth McMullin 1cb4271749 cortexa: Remove problematic code for AHB access.
The old code for 'fast' memory accesses using the AHB directly
has problems with data consitency.  Until this can be resolved, I'm
removing the affected code.
2017-09-19 09:13:22 +12:00
Gareth McMullin 2df0c7d6a7 Merge pull request #261 from cpavlina/tm4c
lm3s/tm4c: add TM4C1230C3PM
2017-09-06 15:34:42 +12:00
David R. Piegdon 46e363393f Add nRF52840 support (PCA10056, nrf52840 PDK) 2017-09-03 23:05:29 +00:00
Carl Sandström 37f9623de2 Added NRF51_FICR_CONFIGID for nRF51822 QFAA H2 2017-08-30 17:14:52 +02:00
Uwe Bonnes 37bb86267a STM32F0: Several STM32F0[3|7]0 have same ID as other STM32F0X0. 2017-08-28 22:58:59 +02:00
Chris Pavlina a0b0b8a716 lm3s/tm4c: add TM4C1230C3PM 2017-07-21 13:29:41 -06:00
Gareth McMullin 7663794fdf Merge pull request #247 from schodet/stm32f4-x8-x32
Allow programming STM32F4 when using a low voltage
2017-07-09 14:33:06 -07:00
Nicolas Schodet 3846ea4708 stm32f4: allow selection of flash programming parallelism 2017-07-09 23:26:49 +02:00
Gareth McMullin 09f49b469d Merge pull request #256 from nar0909/patch-1
New Device Id update - QFAA G1
2017-07-09 13:45:52 -07:00
nar0909 43ac4a04f7 New Device Id update - QFAA G1
New device Id - for NRF51822 QFAA G1 1529AM.
2017-07-04 12:32:39 +10:00
Daniel Egger f036be8cb2 Identify and support LPC1112/102 MCU as well
Signed-off-by: Daniel Egger <daniel@eggers-club.de>
2017-06-23 21:52:13 +02:00
Gareth McMullin 984f8b3d94 Merge pull request #248 from schodet/typo
stm32f4: fix typo in target name
2017-06-22 18:35:29 -07:00
Gareth McMullin 40ac8e1004 Merge pull request #241 from gsmcmullin/no_magic_vtor
Use vector_table symbol for assignment of SCB_VTOR.
2017-06-22 16:31:09 -07:00
Nicolas Schodet 02ce5e23b6 stm32f4: fix typo in target name 2017-06-19 10:56:20 +02:00
Nicolas Schodet 680aa30d52 stm32f4: add support for STM32F4[67]9 2017-06-19 10:41:38 +02:00
Gordon Smith 1ee1f441d5 stm32f4: write flash using byte access 2017-06-16 14:45:16 +02:00
Uwe Bonnes 408c5a9df2 stm32f4: Try to handle option bytes for more devices.
Correct the table for the OPTCRx values from errors in documentation and
error when entering the values.
2017-06-09 13:03:26 +02:00
Uwe Bonnes 8a7455f63e src/target/stm32f4.c: Add STM32F7[2|3]x. 2017-06-09 13:03:26 +02:00
Uwe Bonnes 84e036a804 target/stm32f4: Document FLASH_OPTCR(1|2) registers. 2017-06-09 13:03:26 +02:00
Uwe Bonnes 2216587b39 src/target/stm32f4.c: Remove missleading DTCM comment.
Use different command string for F74x and F76x.
2017-06-09 13:03:26 +02:00
Uwe Bonnes dc1c7611a9 src/target/stm32f4.c: All STM32F7 devs have option bytes at 0x1fff0000. 2017-06-09 13:03:26 +02:00
Uwe Bonnes e43017d0a6 src/target/stm32f4.c: Add STM32F412 and F413.
F413 needs its own clause, as there is memory > 1 MB but no second bank.
2017-06-09 13:03:26 +02:00
Uwe Bonnes 24ed65d6b6 src/target/stm32f4.c: Declare CCMRAM only for devices with CCMRAM. 2017-06-09 13:03:26 +02:00
Gareth McMullin 2eb2f8edd7 Use vector_table symbol for assignment of SCB_VTOR. 2017-06-09 13:07:06 +12:00
Uwe Bonnes a7771fa23f stlink/swlink: Remove missleading comments. 2017-06-08 18:25:43 +02:00
Gareth McMullin aaa7b0e38e Merge pull request #217 from UweBonnes/stm32l4
Stm32l4
2017-05-23 12:22:04 -07:00
Gareth McMullin fd467269eb Merge pull request #233 from gsmcmullin/parallel_make_fix
Fix parallel build.
2017-05-23 12:20:21 -07:00
Gareth McMullin 539d9e14ec Merge pull request #223 from gsmcmullin/nrf51_c_stub
nrf51: Replace stub with C version and pass params in registers
2017-05-23 12:00:08 -07:00
Gareth McMullin ecc0d9807d Fix parallel build.
Add explicit dependency of command.c on version.h
Remove version.h on make clean.
2017-05-23 11:57:35 -07:00
Uwe Bonnes 91839f3aee stm32l4.c: Handle options. 2017-05-11 23:31:43 +02:00
Uwe Bonnes 289be4d9db stm32l4.c: Add STM32L43/L44/L45/L46/L49/L4A. 2017-05-11 23:31:43 +02:00
Uwe Bonnes 8cc2c44dbf f4discovery: Use Magic constant in RAM for Bootloader entry. 2017-05-11 22:21:38 +02:00
Uwe Bonnes a0e47c392b f4_discovery: Clean up platform.h and Readme. 2017-05-11 21:53:01 +02:00
Uwe Bonnes 814eb0e3a2 f4discovery: Make DFU work (again?) 2017-05-11 21:52:24 +02:00
Uwe Bonnes f5dd3006fb STM32: Generate same serial number as internal DFU bootloader. 2017-05-11 21:52:24 +02:00
Uwe Bonnes b7235da97f dfucore.c: Announce no writable bootloader pages when device is read proteced
or bootloader is write protected.

Device read protection or write protection on first 4 bootloader pages
can only be removed by mass erase. Triggering mass erase with a program
running from flash is doomed for failure.
User can force bootloader update, at their own risk to brick the device.
2017-05-07 13:19:37 +02:00
Uwe Bonnes b09a522f37 STM32F103: Use flash size from device for DFU string.
Complements #204.
STLinkV2-1 has F103CB on board! F103C8 on older Stlinks can use upper flash
with hopefully acceptable error rate.
For F103C8 devices, user has to give the force option to dfu-utils.
2017-05-07 13:19:37 +02:00
Gareth McMullin 94c822cb62 nrf51: Replace stub with C version and pass params in registers 2017-05-03 13:10:01 -07:00
Gareth McMullin 6b592b4118 Merge pull request #218 from stoyan-shopov/breakpoint-removal-bugfix
fixed a bug in the breakpoint removal code
2017-05-03 12:11:50 -07:00
Uwe Bonnes 5af76a1b74 dfu_f1/dfu_upgrade: Do not set read protection.
As the first 4 pages of the bootloader will always keep write protection
once read protection is applied, with the second update of the bootloader
only the higher pages where updated effectivly.
In most cases this resulted in an inaccessible device!
2017-04-29 14:58:41 +02:00
stoyan shopov 01e3582525 fixed a bug in the breakpoint removal code 2017-04-28 13:22:59 +03:00
Gareth McMullin b10971b19b Merge pull request #206 from UweBonnes/dfu-upload
Dfu upload
2017-04-27 10:07:37 -07:00
Stefan Agner 3c06396c8e Constify strings and constant structs 2017-04-22 13:50:04 -07:00
Gareth McMullin 633662dbb3 Hold TMS high during reset.
This is a questionable fix for the Kinetis K22F that samples
this pin on release from reset to enable its EzPort which
makes the flash unusable and disables the rest of the micro.
2017-04-21 11:05:07 +12:00
Gareth McMullin 1140ff957e kinetis: Check/fix security byte on flash done. 2017-04-19 13:55:37 +12:00
Gareth McMullin 06bf37fe20 Merge pull request #208 from gsmcmullin/mem_packet_range_check
Add range checking on mem access packets.
2017-04-18 14:17:07 +12:00
Gareth McMullin 08c0cafa09 stm32f4: Translate ITCM addresses to AXIM on flash write. 2017-04-18 12:56:33 +12:00
Gareth McMullin bd2cfe72f0 Add range checking on mem access packets. 2017-04-18 11:41:11 +12:00
Gareth McMullin e5395aaba7 Merge pull request #91 from schodet/usb-vbus
Fix usage of USB_VBUS
2017-04-18 08:22:57 +12:00
Uwe Bonnes d796571438 Implement DFU_UPLOAD. 2017-04-15 14:26:03 +02:00
Uwe Bonnes 1d8ebcd75f Handle SET_ADDRESS according to DFUSE specs. 2017-04-14 15:16:59 +02:00
Gareth McMullin 1f31099d46 Merge pull request #202 from gsmcmullin/tiva_srst_inhibit
lmi: Inhibit SRST on Tiva and add some fault checks.
2017-04-13 09:13:55 +12:00
Gareth McMullin dacf907540 Merge pull request #204 from gsmcmullin/stlink-flash-size
Increase st-link flash allowance to 128K.
2017-04-13 09:08:55 +12:00
Gareth McMullin 394fd4894b Increase st-link flash allowance to 128K.
Although the devices are only documented to have 64K flash,
they have been obeserved to have a full 128K, although the undocumented
half may be untested and have problems.
2017-04-13 09:01:26 +12:00
Gareth McMullin 644add19a6 lmi: Add comment explaining SRST inhibit 2017-04-13 08:42:16 +12:00
Gareth McMullin 00183f1a9b lmi: Inhibit SRST on Tiva and add some fault checks. 2017-04-12 15:52:09 +12:00
Gareth McMullin e4de689a09 cortexm: Check halt reason on stub exit. 2017-04-12 11:37:42 +12:00
Gareth McMullin 8e2c2757b4 Merge pull request #195 from gsmcmullin/kinetis_work
Kinetis stuff
2017-03-28 13:58:00 +13:00
Gareth McMullin 3d2fa6d233 target: Add new targets to end of list.
This shows targets enumerated in their natural order,
rather than in reverse.
2017-03-27 14:59:54 +13:00
Gareth McMullin 0ed793fe24 kinetis: Clobber security byte with unsecure value.
May be overridden with `mon unsafe enable`.
2017-03-27 14:01:35 +13:00
Gareth McMullin 7de304d72a kinetis: Add recovery mode target. 2017-03-27 10:51:36 +13:00
Gareth McMullin bb93af50c3 adiv5: Debug log on failure to read ROM table. 2017-03-27 09:05:37 +13:00
Uwe Bonnes 21f71fd18a More STM32L4 devices
Hello,

appended patch adds more STM32L4xx devices and was tested with L432 Nucleo.

Cheers

--
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 1623569 ------- Fax. 06151 1623305 ---------
>From e9323a35b667659111226686221a037375a6c208 Mon Sep 17 00:00:00 2001
From: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Date: Thu, 2 Feb 2017 20:12:59 +0100
Subject: src/target/stm32l4.c: Add more devices.
2017-02-07 09:42:30 +13:00
Uwe Bonnes 41fb2a3104 More STM32L0 devices
Hello,

appended patch adds more STM32L0xx devices and was tested with L031 Nucleo.

Cheers
--
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 1623569 ------- Fax. 06151 1623305 ---------
>From fb014dd8a90691056f10fbeffd7f21aaad196662 Mon Sep 17 00:00:00 2001
From: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Date: Fri, 27 Jan 2017 23:09:10 +0100
Subject: src/target/stm32l0.c: Add new categories.
2017-02-07 09:42:30 +13:00
Gareth McMullin 62dedb9824 Add K22F 2017-02-07 09:36:47 +13:00
Gareth McMullin 7ba2987a83 native: Fix macros for setting pin mode.
Fixes #184
2017-01-24 10:49:45 +13:00
Gareth McMullin 8c256d9e59 kinetis: Add KL03 devices. 2017-01-17 15:28:47 +13:00
Gareth McMullin a77fb9ac1b Merge pull request #180 from paramaggarwal/patch-1
Actual pin mappings and the comment differ!
2017-01-09 14:39:06 +13:00
Gareth McMullin 334f6dac0a Merge pull request #182 from esden/bmpm21
Add BMPM V2.1 support
2017-01-09 14:38:33 +13:00
Gareth McMullin cd1bef89bb adiv5_dp_init: make ctrlstat volatile to supress warning. 2017-01-09 09:13:19 +13:00
Piotr Esden-Tempski 606b73601c Added TMS/SWDIO direction pin & adjusted SRST sense.
1) This version uses a direction control level shifters. We need to control
the direction of the TMS/SWDIO pin.
2.1) Because we want to support a large voltage range for SRST we use an
external dual MOSFET for asserting and sensing the SRST line. We have
added the hardware version 3 to be handled the same way as version 0.
Meaning using separate pins for assertion and sensing of the SRST line.
2.2) The new SRST sense circuit is inverting, thus we have dedicated
code for hardware version 3 that inverts the SRST status pin on read.
2017-01-06 18:31:55 -08:00
Param Aggarwal 51ac0fe319 Actual pin mappings and the comment differ!
I was stuck trying to debug the issue why my probe would not find any attached targets. This is because I was doing the pin mapping as per the comments, and not the actual code. There is a mismatch!

This PR updates the comment to reflect the values set in code. :)
2017-01-01 14:50:58 +05:30
Chuck McManis 085c980215 Remove EXTENDED_RESET define 2016-12-04 13:51:27 -08:00
Chuck McManis a3c2592e44 Review feedback 2016-12-04 13:15:45 -08:00
Chuck McManis 469ecbf0f9 SAM4L: Add target driver for SAM4L
This commit adds a target driver for SAM4L and it depends on the
extended reset change.
2016-12-02 00:10:06 -08:00
Chuck McManis 0aef6c6774 SAM4L: Add extended reset to target interface
This adds a new function to the internal target interface
to allow the target to get control before reset is complete
so that it can do any additional work. On this target there
is a proprietary internal bit that has to be reset in some
cases to allow the core to continue operating.
2016-12-02 00:08:21 -08:00
Gareth McMullin b745799156 Merge pull request #171 from gsmcmullin/v2_usb_uart_check
Don't enable usb uart on v2 when debugging
2016-11-22 13:20:24 +13:00
Gareth McMullin 7730d3b198 Don't enable usb uart on v2 when debugging 2016-11-22 12:45:59 +13:00
Gareth McMullin 15268ac663 EFM32HP (happy gecko) support 2016-11-16 08:23:40 +13:00
Angus Peart 4212d7a394 add STM32F303 targets 2016-11-03 13:44:13 -07:00
Gareth McMullin e279844532 Merge pull request #167 from gsmcmullin/stm32l4_buffered
STM32L4: Use buffered flash model.
2016-10-31 12:06:00 -07:00
Gareth McMullin bcf3caf20e cortexa: Disable AHB memory access to avoid issues with L2 cache. 2016-10-26 18:27:35 -07:00
Gareth McMullin 3b7edc325d Merge pull request #165 from gsmcmullin/gdb_tcp_buffering
libftdi: Disable Nagle algorithm and buffer sends internally.
2016-10-25 10:28:29 -07:00
Gareth McMullin f40883f2b2 cortexa: Wait for instruction complete on resume, and timeout if no response. 2016-10-25 10:22:21 -07:00
Gareth McMullin f947465fe4 libftdi: Disable Nagle algorithm and buffer sends internally.
This significantly improves performance by not waiting for TCP
timeout on transmission.
2016-10-25 10:07:04 -07:00
Gareth McMullin 917c107ded Use `git-describe --always --dirty` when generating `version.h` 2016-10-22 14:45:32 -07:00
Gareth McMullin 7c83536c14 Don't break build if no tags in history 2016-10-22 13:19:00 -07:00
Gareth McMullin 7b575bd7c6 Fix Travis deployment. 2016-10-22 13:07:42 -07:00
Gareth McMullin d48465c527 Merge pull request #163 from gsmcmullin/travis_publish
First attempt at publishing Travis builds to Amazon S3.
2016-10-22 12:06:46 -07:00
Gareth McMullin cbc21114c1 First attempt at publishing Travis builds to Amazon S3. 2016-10-22 11:55:15 -07:00
Piotr Esden-Tempski fdeb6471a8 Added missing #include guard. 2016-10-19 14:56:52 -07:00
Piotr Esden-Tempski 4348f0d135 Fixed double const.
The way the const pointer was written caused at least the clang compiler
to complain about double cosnst. I am not sure if the way it was written
before it resulted in the intended "make everything const" goal. But the
way it is written now it adheres to the right to left reading rule.
2016-10-19 14:37:03 -07:00
Piotr Esden-Tempski 2d37de773c Fixed #include guard. 2016-10-19 14:36:27 -07:00
Piotr Esden-Tempski 8a009ca6ae Corrected jtagtap_next signature.
The parameter is TDI (as in input) not TDO. The header signature and
comment are correct.
2016-10-19 13:53:04 -07:00
Roger Clark 3b74d91c69 Add support for nRF51822QFAAH1 2016-10-16 19:52:47 +11:00
Gareth McMullin 3abb4afdf6 Merge pull request #153 from gsmcmullin/restore_leds
Restore LED behaviour.
2016-10-05 10:37:36 -07:00
Gareth McMullin 2e9660910c STM32L4: Use buffered flash model. 2016-09-30 12:09:37 -07:00
Gareth McMullin 517881f551 Merge pull request #154 from gsmcmullin/cortexa_breakpoints
cortexa: Fix hardware breakpoints.
2016-09-29 21:39:04 -07:00
Gareth McMullin 9a8cef04e0 Clean up debug format strings. 2016-09-29 21:31:18 -07:00
Gareth McMullin 966f360515 debug: Use semihosting if available or output via usbuart. 2016-09-29 21:31:13 -07:00
Gareth McMullin ba8f77abf8 cortexa: Fix hardware breakpoints. 2016-09-28 22:18:24 -07:00
Gareth McMullin 40f960db4d Restore LED behaviour. 2016-09-28 22:15:15 -07:00
Gareth McMullin 45e322b9a3 Handle usart errors. 2016-08-22 09:57:52 +12:00
Gareth McMullin ca364a889e Fix #145
Don't tc_printf in the probe.
tc_printf fixed to not crash of no controller connected.
2016-08-22 09:56:24 +12:00
Gareth McMullin df7ad91692 Merge pull request #146 from joshgrob/nRF51/52_update
Adding new ConfigID value for nRF52832 QFAA B00
2016-08-10 07:33:28 +12:00
Gareth McMullin 779e0b5d15 Print sizes in memory map using 32-bit formatting for newlib-nano. 2016-08-08 13:42:03 +12:00
jgrob-an fd4b8a02c0 Adding new ConfigID value for nRF52832 QFAA B00 2016-08-03 23:27:34 -04:00
Gareth McMullin f131460168 Don't use zx format with printf. Doesn't work with newlib.
Fixes #144.
2016-07-19 10:45:46 +12:00
Gareth McMullin 9a45d89b4a target: Remove target_check_error from external interface. 2016-07-13 08:31:09 +12:00
Gareth McMullin 97f3fc6155 Reorder target.h 2016-07-13 08:31:09 +12:00
Gareth McMullin 9aacc18f60 target: Restructure internal break/watch handling.
cortexa: Implement soft breakpoints.
2016-07-13 08:31:09 +12:00
Gareth McMullin 9136cf4c98 target: target_halt_wait and target_check_hw_wp replaced with target_halt_poll.
The new function returns a stop reason which must be translated in gdb server.
In the case of a watchpoint hit, the address is returned by a pointer parameter.
Simplify the extenal interface for set/clear breaki-/watchpoints.
2016-07-13 08:31:09 +12:00
Gareth McMullin ab06243e93 target: Use size_t instead of unsigned in syscall interface. 2016-07-13 08:31:09 +12:00
Gareth McMullin 26fab877da target: Provide errno definitions and fallback for unimplemented syscalls. 2016-07-13 08:31:09 +12:00
Gareth McMullin 82cb6c8e83 target: Use target_addr for flash routines. 2016-07-13 08:31:09 +12:00
Gareth McMullin aeaca988c3 target: Use new target_addr type consistently in external interface.
Flash routines still use uint32_t internally.
2016-07-13 08:31:09 +12:00
Gareth McMullin f9bdaf06a4 Move flash stubs to target directory and update readme. 2016-07-13 08:31:09 +12:00
Gareth McMullin b494279fe5 Move target files into separate directory. 2016-07-13 08:31:09 +12:00
Gareth McMullin b644724520 Overhaul of semihosting. Remove dependence of target on gdb_packet. 2016-07-13 08:31:09 +12:00
Gareth McMullin b03cc59bea target: Add target controller structure for indirect calls back to host. 2016-07-13 08:31:09 +12:00
Gareth McMullin 5832d8a42a Clean up common SWD stuff. 2016-07-13 08:31:09 +12:00
Gareth McMullin 9b8e2c3ad1 target: Replace all calls to gdb_out with new tc_printf. 2016-07-13 08:31:09 +12:00
Gareth McMullin 5c5f76d60e target: Remove last accesses to private structure from outside.
Only include target_internal.h from inside target files.
2016-07-13 08:31:09 +12:00
Gareth McMullin 1cd03b3fa4 Allow breakpoint and watchpoint methods to be left NULL. 2016-07-13 08:31:09 +12:00
Gareth McMullin 07f27d1b70 Hide target list internals form command.c
Remove unused support for extended target structure size.
2016-07-13 08:31:09 +12:00
Gareth McMullin 72790893ae target: move mmio routines out of public interface.
Fix crc routine to use buffered reads on stm32.
2016-07-13 08:31:09 +12:00
Gareth McMullin e28e158721 Move *scan prototypes to target.h. 2016-07-13 08:31:09 +12:00
Gareth McMullin 4e04c1dded Split out non-public target stuff into new header.
Wrap target methods with functions instead of macros.
2016-07-13 08:31:09 +12:00
Gareth McMullin 67bd1530b7 Remove some unused includes. 2016-07-13 08:31:09 +12:00
Gareth McMullin 3c44cce935 Make generic jtagtap function weak and stop including the c file. 2016-07-13 08:31:09 +12:00
Gareth McMullin 0fc61efe7c Move STM32L[01] bit definitions to their driver and remove header. 2016-07-13 08:31:09 +12:00
Gareth McMullin 6b49fbe594 Quiet adiv5 probe. 2016-07-13 08:31:09 +12:00
Gareth McMullin 0480578391 stlink: New discovery boards support.
Patch from issue #103
2016-07-13 08:00:05 +12:00
Gareth McMullin fec09464ac Add STM32F302C8 ID.
From issue #100
2016-07-13 08:00:05 +12:00
Alexandre Bustico c906a8614f ° add support for ITCM flash memory (in addition of DTCM) for STM32F7 family
° add support for STM32F76x and STM32F77x
2016-07-11 14:58:40 +02:00
Gareth McMullin 419aae4940 lpc15xx cleanup 2016-07-06 10:34:51 +12:00
David Lawrence 4addec0a21 lpc15xx support 2016-07-05 16:53:47 -04:00
Gareth McMullin 2a5efbc1ac Merge pull request #140 from gsmcmullin/va_translation
cortexa: Virtual address translation and memory access through APB.
2016-06-30 18:23:31 +12:00
Gareth McMullin 4596d88f72 cortexa: Use fast mode for APB mem access and allow byte access. 2016-06-30 17:56:01 +12:00
Gareth McMullin d16aca9ae0 cortexa: Fall back to APB memory access if no AHB available. 2016-06-29 11:11:27 +12:00
Gareth McMullin ea9c2a2030 cortexa: Catch and report faults on address translation. 2016-06-29 11:11:27 +12:00
Gareth McMullin 9e2b0a86d7 cortexa: Perform VA translation on memory access. 2016-06-29 11:11:27 +12:00
Gareth McMullin 9c5ff37bf8 Add monitor command to force SRST 2016-06-28 14:35:43 +12:00
Gareth McMullin 60c67ee156 cortexa: Flush I-Cache on detach. 2016-06-28 14:35:43 +12:00
Gareth McMullin 6b3c3d3473 cortexa: Add timeout to reset spin. 2016-06-28 14:35:43 +12:00
Gareth McMullin 8b4342394f Overhaul of timeouts so they may be nested. 2016-06-28 14:35:43 +12:00
Gareth McMullin 53c7fbd543 Fixes for verbose debug output. 2016-06-23 15:03:00 +12:00
Piotr Esden-Tempski 7b2309943a Use Product ID and Componend ID tables instead of defines.
This patch adds tables that allow us to decode the Product ID and
Component ID registers. Based on those tables we can decide what probe
function to use. Also this makes it possible for us to understand what
ADIv5 components the target is offering to us, even if we do not
need/use them.

The tables include a comment describing how the register bits need to be
interpreted.
2016-06-22 18:34:04 -07:00
Piotr Esden-Tempski 20c994eece Added black magic verbose/debug mode switch. 2016-06-22 17:28:26 -07:00
Gareth McMullin 90c0c28327 cortexa: Redirect read of PC through r0. MCR is unpredictable for r15. 2016-06-23 12:00:04 +12:00
David Brandt 2639bdbe23 Add NXP LPC82x support 2016-06-21 10:33:34 +02:00
Piotr Esden-Tempski 9be5cdb702 BMPM V2 target power control GPIO needs to be an open drain drive.
BMPM V2 uses a biasing resistor for the true switch mosfet circuit.
Because of that the weak pull-up/down of the stm32 is not asserting the
correct gate voltage for the mosfets to fully switch through. Because of
that we need to use open drain configulation of the GPIO instead.
2016-06-06 15:01:37 -07:00
Gareth McMullin 55cea5f90a Merge pull request #132 from dlaw/kinetis
Add Kinetis KL27 support
2016-06-01 07:48:13 +12:00
Gareth McMullin 24d973e39f adiv5: Probe ARMv6M devices with Cortex-M driver. 2016-05-30 08:48:54 +12:00
David Lawrence 25a46a83f9 Add Kinetis KL27 support 2016-05-18 12:06:54 -04:00
Gareth McMullin bcf5b1eaa3 Merge pull request #126 from gsmcmullin/cortexa
Cortex-A support
2016-04-28 10:56:43 +12:00
Gareth McMullin 13602c5d85 cortexa: Also assert SRST to reset. 2016-04-20 12:55:12 -07:00
Gareth McMullin 08c9ab54d7 adiv5: Try abort sequence if DP is stalling during scan. 2016-04-20 12:55:12 -07:00
Gareth McMullin bed6627579 adiv5: Implement access to DP ABORT register. 2016-04-20 11:36:42 -07:00
Gareth McMullin 68bf825042 cortexa: Disable interrupts while single stepping. 2016-04-20 11:35:58 -07:00
Gareth McMullin 88bf92ac36 cortexa: Fix write back of PC and CPSR. 2016-04-20 11:35:25 -07:00
Gareth McMullin d94f7e0c75 Remove old arm7tdmi header. 2016-04-19 22:23:19 -07:00
Gareth McMullin 0ab878dcd2 cortexa: Add short delay after reset, before reattaching.
Allows the early bootloader to configure the DDR ram.
2016-04-19 13:29:22 -07:00
Gareth McMullin a2ec877b73 cortexa: Restore cache clean and invalidate on memory writes.
Include a small optimisation of APB access to speed up the process.
2016-04-19 13:24:05 -07:00
Gareth McMullin 49f89cfc95 cortexa: Fix detach.
Also pulls out internal register cache functions from halt/resume.
2016-04-19 13:24:05 -07:00
Gareth McMullin f6b574e0b0 Cortex-A target support. 2016-04-19 13:24:05 -07:00
Gareth McMullin 60f3be501e Pass breakpoint length to target. 2016-04-19 13:24:05 -07:00
Gareth McMullin 459bae4ea1 ADIv5 structural changes.
- Probe ROM table
- Mem-AP no longer pretends to be a target
- AP no longer provides priv pointer
2016-04-19 13:24:05 -07:00
Gareth McMullin 8d9d6f692c Fix platform_delay 2016-04-19 13:23:04 -07:00
Gareth McMullin cd1d72257f Cleanup of SRST handling.
- Remove connect_assert_srst global.
- Attach functions always release reset.
- Platforms provide a method to poll the reset pin.
- Reset on scan is all internal to command.c
- Reset is released on a failed scan.  Fixes #111
2016-04-19 13:12:16 -07:00
Gareth McMullin e010cd763d Merge pull request #125 from bvernoux/master
Cleanup and Fix code for HydraBus
2016-04-18 13:01:00 -07:00
Gareth McMullin 294d93cfe3 Fix build warnings. 2016-04-18 12:25:48 -07:00
bvernoux 2e3778e772 Cleanup and Fix code for HydraBus 2016-04-18 00:48:06 +02:00
Gareth McMullin 2685906fc8 Merge pull request #124 from gsmcmullin/windows_fixes
Fixes to allow building for Windows.
2016-04-16 14:49:22 -07:00
Gareth McMullin 799ccf99f5 Merge pull request #123 from gsmcmullin/digilent_cable
Add Digilent JTAG-HS3 FTDI cable.
2016-04-15 13:06:30 -07:00
Gareth McMullin 966b21c3e1 Merge pull request #121 from esden/bmpm2_support
Bmpm2 support
2016-04-15 13:01:34 -07:00
Gareth McMullin 9141418bd4 Merge pull request #80 from gsmcmullin/hydrabus
Add HydraBus support
2016-04-15 13:00:52 -07:00
Gareth McMullin 987a926a19 Fixes to allow building for Windows. 2016-04-15 12:58:36 -07:00
Gareth McMullin 4e8b40ad5d Add Digilent JTAG-HS3 FDTI cable. 2016-04-15 12:05:43 -07:00
Piotr Esden-Tempski 8e8a53ef12 Added support for Black Magic Probe Mini V2.0e.
All BMPM2 prototypes after revision a have their LED0 and LED2 inverted.
Because of that we have bumped the hardware revision to swap the LEDs in
software. This is easier than messing up the routing of the LEDs.
2016-04-06 19:23:17 -07:00
Piotr Esden-Tempski f2650df731 Fixed a hardware version detection glitch.
If you try to read out the GPIO immediately after setting the weak pull
on the pin it is possible that you will not read the correct value on a
floating pin. We need to use a busy wait loop instead of the
platform_delay because the platform timing is not initialized yet. We
also can not initialize the platform_delay code yet because it requires
LED gpio to be configured. A busy wait seems to do the job and is easier
than refactoring the codebase to use the platform_delay function.
2016-04-06 19:20:43 -07:00
Karoly Molnar 33414c3a9b added support for KL02 family 2016-03-15 17:31:24 +01:00
Gareth McMullin cc244eb2d8 Merge pull request #108 from lbonn/upstream-patches
Some various fixes
2016-03-09 10:27:34 +13:00
Gareth McMullin c0f92ea5a7 Merge pull request #116 from esden/flashier_dfu
[native] Make the native bootloader bit more flashy.
2016-03-09 10:26:56 +13:00
Gareth McMullin 4e23c95c53 Merge pull request #115 from esden/bmpm2
[native] Check for hardware version by pull-up and -down. Print HW Ve…
2016-03-09 10:26:43 +13:00
Michał Derkacz fbc344c1cd nrf51: Another undocumented version. 2016-02-25 17:43:14 +01:00
Piotr Esden-Tempski c0c8bade6f [native] Make the native bootloader bit more flashy.
This change has also a practical reason. When flashing and testing the
hardware this change makes it easier to make sure all the LEDs work. Now
when the DFU bootloader is idle it is scanning the LEDs making it easy
to see if one of them has an issue.

In addition to that, the bootloader now indicates when there is data
being flashed using the DFU interface. In cases when one has more than
one device connected and accidently starts flashing a wrong device this
is very useful feature to have.
2016-02-14 23:47:57 -08:00
Piotr Esden-Tempski b7e5005679 [native] Check for hardware version by pull-up and -down. Print HW Version in mon command.
Until now the native hardware was pulling PB5-7 down and checking if
they were asserted high. BMPMV2b is pulling the pins down instead of
high. The hardware version routine now determines the hardware version
based on the fact if a pin is asserted at all. This means that if a pin
is left floating, the version number bit will be 0, and if the pin is
asserted either high or low the bit will be set to 1. While we were
already at it the "monitor version" command in GDB will now also print
the hardware version number.
2016-02-14 22:49:29 -08:00
Mark Rages 9c846d5029 Add nRF52 support. 2016-02-10 20:23:43 -07:00
Gareth McMullin d5e263122f Increase JTAG_MAX_DEVS to 32.
Fixes #112
2016-02-02 10:04:57 +13:00
Mark Rages 7d957cbfdf Update nRF51 IDs, add nRF51422 and xxAB/xxAC devices.
There were a lot of nRF51 device ids missing. I wrote a script to pull nRF51 IDs from the openocd repository, which seems to be more up-to-date.  The script's output goes in nrf51.c.
2015-12-17 17:50:41 -07:00
Laurent Bonnans c9d3cf71dd gdb_main.c: fix buffer overflow on large reads
When gdb issues a `m xx,200` command, the probe should respond with a
packet of size 2*0x200=1024 which is the size of the packet buffer.

However, the `hexify()` procedures writes 1025 bytes in the buffer.

During my tests, it caused the probe to hang when issuing a `dump`
command. Presumably by overwritting the `cur_target` variable.
2015-12-14 11:28:28 +01:00
Laurent Bonnans 2d7b24c566 efm32: inhibit srst
EFM32s don't seem to like to be completely resetted while being debugged
(load and break were broken)
2015-12-14 11:28:28 +01:00
Clement Burin des Roziers 1f62fa4909 CRC32: improved computation time
Reading one byte at a time was so slow that it caused the gdb client to
timeout.
2015-12-14 11:28:28 +01:00
Gareth McMullin 61c6c767b0 Merge pull request #107 from richardeoin/efm32
[efm32] Use SW-DP IDCODE register for identification
2015-12-13 14:59:49 +13:00
Richard Meadows 544e1080a3 [efm32] Use SW-DP IDCODE register for identification
Instead of the Device ID register which isn't constant for EFM32 parts
2015-12-01 21:41:08 +00:00
Gareth McMullin e6d388d057 Merge pull request #106 from richardeoin/efm32
Support for Silicon Labs EFM32/EZR32
2015-11-17 07:59:35 -08:00
Richard Meadows fa7cccff23 [efm32] Formatting fixes 2015-11-14 14:56:03 +00:00
Richard Meadows b678b83062 [efm32] oops, fixed ezr32lg probe message 2015-11-14 14:42:09 +00:00
Richard Meadows fe3874bc82 [efm32] add extra details to probe message 2015-11-14 14:41:48 +00:00
Gareth McMullin 091adda0b4 Merge branch 'umetronics-master' 2015-11-11 12:41:57 -08:00
Gareth McMullin 600f0d27d9 Use sniprintf on newlib platforms. 2015-11-11 12:41:13 -08:00
Gareth McMullin 56b10a1255 Merge branch 'f205' of https://github.com/schodet/blackmagic into schodet-f205
Conflicts:
	src/stm32f4.c
2015-11-11 12:27:27 -08:00
Richard Meadows 07f7571dd1 Add basic support for EFM32/EZR32 chips
Tested with EZR32LG230
2015-10-23 19:58:44 +01:00
Antti Nykänen 3f9ea8250a Defined snprintf to sniprintf on launchpad-icdi 2015-10-22 19:33:45 +03:00
Antti Nykänen 2365bbe010 TI TM4C/LM4F cdc-acm fixes 2015-09-30 15:48:01 +03:00
Gareth McMullin 7e5a664df9 Merge pull request #98 from UweBonnes/stm32l4
Add STM32L4 handling. No option write handling yet.
2015-09-01 11:01:36 +12:00
Gareth McMullin 6ec35bc9ff Merge pull request #97 from UweBonnes/stm32f7
Stm32f7
2015-09-01 10:58:57 +12:00
Gareth McMullin 3aa333ee1c Merge pull request #95 from bvanheu/feature/nrf51_new_idcode
Add 0x0072 as a valid & supported idcode for NRF51
2015-09-01 10:30:55 +12:00
Uwe Bonnes f7492d93be Cortex-M: Detect and handle flash patch revision.
According to ARM v7-M Architecture Reference Manual
ARM DDI 0403E.b (ID120114)
2015-08-22 13:01:24 +02:00
Uwe Bonnes 51e2adc6d9 Add STM32F7. 2015-08-22 13:01:24 +02:00
Uwe Bonnes 2336a313e4 Add STM32L4 handling. No option write handling yet. 2015-08-22 12:59:56 +02:00
Nicolas Schodet 97cb75145d Add support for STM32F2xx family
The F405 rev A uses a wrong CPUID, this patch use the core identifier to make
the distinction.

Tested with:
 - F205
 - F405 rev Z
 - F429

Unfortunately, I do not have any F405 rev A.
2015-08-17 14:35:11 +02:00
Gareth McMullin ef574b72b1 Add support for STM32F446x family.
Tested with a custom hardware.
2015-07-31 09:05:27 -07:00
Benjamin Vanheuverzwijn 420d2c41c7 Add 0x0072 as a valid & supported idcode for NRF51 2015-07-31 00:00:00 -04:00
Richard Meadows beacf9c85c Refactor stm32f1_probe 2015-07-30 07:58:55 +01:00
Richard Meadows 101821ae31 [Bugfix] stm32f1_probe would always return true, breaking support for all other targets
The intention of `if (t->driver)` conditional was to test if any of the cases in the preceeding switch/case were met. However t->driver was previously set to point to a default value in cortexm.c:200 and therefore this would always evaluate to true. I've replaced the broken if statement with a duplicate of the switch/case run above.

It looks like this was introduced in 09544bc710 (PR #92) but 492d6c9cf8 maybe contributes to the confusion in this instance.
2015-07-12 17:32:48 +01:00
Nicolas Schodet b60f5283ae Fix usage of USB_VBUS
USB_VBUS is not an alternate function, it is an additionnal function which is
always enabled.

If configured as an alternate function, it will draw current from VBUS.
2015-06-23 11:51:56 +02:00
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
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
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
Uwe Bonnes 747cc58c2c STLINK: Unconditionally enable MCO from 8 MHz HSE to PA8 as on original firmware. F3 Discovery has has no quarz for the F3 and needs it. 2013-01-21 12:48:37 +01:00
Uwe Bonnes 8033fb2529 STLINK: Allow to force bootloader by starting with the RESET button pressed 2013-01-21 11:02:44 +01:00
Uwe Bonnes 749fb318e7 gdb_if: Use a doubled buffer scheme for reading data from USB
Needed, as the OTG driver erases the data read after eventually calling the callback
2013-01-21 11:02:44 +01:00
Uwe Bonnes 1fa961841d Product and DFU String now tell the hardware they run on 2013-01-21 11:02:44 +01:00
Uwe Bonnes 04624af4e5 f4discovery: Adapt from the "native" file and add or change code where needed
- stm32_mem.py has problems with erasing the big pages, but dfu-util works
- serial GDB remote server doesn't work. It neither works for the STM32F107,
  so maybe there is a problem with the usbd_f107_driver.
2013-01-21 11:02:44 +01:00
Uwe Bonnes e373619374 stlink: LED is connected to GPIO9. Before LED was associated with the MCO Output. 2013-01-21 11:02:44 +01:00
Uwe Bonnes 8b1ec3151f usbuart, jtagtap, swdptap: Factor out GPIO setup 2013-01-21 11:02:44 +01:00
Uwe Bonnes 7e91f68efa f4discovery: Create a platforms directory for the F4 on the F4 Discovery board 2013-01-21 11:02:44 +01:00
Uwe Bonnes 15d7077115 traceswo: Move (now-constant) traceswo.c to platforms/stm32 2013-01-21 11:02:44 +01:00
Uwe Bonnes 09715e1db8 traceswo: factor out platform dependant parts 2013-01-21 11:02:44 +01:00
Uwe Bonnes 72ca77af53 stm32_can: Changes to get blackmagic to work 2013-01-21 11:02:44 +01:00
Uwe Bonnes 313a24b316 usbdfu: Allow for different, but constant flash page sizes 2013-01-21 11:02:43 +01:00
Uwe Bonnes 1eb9bfc650 platforms/stm32: Move more platform dependencies to platform.h 2013-01-21 11:02:43 +01:00
Uwe Bonnes 30d8aa1eb7 Move (now-constant) cdcacm.c to platforms/stm32 2013-01-21 11:02:43 +01:00