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