Uwe Bonnes
f7b4697280
lpc11xx/lpc8c04: Do not expose two top system flash sectors.
2021-06-01 16:23:19 +02:00
Uwe Bonnes
42ebcac329
efm32_devices: Rearrange struct efm32_device_t to save flash space.
2021-06-01 16:23:19 +02:00
Uwe Bonnes
21a702dc1e
lpc: More verbosity and more definitions
2021-06-01 16:23:19 +02:00
Uwe Bonnes
87acd99fe4
cortexm: For Cortex-M0+ devices, probe also for lpc11 to detect LPC80 #884
2021-05-18 12:24:00 +02:00
Uwe Bonnes
517d5b5b31
rp: Show spinner only when called from monitor command.
2021-05-16 11:26:14 +02:00
James Turton
0ab10fee0b
rp: Increase timeout for flash_range_program
...
If the RP2040 is using the ring oscilator (ROSC) rather than the crystal
oscilator (XOSC) then flashing program will take much longer. As the XOSC is not
enabled at boot we should not assume it will be enabled before the debugger is
connected (or indeed at all), thus should use the longer timeout during load
commands.
2021-05-16 11:26:14 +02:00
James Turton
ff30259354
rp: Add more debug logging during flash
2021-05-16 11:26:14 +02:00
James Turton
e453740aca
rp: Increase spinner timeout to 500ms
...
Increasing spinner timeout to 500 means `tc_printf` is not called during
the `_flash_range_erase`. This is important as `_flash_range_erase` is
used when loading. This fixes the issue:
https://github.com/blacksphere/blackmagic/issues/875
Also adding spinner timeout counter to reduce bus traffic.
2021-05-16 11:26:14 +02:00
James Turton
67c9003522
rp: Flush cache after erase and write
...
The RP2040 datasheet suggests that _flash_flush_cache and _flash_enter_cmd_xip
should be called after erasing and writing to flash.
2021-05-16 11:26:14 +02:00
James Turton
f880734050
Fix compiling for native probe
2021-05-16 11:26:14 +02:00
Uwe Bonnes
e4421799ba
More header cleanup
2021-05-15 12:54:51 +02:00
Uwe Bonnes
f9414d5826
cmsis-dap: Handle ADI DP22 devices on probes not multidrop capable.
2021-04-26 18:18:18 +02:00
Uwe Bonnes
1f67bab475
nxpke04: Move unsafe_enables to target bool union.
2021-04-25 16:03:23 +02:00
Uwe Bonnes
f87dff8d83
kinetis: Remove static variables, add word union to target_s.
...
Add a word union to target structure to hold a single word variable.
2021-04-25 16:03:23 +02:00
Uwe Bonnes
ac7c1057cc
efm32/samd/samx5x: Remove static allocates strings. Allocate in priv_storage.
...
Static allocated variables in the different targets eat up common RAM and
will collide in chains with multiple similar targets.
2021-04-25 16:03:23 +02:00
Uwe Bonnes
cddf02f174
samx5: Verbose error reports on protected devices.
2021-04-25 16:03:23 +02:00
Uwe Bonnes
8c8aa980cf
adiv5: Detect unprotected SAMD5x only once
2021-04-25 16:02:20 +02:00
Uwe Bonnes
1b26ff560d
rp.c: Add reset_usb_boot as monitor command
2021-04-24 14:48:58 +02:00
Uwe Bonnes
52bffa70cf
rp: Handle flash.
...
- Beware, after reset, only a valid flash payload get mapped to XIP!
Only 0 is read from flash when flash image is not valid
2021-04-21 21:55:03 +02:00
Uwe Bonnes
2b0e255c40
cortexm: timeout and debug for run_stub()
2021-04-21 21:50:38 +02:00
Uwe Bonnes
61efe26348
swdp_scan: Break infinite loop after Dormant->SWD transition.
2021-04-21 21:50:38 +02:00
Uwe Bonnes
fa5e69e3be
RP 2040: Special handling for rescue DP
...
As the rescue DP provided no AP, trigger the reset with attach().
However attach will indicate failure also reset/halt has succeeded.
2021-04-21 21:50:38 +02:00
Uwe Bonnes
ea92c8b8c8
cmsis-dap: Allow to use adiv5_swdp_scan.
2021-04-21 21:50:38 +02:00
Uwe Bonnes
23f942ac8c
Raspberry RP2040: Recognize. No flash handling yet.
2021-04-21 21:50:35 +02:00
Uwe Bonnes
04d1c9805b
swd: Remove swd_proc and swdptap.h.
2021-04-21 21:50:04 +02:00
Uwe Bonnes
b6fbf86743
Extend ADIv5_DP_t for low level routines needed for multi-drop.
...
Will replace swd_proc
2021-04-21 21:50:04 +02:00
Uwe Bonnes
5abb288c7a
hosted: Provide the DP functions in swd_proc.
2021-04-21 21:50:04 +02:00
Uwe Bonnes
fa561c8d66
adiv5_swdp: Starting point to handle multi-drop
...
- RP2040 show both DPs
- Multidrop test with STM32L552 and STM32H745 allows selection
with "-m 0x4500041" (H7), "-m 1" (L552) or "-m 0x01002927" (RP2040)
2021-04-21 21:50:04 +02:00
Uwe Bonnes
be3bfc48a8
cortexm: M33 has up to 8 hardware breakpoints
2021-04-21 21:22:59 +02:00
Uwe Bonnes
b1ac4187b9
Fix some formatting strings for 32-bit compile
2021-04-21 21:22:59 +02:00
Fabio Baltieri
beaccf2714
target: stm32l4: add support for STM32WLxx
...
This adds support for the STM32WL series in stm32l4.c. These parts have
the same flash registers layout as the L4 series, but a different base.
Since there are already two sets of registers in this target file, this
adds support for register maps that can be customized for each device
ID.
2021-04-20 18:42:36 +02:00
Fabio Baltieri
f55ad67b1b
adiv5: catch timeout on adiv5_ap_read_id and abort
...
This adds a TRY_CATCH around the adiv5_ap_read_id() in
adiv5_component_probe() and resets the DP when that happens.
It seems like the STM32WLE5 comes with the AP of the inactive core
enabled in a way that does not make it detectable, and the current code
times out and leaves the whole device hanging.
Catching the timeout and calling adiv5_dp_abort() seems to restore the
device to a useable state.
Tested on Seed LoRa-E5 (STM32E5JC).
2021-04-19 16:57:13 +02:00
fabalthazar
d6b24c00c8
Fixed STM32G43x/G44x option bytes support
...
Previously took L4 values so FLASH_SEC1R was not applied
2021-04-17 14:44:30 +02:00
fabalthazar
99f9557cc0
Support for STM32G49x/G4Ax (category 4)
2021-04-17 14:44:30 +02:00
fabalthazar
c85c946ce3
PRIx32 fix
2021-04-17 14:44:30 +02:00
Uwe Bonnes
a6a8606edb
STM32L55: Detect, memory map, read and flash write. Options handling missing.
...
Only non-secure states considered!
2021-04-04 17:26:31 +02:00
fabalthazar
6d6cfd6c98
Comprehensive STM32G03/4/5/6/7/8/B/C driver
2021-03-29 21:42:40 +02:00
Uwe Bonnes
58f153e12b
cortexm: Always halt and release reset before romtable scan
...
Only release from halt once after romtable scan
Should fix #836 .
2021-03-26 17:43:11 +01:00
Uwe Bonnes
a025c9a7bd
Revert "stm32f1: On ST parts there is no need to read IDCODE again."
...
Romtable partno is not unique for devices, e.g. in STM32F0
This reverts commit f89b07d892
.
2021-03-26 17:35:00 +01:00
Uwe Bonnes
f89b07d892
stm32f1: On ST parts there is no need to read IDCODE again.
...
IDCODE is already known from the Romtable
Probably this has the same effect as #836
2021-03-12 20:45:34 +01:00
Uwe Bonnes
7859a2aabd
adiv5_swd: Factor out creation of packet request.
2021-03-06 13:30:09 +01:00
Uwe Bonnes
cfb784d428
adiv5: Fix comments and debug output
2021-03-05 16:49:19 +01:00
Thiadmer Riemersma
560a046a22
Add support for NXP LPC802, LPC804, LPC832 and LPC834
2021-02-22 19:37:46 +01:00
Uwe Bonnes
0df44e205b
ADIv5: Abort Romtable scan also if CIDR0 is invalid after halting #832
...
STM32WLE5 has the same dual core chip as STM32WL5. For the second
core, the additional AP can be see, but access to e.g. CIDR0 for that
Romtable fails.
Aborting the scan too if again the second read of CIDR0 fails makes
sense anyways!
2021-02-19 18:48:02 +01:00
Uwe Bonnes
c776e7a9a6
swd_scan: Add '-m' as targetid argument to swd_scan to prepare multi-drop.
...
In a real multi-drop setup, the device to use must be specified.
2021-02-15 17:47:29 +01:00
Uwe Bonnes
8e2f6937d5
hosted: Run target specific monitor commands with -M "command" .
...
Lists available commands: "blackmagic -M help"
Quote multi argument monitor commands, e.g. STM32F1: blackmagic -M "option help"
2021-02-15 17:47:29 +01:00
Uwe Bonnes
165560edd8
cl_utils: target selection '-n' argument needs optarg.
...
foreach now returns the number of targets.
2021-02-15 17:47:29 +01:00
Alex Norman
42f590ce0b
fixing some memory map errors for stm32h7, PR #821
2020-12-23 20:10:39 +01:00
Sean Cross
2b06f045c4
target: kinetis: add S32K148
...
This adds support for the NXP S32K148. This is an automotive-grade part
that is derived from the Kinetis line, so it has a very similar
interface to other parts in the family.
Signed-off-by: Sean Cross <sean@xobs.io>
2020-12-16 12:49:23 +01:00
Noah Pendleton
020600aa56
target/lpc546xx: fix lpc546xx flash support ( #801 )
...
**Summary**
Modifications to fix flash support on the lpc546xx:
- fix IAP entrypoint to be `0x03000204`, not the value at that address
- add a reset and attach sequence before erasing flash sectors. there's
little documentation around this, but experimentally, erasing sector 0
fails when the ROM bootloader is mapped to it (on reset). stepping the
chip once and attaching is enough to snap the chip out of it, permitting
flash erase on sector 0.
- add a few test commands to the lpc546xx table (read_uid, erase/write
sector, etc).
- write the magic CRC value when writing to sector 0
(`lpc_flash_write_magic_vect`).
- move the lpc546xx probe to before the lpc43xx probe, to prevent
getting the lpc546xx into Lockup when reading an illegal memory location
during lpc43xx probing
Fixes #786 .
I don't 100% understand the reset/load sequence of this part, but these
changes are sufficient to program and debug the part now.
I didn't do a detailed analysis of what pyocd (via st-link hardware
adapter) and segger jlink do to handle the same, but both of those
worked without modification, so there's some difference in the
sequence they're using.
**Testing**
Verified I can now successfully erase and write an executable in sector
0 (and other sectors).
Verified the new commands work correctly.
2020-12-12 19:48:05 +01:00
Aaron Lindsay
518529a772
Support GD32E23x
2020-12-12 18:29:30 +01:00
Uwe Bonnes
dd6aadc54d
jtag: Add verbosity about devices found.
2020-12-06 15:18:08 +01:00
Stoyan Shopov
e318f884bf
Change the type of 'cortexm_wait_timeout' to unsigned.
...
It makes sense that the timeout value is unsigned, it also
resolves build errors on some platforms.
2020-12-04 11:44:50 +01:00
mean
e3fd12ebc6
gd32f1/f3 detection and ram/flash autoset
2020-12-03 11:16:47 +01:00
Jonathan Giles
575c25e570
Add support for STM32F1 clone with new AP_DESIGNER id
2020-12-01 10:23:16 +01:00
Uwe Bonnes
48a79ff9da
adiv5: More checks for a sensible DPIDR.
2020-11-29 21:11:11 +01:00
Uwe Bonnes
752bc26536
adiv5: Fix memleak with duplicated base.
2020-11-29 21:11:11 +01:00
Uwe Bonnes
acec489647
adiv5_jtagdp: Always set idcode.
2020-11-29 21:11:11 +01:00
Uwe Bonnes
f45c56af83
adiv5/swdp: Check early for valid DP idcode.
2020-11-29 15:48:50 +01:00
Uwe Bonnes
7df314e265
Firmware/Jlink: Fix double free when debug power-up fails ( #780 )
2020-11-29 15:48:50 +01:00
Uwe Bonnes
bf548e92c0
swd: After write low_access, always append 8 clk to move data through SW-DP.
...
Especially needed when leaving the debugger or during debug unit power-up.
ARM Debug Interface Architecture Specification ADIv5.0 to ADIv5.2
tells to clock the data through SW-DP to either :
- immediate start a new transaction
- continue to drive idle cycles
- or clock at least 8 idle cycles
Implement last option to favour correctness over slight speed decrease
Implement only for adapters where we assemble the seq_out_parity in our code,
as on firmware, ftdi and jlink. Hopefully the high level adapters do it right.
Reverts 2c33cde63f
and
cde7726b87
2020-11-27 22:26:48 +01:00
Uwe Bonnes
3ee31473c6
cortexm.c: LPC15xx has designer 43b and Partno 4c3
...
Thanks to JojoS!
2020-11-27 22:26:48 +01:00
Uwe Bonnes
19e1fddba2
adiv5: Remove unnescessary read.
2020-11-27 22:26:48 +01:00
Uwe Bonnes
cda83d3084
Fix memleaks.
...
Happened e.g. when Stlink could not enter debug or when cortexm_prepare timed out.
2020-11-27 22:26:48 +01:00
Uwe Bonnes
9ac5adfcef
adiv5: Additional decoding.
2020-11-27 22:26:48 +01:00
Uwe Bonnes
d78d7838d3
stm32f1: Always read DBGMCU_IDCODE for t->idcode ( #770 )
...
At least STM32F042 has 0x440 as romtable partno vs 0x445 as DBGMCU_IDCODE.
Thanks to Andrey Melnikov(aam335) for pointing out!
2020-11-27 22:26:48 +01:00
Uwe Bonnes
653d486ee2
cortexm: Store CPUID in target structure.
2020-11-27 22:26:48 +01:00
Uwe Bonnes
80154c5c7a
adiv5_swdp: Fix more memory leak.
2020-11-27 22:26:48 +01:00
Noah Pendleton
35bcb4f7c6
Switch on the lpc546xx target
...
Enable the lpc546xx target. Tested on the LPCXpresso54628 dev board,
able to flash and debug.
2020-11-24 21:32:39 +01:00
Sean Cross
e9c02296f2
target: kinetis: add S32K118
...
This adds support for the NXP S32K118. This is an automotive-grade part
that is derived from the Kinetis line, so it has a very similar
interface to other parts in the family.
Signed-off-by: Sean Cross <sean@xobs.io>
2020-11-14 13:06:23 +01:00
jbuonagurio
f18be6ef7a
Add support for Kinetis K12 and placeholders for other K-series MCUs
2020-11-07 12:44:05 +01:00
Uwe Bonnes
2c33cde63f
cortexm.c/cortexm_halt_resume: Add some clock cycles to always get CPU going ( #768 )
2020-11-01 21:53:23 +01:00
Uwe Bonnes
1f7a716710
adiv5.c: Run cortexm_prepare on all suspected CortexM instances.
...
Gets all debug units of the second CPU of a STM32H745 visible.
2020-10-23 09:40:15 +02:00
Uwe Bonnes
18673d9a56
adiv5: Rework DP/AP refcounting.
...
ASAN non longer reports leaks with the STM32H745.
2020-10-23 09:40:15 +02:00
Uwe Bonnes
f76a7c4e92
adiv5: Release devices after scan.
...
Before, scanning only kept device stopped until POR or attach/detach cycle.
2020-10-23 09:40:15 +02:00
Uwe Bonnes
59dc1b7eb4
cortex-m7: Give hint about buggy core revision.
2020-10-23 09:40:15 +02:00
Uwe Bonnes
976c763747
jtag remote: Start fixing handling M0 (second jtag) for LPC4322 in high-level
...
- LPC11: Only print none-null unknown idcodes.
2020-10-23 09:40:15 +02:00
Uwe Bonnes
c161521c26
cortexm: Designer ARM must be in the default path when probing.
2020-10-23 09:40:15 +02:00
Uwe Bonnes
cdd07544d5
Cortexm: Allow pure debug on devices not yet handled for flashing
...
- Recognize STM32L552 and MIMXRT10XX
- Fix another PIDR
- Fix bad debug print string.
2020-10-23 09:40:15 +02:00
Uwe Bonnes
0ffb4f7b18
cortexm: Fix protected SAM detection
...
- Only run cortex_prepare() if reading cidr fails
- With Atmel DSU detected, run cortexm_probe()
2020-10-17 12:49:37 +02:00
Uwe Bonnes
5bc743d221
samd: Propagate security after setting security by chip reset.
2020-10-17 12:49:37 +02:00
Uwe Bonnes
8b929c12c9
hosted/jtag: Transfer jtag_devs to firmware.
2020-10-16 20:03:03 +02:00
Uwe Bonnes
3d92b82678
jtag: Use index and not device structure for jtag_dev_write_ir and jtag_dev_shift_dr
2020-10-16 20:03:03 +02:00
Uwe Bonnes
7ccf0d3e03
jtag_dev_t: Make dev, idcode and desc less generic.
...
No codechange intended.
2020-10-16 20:03:03 +02:00
Uwe Bonnes
87b546777a
nrf51: Be more verbose about the protection status.
2020-10-16 12:16:33 +02:00
Richard Meadows
4108b649c2
stm32h7: Add support for new product lines
...
Add support for:
* STM32H7B3/B0/A3 (RM0455)
* STM32H723/33/25/35/30 (RM0468)
Successfully tested with:
* STM32H7A3ZIT (RM0455)
* STM32H747XIH (check for regressions)
2020-10-10 22:09:34 +02:00
Uwe Bonnes
877b4be8ee
cortexm: Restrict probing by using the ap_designer.
...
More designers need to be observed and reported by users and added.
Request users to send needed data.
2020-10-07 20:12:35 +02:00
Uwe Bonnes
91d1ef8bf6
target/stm32: Use t->idcode with probe.
2020-10-07 20:12:35 +02:00
Uwe Bonnes
44bfb62715
Adiv5: Print Designer/Partno when device is not recognized
...
t->idcode is now 16 bit.
2020-10-07 20:12:35 +02:00
Uwe Bonnes
c456fc7f61
adiv5: Store AP designer and partno in the AP structure.
2020-10-07 20:12:32 +02:00
Uwe Bonnes
159196c2ad
Cortexm: Remove forced_halt.
2020-10-07 20:11:33 +02:00
Uwe Bonnes
9bb2807706
adiv5/romtable: Prepare CortexM devices to read the ROMTABLE
...
It seems, writing to DHCSR fails silent when the device is sleeping.
Reading DHCS during sleep may return nonsense.
Repeated write may at some point catch the device running and succeed.
With devices sleeping for long time and running on faster clock the
chance for a successful hotplug gets smaller.
- Try hard to halt a sleeping device
- Prepare vector catch and enable all debug units by TRACENA
- Release reset
- Apply device specific fixes
-- STM32F7: Store old value of DBGMCU_CR, enable debug in sleep in
DBGMCU before reading PIDR and restore DBGMCU on detach.
Signed-off-by: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
2020-10-07 20:11:17 +02:00
Gareth McMullin
dc8924a2bc
stm32h7: Don't tc_printf from flash functions ( #747 )
...
* stm32h7: Don't tc_printf from flash functions
Receving an 'O' packet while flashing confuses GDB and then
weird stuff happens.
* Replace tc_printf with DEBUG_WARN
2020-10-05 10:45:18 +02:00
Uwe Bonnes
014abf6cc9
adiv5.c: Reduce number of errors if reading cidr fails.
2020-10-01 15:33:28 +02:00
Uwe Bonnes
be40d2b851
adiv5: Check Debug Base Address early
...
Reduces printout when scanning the romtable
2020-10-01 15:22:17 +02:00
Eivind Alexander Bergem
38bc5bbf82
Add LPC546xx support #741 #553
2020-09-30 12:56:53 +02:00
Uwe Bonnes
2fdd94adeb
STM32F7: Add another missing Arch ID.
2020-09-24 16:20:34 +02:00
Uwe Bonnes
bdb351a6ea
adiv5_swdp: On ACK_FAULT, error() and try again once #731
...
when writing CSW.
2020-09-18 20:07:32 +02:00
Damien Merenne
120b3134bb
Add SAM4SD32C/B support.
2020-09-07 17:36:15 +02:00
Uwe Bonnes
8a2bce26f2
Hosted: Fix memory leak when platform_swdptap_init fails.
2020-09-04 11:49:13 +02:00
David Lawrence
f65afb1588
Use correct IAP entry address for LPC84x
2020-08-14 20:00:18 +02:00
Uwe Bonnes
71e9d78210
adiv5.c: Add another ARCH_ID found STM32F205.
2020-08-01 14:00:17 +02:00
Uwe Bonnes
1b12e407fd
adiv5: Add missing arch identifiers for Cortex-M7 ETM.
2020-07-31 11:53:15 +02:00
Francesco Valla
696daa8352
adiv5: fix debug print of dev_type
...
Since dev_type is an 8 bit unsigned integer, use the PRIx8 macro instead
of PRIx32.
2020-07-29 11:32:24 +02:00
Uwe Bonnes
726d4b4496
adiv5.c: Add missing DEVTYPE and ARCHID to some existing PIDRs(#698,#699)
...
Probably more additions are needed.
2020-07-14 16:26:32 +02:00
Uwe Bonnes
09ceaea70f
adiv5_swdp: Fix another memory leak.
2020-07-14 15:02:13 +02:00
Fredrik Ahlberg
7ebb94d134
cortexm: Add comment on CPUID register
2020-07-12 22:54:39 +02:00
Fredrik Ahlberg
4391851f4d
adiv5: Change component descriptions from MTB to Micro Trace Buffer for consistency
2020-07-12 22:29:04 +02:00
Fredrik Ahlberg
0aadd0abce
Adiv6: Add comment on DEVTYPE and ARCHID fields with references
2020-07-12 22:27:46 +02:00
Fredrik Ahlberg
fcd945a529
cortexm: Read CPUID to identify core version
2020-07-12 12:08:22 +02:00
Fredrik Ahlberg
39a20d78ff
v8m: only check relevant bits in DHCSR when polling in cortexm_forced_halt
2020-07-12 12:07:12 +02:00
Fredrik Ahlberg
a35e9c8e5c
Adiv6: Read DEVTYPE and ARCHID to identify Cortex-M23 and Cortex-M33 debug components
2020-07-12 12:00:31 +02:00
Uwe Bonnes
661f78033a
stm32f1: Add F1 XL with dual bank handling,
2020-07-08 14:31:58 +02:00
Uwe Bonnes
eabd69dcdb
Adiv5: Protect DBG/SYSTEM Power-Up request with timeout too.
...
CMSIS-DAP without connected target looped infinite in that situation.
2020-06-07 13:14:32 +02:00
Uwe Bonnes
dc3fd2eb06
Classify debug messages
...
Firmware BMP with ENABLE_DEBUG=1 will print WARN and INFO as before.
PC-Hosted BMPwill alway print to stderr. Warn is printed unconditional,
INFO, GDB, TARGET, DONGLE and WIRE will print if their appropriate bit in
cl_debuglevel is set via the -v verbose command line argument.
INFO will go to stdout with -t or -l.
2020-06-05 14:59:30 +02:00
Uwe Bonnes
64f3dff8a8
PC-Hosted: Better debug output.
2020-06-05 14:59:30 +02:00
Valmantas Paliksa
b06c0ba8d5
bmp_remote: Use high level functions.
...
Based on #570 (OpenOCD HLA interface driver for Blackmagic), but now
usefull for bmp-remote.
2020-06-05 14:59:30 +02:00
Uwe Bonnes
c3d509e6c0
Clean up PLATFORM_HAS_DEBUG
...
Use only for firmware platforms.
2020-06-05 14:59:30 +02:00
Uwe Bonnes
563df2d354
Detour ADIv5 high-level functions.
2020-06-05 14:59:30 +02:00
Uwe Bonnes
9969c984f3
detour jtag primitives.
2020-06-05 14:59:30 +02:00
Uwe Bonnes
e34a27f72c
Detour swd primitives.
2020-06-05 14:59:30 +02:00
Uwe Bonnes
b0cf7d24bd
adiv5.c: Fix another leak.
2020-06-05 14:59:30 +02:00
Uwe Bonnes
783ec377d9
adiv5: Export extract.
2020-06-05 14:59:30 +02:00
Uwe Bonnes
966ac4036d
target.c: Check for valid flash structure.
2020-06-05 14:59:30 +02:00
Uwe Bonnes
60f39f55b4
MSP432: Warn when hardware version not supported.
2020-06-05 14:59:30 +02:00
Uwe Bonnes
05adcd9bf5
remote.c: Compile only relevant functions.
...
Do no compile firmware functions when compiling pc-hosted.
2020-06-05 14:59:30 +02:00
Uwe Bonnes
16967b4328
adiv5: Remove only local dp_idcode used from ADIv5_DP_t struct.
2020-06-05 14:59:30 +02:00
Uwe Bonnes
b8b34e7b1d
adiv5: remove cfg for AP structure, cfg is only used local.
2020-06-05 14:59:30 +02:00
Dömötör Gulyás
69e330849d
fix flash map for STM32G431, as it is a special case different from the STM32G47x and STM32G48x chips
2020-06-05 13:41:18 +02:00
Thomas Bénéteau
f9f928e9d6
Add support for LPC8N04
2020-06-05 12:33:51 +02:00
Koen De Vleeschauwer
6eb1b09c1c
pc-hosted semihosting
2020-05-27 12:51:29 +02:00
Koen De Vleeschauwer
54ee00b0f6
set semihosting sys_clock time origin
2020-05-13 17:50:39 +02:00
Uwe Bonnes
499309f648
stm32f1: Tell user about STM32F10(3) clone.
2020-05-13 13:07:55 +02:00
Alexey Shvetsov
1a83bc6892
Rename variant_string in efm32 samd samx5x ( #659 )
...
* Rename variant_string
Files efm32 samd samx5x uses same function name that collides during
linking (checked with gcc10)
Signed-off-by: Alexey 'Alexxy' Shvetsov <alexxyum@gmail.com>
* Also make xxx_variant_string static
Signed-off-by: Alexey 'Alexxy' Shvetsov <alexxyum@gmail.com>
2020-05-12 17:47:04 +02:00
Uwe Bonnes
9b939f4a3a
stm32f4: Fix option byte handling ( #654 )
...
Option bytes are not accessible with level 1 protection, so
Use FLASH_OPTCR(x)
Fix crash with "mon opt write xxxx"
Handle option manipulation better when HW Watchdog fuse is set
Allow abbreviated "mon option x<yyy>" commands
2020-05-05 12:52:32 +02:00
Sid Price
923949d5dd
Fixed variable/function name clash building on Windows
2020-05-03 15:45:31 +02:00
Koen De Vleeschauwer
9f8c7be360
semihosting
2020-05-02 12:55:29 +02:00
Koen De Vleeschauwer
8851504a41
new semihosting commands
2020-04-23 09:43:46 +02:00
Uwe Bonnes
ada17ada23
stm32f4/7: Always use largest flashsize for device family ( #633 , #635 , #644 )
...
Do not care for the FLASHSIZE register. Leave it up to the user to abuse
flash area the ST did not announce.
2020-04-21 17:04:07 +02:00
Uwe Bonnes
164eb43f00
NRF5: Do not reset target options.
2020-04-14 19:01:43 +02:00
Uwe Bonnes
bea8436561
NRF5: Always set CORTEXM_TOPT_INHIBIT_SRST( #230 )
...
The problem also happens with NRF52840. Set CORTEXM_TOPT_INHIBIT_SRST
for all NRF5 device.
People should be more persistent!
2020-04-14 18:11:23 +02:00
mean
d1468530bd
add basic support for LPC11U68 (and maybe LPC11U68)
2020-04-06 23:36:49 +02:00
Francesco Valla
846dadcc39
lmi: add support for TM4C1294NCPDT
2020-04-03 19:42:24 +02:00
Uwe Bonnes
c4d7232223
Export function to read out PIDR and use for samd and samx5x.
2020-03-26 19:05:57 +01:00
Uwe Bonnes
a0e42e229b
Make more things static.
...
No functional change intendend.
2020-03-26 18:44:19 +01:00
Uwe Bonnes
effd43ce38
Harden cortexm_reset() and remove double reset( #601 )
...
Thanks to Dave Marples <dave@marples.net> for input.
- Issue only one reset. Start with SRST. Only if not seen, use SYSRESETREQ
- Wait for release of DHCSR_S_RESET_ST before issuing more commands
- Add timeout to catch reset line stuck low
- Remove AP errors
2020-03-25 11:22:14 +01:00
Uwe Bonnes
2e185ba578
BMP/PC: Allow to compile with mingw64 ( #615 )
...
__USE_MINGW_ANSI_STDIO 1 must be set befor any windows specific included.
2020-03-24 17:59:13 +01:00
Uwe Bonnes
a7efe7cc14
cl-utils: Display targets found.
...
+ other small changes in DEBUG output.
2020-03-10 17:34:30 +01:00
Uwe Bonnes
2065c70888
adiv5: Split PRIx64 into two PRIx32 as nanolib does not support PRIx64.
2020-03-10 10:56:42 +01:00
Uwe Bonnes
75186f7d50
ADIv5: More CoreSight device decoding:
...
- MTB-M0+ (Simple Execution Trace)
- M33: Devices need finer decoding (DEVTYPE at offset 0xfcc)
2020-03-08 22:37:59 +01:00
Uwe Bonnes
919d9320fd
Remove unrelated files.
2020-03-06 19:33:20 +01:00
Uwe Bonnes
288620551f
adiv5: Print out SYSROM PIDR.
...
We need to know more about what devices indicate proper PIDR and what
devices fail to do so.
2020-03-04 19:02:07 +01:00
Uwe Bonnes
8c959defca
efm32: Make local functions static.
2020-03-04 18:44:40 +01:00
Uwe Bonnes
470c8e8cf1
target_flash_erase: Do not crash when requesting erase of unavailable flash.
...
Allow to erase from command line.
2019-12-13 14:59:42 +01:00
Uwe Bonnes
ab396f9745
Allow %z specifier in windows builds. Supercedes #562 .
2019-12-08 16:43:19 +01:00
Uwe Bonnes
1bef51e145
adiv5: Abort scanning APs after 8 void APs.
2019-12-08 16:43:19 +01:00
Uwe Bonnes
bdd76de517
Erase: Fix endless erase when erase-area did not end on (page|block) boarder.
2019-12-08 16:43:19 +01:00
Uwe Bonnes
25d24e5c34
efm32: Allow to compile with -Og.
2019-12-08 16:43:19 +01:00
Richard Meadows
5943552a6b
[efm32] Probe for the EFM32 Authentication Access Port (AAP)
...
Supported functionality through this AP:
* Issuing a DEVICEERASE command
2019-12-08 16:21:02 +01:00
Richard Meadows
260fc88d8f
[efm32] Add command to set and print bootloader enable status
...
This is a bit in the Lock Bit (LB) flash page, so it can only be
cleared by this routine
2019-12-08 16:17:02 +01:00
Richard Meadows
7f0d5febc3
[efm32] Print MSC Interrupt Flags to DEBUG after each flash write
2019-12-08 16:16:55 +01:00
Richard Meadows
e85df763b7
[efm32] add new devices PG12B, JG12B, GG11B, TG11B, GG12B
...
Rework MSC layout check
2019-12-08 15:55:12 +01:00
UweBonnes
f89542c79f
Merge pull request #203 from dlaw/master
...
Add LPC11xx command to read out unique ID from target. Restore Ram and registers after call.
2019-12-08 15:45:49 +01:00
Artur Maciuszonek
8a07f44435
Add support for the kinetis KL16Zxx devices. Tested on KL16Z128VFM4 custom hardware
2019-11-21 20:37:13 +01:00
Uwe Bonnes
e7e34600a4
lpc11: Only print Idcode if not zero and not yet handled.
...
Otherwise for all Cortex-M not yet handled this LPC messages appears.
2019-11-17 13:24:39 +01:00
Ken Healy
9198c951bb
Reduce flash space required for SAM D51/E5x driver
...
* Reuse functions that are common with the SAM D1x/D2x driver
* Only include the mbist and write8/16/32 user commands if
SAMX5X_EXTRA_CMDS is defined
2019-11-17 12:45:49 +01:00
Ken Healy
d3c330ea1a
Fix issues with Travis CI build
...
It appears the Travis version of gcc-arm-none-eabi doesn't allow the %x
printf format specifier for size_t arguments, in contrast with the
version I'm running on Ubuntu 18.04 (15:6.3.1+svn253039-1build1).
2019-11-17 12:45:49 +01:00
Ken Healy
26216beaab
Microchip SAM D51 / E5x support
...
Adds a target driver for Microchip SAM D51 / E5x family.
Tested on SAMD51G19A and SAMD51J19A. According to the datasheet, the
D51 / E5x family share the same core feature set, differing only in the
addition of CAN (E51) or ethernet controllers (E53/54). All members of
the family should be equivalent from a debug and programming perspective.
2019-11-17 12:45:49 +01:00
Kirill Zhumarin
28f0ced97e
Support NXP LPC1343
2019-11-09 18:47:07 +01:00
dpslwk
67f9d26644
samd: Add support for L21 & L22 (PR #345 )
2019-11-09 13:59:37 +01:00
Uwe Bonnes
b9249fe104
adiv5: Activate DP reset sequence, guarded with timeouts.
...
While not working on most STM32, it succeeds on STM32G474.
Thanks to Dave Marples <dave@marples.net>
2019-10-20 22:15:28 +02:00
Thomas Bénéteau
4a8cba0e9c
Add support for LPC1114/333 (LPC1100XL series)
...
This is not given in the user manual but the register immediately
following DEVICE_ID does apparently contain the correct part ID.
2019-10-13 13:01:19 +02:00
Ken Healy
5c805c7d35
Fix buffer overflow in adiv5_component_probe()
2019-10-12 11:44:08 +02:00
Uwe Bonnes
0ae7cea1ae
Add LPC84 from UM11029, Rev. 1.4, tested on LPC845 Breakout board.
2019-10-08 18:17:43 +02:00
Uwe Bonnes
1cf0b8ac13
Make all arguments for all commands (struct *t, int argc, const char **argv).
...
-Wall on gcc8 otherwise warns without -Wno-cast-function-type but older
GCCs/CLang choke on that argument:
error: unknown warning option '-Wno-cast-function-type'; did you mean
'-Wno-bad-function-cast'? [-Werror,-Wunknown-warning-option]
This adds 24 byte to the binary, as some functions are now called with
additional dummy arguments:
"Pushing and popping garbage to keep the system happy"
2019-09-29 12:44:55 +02:00
Uwe Bonnes
f010a567bd
adiv5: Reject APs duplicating last AP.
...
Seen with TM4C129 on black MSP432R401 Launchpad. Scanning of APs is aborted,
so valid APs after duplicated APs are ignored.
2019-09-29 12:44:37 +02:00
Uwe Bonnes
fae2966b72
Target: Default to nop-function() for all exported target functions.
...
Fixes #522 .
2019-09-23 17:42:29 +02:00
UweBonnes
609e6b135d
nrf51: Add nop_function as halt_poll. ( #517 )
...
Otherwise "tar ext ...; mon s; att 2; quit", start new gdb "tar ext ..."
crashes, at least on pc-hosted platforms.
2019-09-04 13:50:13 +02:00
UweBonnes
6663da7ff5
cortexm.c: Fix DWT Mask ( #516 )
...
See #513
2019-09-04 13:28:55 +02:00
UweBonnes
00937348b3
Fixes to compile "make ENABLE_DEBUG=1 all_platforms" ( #515 )
2019-09-04 13:09:43 +02:00
Gareth McMullin
e6504e149b
cortexm: Implement single register read/write
2019-09-01 20:38:38 +02:00
Gareth McMullin
7bcf7f4924
cortexa: Implement single register read/write
2019-09-01 20:38:38 +02:00
Gareth McMullin
20cad17ce3
target: Implement generic multi-register read/write
2019-09-01 20:38:38 +02:00
Gareth McMullin
9f4cf4124e
target: Add new methods for read/write individual regs.
2019-09-01 20:38:38 +02:00
Uwe Bonnes
d39dc34382
pc-stlinkv2: Fix reg_read|write
...
- Fix wrong placed brace in cortexm_regs_write()
- Start writing with r0
- With register read, save only registers listed
2019-09-01 12:11:37 +02:00
Uwe Bonnes
aef055bb6f
adiv5: If setup AP0 fails, fail immediate.
2019-08-31 11:20:17 +02:00
Uwe Bonnes
6bf4fd3598
pc-stlinkv2: CPU register read and write must be done with the AP set.
...
FIXME: Writing CPU registers on M4 of STM32H745 seems not to work.
2019-08-27 15:13:15 +02:00
Sylvain Munaut
4289788e0b
src: Replace sprintf with snprintf
...
snprintf is needed anyway, that's one less function to have :p
And it's bad practice anyway.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-08-05 15:43:33 +02:00
Sylvain Munaut
1d4152a36f
target: Make sure variant_string is consistent in size
...
It's a global symbol and LTO will complain if the one in this file and
the one in EFM32 target are inconsistent.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-08-05 15:42:29 +02:00
Uwe Bonnes
e29f2b4fb9
jtag/swd: Rename defines/make variables to allow removal of weak attribute
...
jtagtap.c is libopencm3 generic. Move to common.
2019-07-18 20:54:10 +02:00
Uwe Bonnes
067956266c
Adiv5: Remove weak attribute to ease windows compile.
2019-07-18 18:16:19 +02:00
Uwe Bonnes
9e898cc4b8
adiv5: Add more coresight part numbers found on STM32MP157c-DK2 ( #492 ).
...
Only print corename if not NULL.
2019-07-18 17:39:48 +02:00
Uwe Bonnes
dd3cb193f3
Indicate the Core in the Target list.
2019-07-17 17:38:21 +02:00
Uwe Bonnes
c44cb904b0
adiv5.c: Format debug output more tense.
2019-07-17 17:38:21 +02:00
Uwe Bonnes
634c07c432
adiv5: Add TSGEN.
2019-07-17 17:38:21 +02:00
Uwe Bonnes
9ed26645d3
Add pc_stlinkv2 platform, running on host, talking to original StlinkV2/3.
...
Stlink firmware needs to be recent.
2019-07-17 17:38:01 +02:00
Uwe Bonnes
32d2b2c4bf
jtag: Move device list to it's own file to allow reuse.
2019-07-17 17:26:00 +02:00
Uwe Bonnes
bd530c8951
adiv5.c: Make functions weak where high level platforms may implement different.
2019-07-17 17:26:00 +02:00
Stephen Roe
b4c680bb15
Add STM32G4
...
Based on #488 Stephen Roe, done as #491 .
Fixes ID of STM32G03.
2019-07-17 17:24:23 +02:00
Simon Rasmussen
5a7ffe7a40
Fixed SAM3X8C large file flashing.
...
The datasheet specifies the EEFC_BASE(0) is at `0x400E0A00` and EEFC_BASE(1) is at `0x400E0C00` which means they're spaced 0x200 bytes apart rather than 0x400.
2019-07-17 14:37:07 +02:00
David R. Piegdon
02b2fdb2ae
fix overwriting of still-needed value (refs #487 )
...
this fixes a bug that was introduced in blackmagic PR #475 which lead to
firmware crashes when connecting to a BMP more than once without a
power-cycle.
2019-06-24 16:45:18 +02:00
Uwe Bonnes
589d297d20
stm32l0: Fix crash when only "monitor option" was requested.
...
PR #485
2019-06-12 12:54:29 +02:00
Alexander Zhang
880613d641
lpc_common: restore RAM and registers after IAP call
...
Restore the RAM and registers which are clobbered by an LPC IAP call.
This does not restore any additional RAM which might be clobbered
by a *particular* IAP call. (For example, flash programming always
clobbers the last page of RAM.)
2019-05-30 14:01:27 -04:00
David Lawrence
d3979a57b6
Add LPC command to read out unique ID from target.
...
This commit modifies lpc_iap_call() to work with IAP commands that
return additional data. If the "result" argument is non-null, 16
bytes of data (the maximum returned by any IAP command) are copied
to the specified address.
2019-05-30 14:01:12 -04:00
Richard Meadows
600bc9f029
Generate DEBUG warnings and return if `malloc`/`calloc` fail.
...
This is will make debugging earier if this does happen, rather than
dereferencing the null pointer (or passing it to memcpy, or worse).
blackmagic PR #475
2019-05-26 18:56:12 +02:00
Richard Meadows
61e9607594
[adiv5] Improvements in ADIv5
...
* Reference latest version of the ARM specification
* ROM tables - more debug information, including printing SYSMEM bit
* MEM-AP - reject when Debug Base Address entry is not
present/invalid. These would only have errored in
adiv5_component_probe.
* Fix maximum number of entries in Class 0x1 ROM Table to 960. See ARM
IHI 0031E Table D3-1 ROM Table register summary.
* Resolve note in STM32H7 driver with explaination
blackmagic PR #474
2019-05-24 22:00:44 +02:00
Richard Meadows
24a7b8b2bf
[stm32h7] add revision command which reads the `DBGMCU_IDC` register
...
blackmagic PR #476
2019-05-21 23:20:13 +02:00
Richard Meadows
c336c300a3
[stm32h7,bugfix] Fix bug: target_add_flash called in attach
...
When `target_add_flash` or `target_add_ram` are called in an attach
function they may be added multiple times. This very much confuses
GDB. This issue has already been reported and fixed for `stm32l4` (See
Issue #455 ).
`stm32f4` and `stm32l4` are the only other cortexm drivers that
implement this pattern. These are both fine.
2019-05-21 22:38:16 +02:00
Uwe Bonnes
984813a29d
Add Stm32G03 from reference manual Rev.2
...
Not yet tested on a real part.
2019-04-24 12:29:58 +02:00
UweBonnes
302ff20a6d
Merge pull request #434 from UweBonnes/nrf5
...
Nrf5
2019-03-21 19:43:29 +01:00
Jeremy Elson
3235fa2005
Improve parsing of commands that require enable or disable arguments:
...
* Accept prefixes of the words 'enable' and 'disable'
* Prevent silent failures on parse errors
* Print status after flag changes
* Fix missing includes
2019-03-19 12:56:44 -07:00
Boris Sorochkin
691ada17e9
Implement read device info for NRF5x
2019-03-10 21:45:47 +01:00
Uwe Bonnes
3f89fed32e
nrf51: Use buffered direct write to flash.
2019-03-10 21:45:47 +01:00
Uwe Bonnes
4ecd13a9a3
nrf51: Fix crash with not argument given to "mon read".
2019-03-10 21:45:47 +01:00
Uwe Bonnes
db2f403417
sam4l: Remove noisy debug message.
2019-03-10 21:45:47 +01:00
Uwe Bonnes
a336ac2084
NRF5: New detection scheme.
2019-03-10 21:45:47 +01:00
newbrain
6887628eaa
Correction of #445 attach-detach problem
...
Memory map is now completely freed and rebuilt in the separate attach
function.
It was previoulsy split beween probe and attach and never released,
causing problems when reattaching to the same target.
2019-03-03 15:55:40 +01:00
UweBonnes
da62cbaa3d
Merge pull request #449 from jelson/width-fix
...
Use 32-bit variable for 32-bit read
2019-02-25 13:21:55 +01:00
Jeremy Elson
86ed86c2a2
Use 32-bit variable for 32-bit read. (Also fixes DEBUG compile
...
error due to mismatch of format and argument.)
2019-02-24 17:49:30 -08:00
Uwe Bonnes
56fb0f7766
Handle STM32F730 and STM32H750.
...
Flash sector calculation was wrong with small flash sizes.
2019-02-21 19:19:10 +01:00
anyn99
3f8c40d3f5
Fixing stm32l4 target to allow probing w/o halting
2019-02-21 18:06:38 +01:00
newbrain
8de1b45c85
Kinetis KE04: Flash and debug support
...
Support for Kinetis KE04 8KiB, 64KiB and 128KiB variants in nxpke04.c
Target monitor commands for sector and mass erase.
Changes to kinetis.c MDM-AP target to support KE04.
Only KE04Z8 tested in HW.
2019-02-17 22:48:23 +01:00
Carl
02c1934c03
Added ability to lock and unlock boot rom for samd controllers
2019-02-13 16:33:07 -08:00
Richard Meadows
0b28232f72
[efm32] Assume Device Identification (DI) version 1 if we don't know the OUI ( #402 )
...
* [efm32] Assume Device Identification (DI) version 1 if we don't know the OUI
Silabs are using some additional OUIs we don't know about. Reported in issue #389
These should use a DI version 1 layout, so assume version 1 layout for OUIs we don't
know. However do print a notice about this on DEBUG() as suggested by @UweBonnes
The IDCODE value is sufficient to make a positive identification of an EFM32 device.
See AN0062 Section 2.2. Therefore accepting any OUI is reasonable behaviour.
Additionally the part familiy is checked, and the target rejected if not in the
`efm32_devices` table. This commit makes that rejection explicit, although it does
not change the logical behaviour here.
Note that the important registers (part number, part family, flash size) are at the
same addresses in both layouts anyhow. Currently only `efm32_cmd_serial` and
`efm32_cmd_efm_info` functions use registers that differ between DI versions.
* [efm32] tidy format warning about portability UB
* [efm32] Simplify OUI checking
* Only read the OUI once
* Accept the device even if the OU is unknown, as silabs have been using
a variety of OUIs
* Perform fewer register reads before checking the device family is valid
2019-01-16 09:58:59 +13:00
Uwe Bonnes
7cc02867ae
stm32f4: Fix problems with small flash sizes creating overflow or empty regions.
...
Thanks to "DerMeisteRR" for pointing out.
2019-01-09 12:23:49 +01:00
Uwe Bonnes
47fad2bf7f
Add Stm32L41x.
2019-01-09 12:23:49 +01:00
Uwe Bonnes
f0c6e2bbd2
Add STM32G07x.
2019-01-09 12:23:49 +01:00
Uwe Bonnes
0793dac2cf
libftdi: Allow to compile with mingw and cygwin and use recent libftdi1.
...
Tested with x86_64-w64-mingw32-gcc-8.2.0 and cygwin gcc (GCC) 7.3.0.
Use libftdi1 unconditionally.
Try to convice github travis to use libftdi1.
Remove unportable "uint ". Thanks to jacereda for pointing out in #400 .
2019-01-07 15:31:57 +01:00
Ingmar Jager
3f0c9ccee1
Fix support for LPC1115 and LPC1115XL devices ( #415 )
...
* Add support for LPC11U3X devices.
The DeviceID register has a different address from the LPC11XX devices.
But it is shared with the LPC8XX family.
* Fix support for LPC1115 and LPC1115XL devices
* Fix whitespace
2019-01-07 13:34:00 +13:00
Josh Robson Chase
02b9d5f1ac
Add delay to cortexm_reset
2019-01-07 13:32:17 +13:00
Josh Robson Chase
d7e2923990
Debug on stm32f1_flash_erase errors
2019-01-07 13:32:17 +13:00
Uwe Bonnes
9ce05ae67b
stm32h7/f7: Store DBGMCU_CR on attach() and restore on detach().
...
On STM32[FH]7, DBG_SLEEP must be set for debugging.
2019-01-07 13:22:01 +13:00
Uwe Bonnes
8d6092b73f
cortexm_forced_halt: Only release SRST after "Halt on reset" command.
...
This should make life easier if program remaps JTAG/SWD pins so that
with program running, JTAG/SWD access is impossible.
2019-01-07 13:22:01 +13:00
Uwe Bonnes
3ebf049424
cortexm: Only force halt before probe if idcode is unknown and ROM TABLE unreadable.
2019-01-07 13:22:01 +13:00
Uwe Bonnes
6633f74d95
stm32h7/f7: Write DBGMCU_CR only on attach.
...
Split probe/attach for STM32H7.
2019-01-07 13:22:01 +13:00
Uwe Bonnes
8575d3e7a6
stm32f7/h7: Use the DPv2 provided idcode for MCU identification.
2019-01-07 13:22:01 +13:00
Uwe Bonnes
525b90d4e5
cortexm: Only force halt before probe() if probe was forced.
2019-01-07 13:22:01 +13:00
Uwe Bonnes
da75acf015
adiv5: Only force cortexm_probe() once.
2019-01-07 13:22:01 +13:00
Uwe Bonnes
489f24584b
adiv5: Read TARGETID on DPv2 devices.
2019-01-07 13:22:01 +13:00
Uwe Bonnes
cde7726b87
cortexm: detach still needs extra cycles.
2019-01-07 13:22:01 +13:00
Ingmar Jager
14bedcc441
Add support for LPC11U3X devices.
...
The DeviceID register has a different address from the LPC11XX devices.
But it is shared with the LPC8XX family.
2018-10-04 08:53:05 -07:00
Mark Rages
91dd879dac
Another nRF52 ID.
2018-09-13 16:18:29 -06:00
Uwe Bonnes
f5cf6d4497
adiv5_swdp: Add extra idle cycles with write transactions.
...
These extra cycles are needed by some CPU, e.g. STM32L0x1 to cross the SWCLK
/HCLK domains. Revert insufficient #373 also tackling that problem.
Thanks to Thorsten von Eicken for pointing out.
2018-09-06 17:29:20 +02:00
Rik van der Heijden
f39701c4c8
Move the LPC17xx probe function down since it performs an IAP call which can hang when performed on other devices than a LPC17xx
2018-09-05 17:40:02 +02:00
Gareth McMullin
c5c0783337
Merge pull request #378 from markrages/nordic_unlock
...
Add extra port for mass erasing / unprotecting nRF52 with APPROTECT set.
2018-07-28 14:56:03 +12:00
Mark Rages
d0a8ce0819
Add extra port for mass erasing / unprotecting nRF52 with APPROTECT set.
...
Mostly copied from the equivalent in kinetis.c and
https://devzone.nordicsemi.com/f/nordic-q-a/12484/approtect-and-dap/47301
2018-07-27 16:07:19 -06:00
Gareth McMullin
6fd3ede5c7
Merge pull request #377 from markrages/add_id_2
...
Another chip ID for Nordic nRF52832.
2018-07-28 09:53:00 +12:00
Mark Rages
cb8596b0b2
Another chip ID for Nordic nRF52832.
2018-07-27 15:09:14 -06:00
Uwe Bonnes
5918608156
STM32F7: Debug does not work with WFI without DBG_SLEEP
2018-07-27 10:59:54 +02:00
Uwe Bonnes
2c1c913213
adiv5.c: Add units found on M7.
2018-07-27 10:59:54 +02:00
Uwe Bonnes
f234074099
stm32h7: Start of support.
...
Implement probe, memory map, erase, write, uid, crc, parallelism.
2018-07-27 10:59:54 +02:00
Gareth McMullin
a988bba035
Merge pull request #372 from richardeoin/efm32-1
...
[efm32] Add support for EFM32 devices with different DI and MSC layouts
2018-07-27 11:41:58 +12:00
Gareth McMullin
d7b173ab39
Merge pull request #310 from UweBonnes/stm32l4r
...
arget/stm32l4.c: Add stm32l4r series and clean up.
2018-07-27 10:32:00 +12:00
Mike Walters
b4dc666aca
Add nRF52 QIAA C0
2018-07-26 23:13:38 +01:00
Uwe Bonnes
4a312c7697
target/stm32l4.c: Add stm32l4r series and clean up.
2018-07-22 15:44:00 +02:00
Uwe Bonnes
7034d0bb94
stm32l4: Option byte loader must be started with flash unlocked!
...
Warn user that device will loose connection.
2018-07-22 15:44:00 +02:00
Uwe Bonnes
83f9655f6e
stm32l4: Fix wrong default for WRP2A option halfword.
2018-07-22 15:44:00 +02:00
Uwe Bonnes
139707c5c0
cortexm/detach: Add a dummy transaction after cleaning DHCSR.
...
This replaces the seemingly superflous swdptap_seq_out() at
the end of adiv5_swdp_low_access() needed to continue after detach.
2018-07-19 10:57:41 +02:00
Richard Meadows
a7106bd346
[efm32] Add support for flashing User Data (UD) and Bootloader (BL) regions
...
* UD region on all devices, some devices also have BL region
* Fix page size for EZR32HG
2018-07-18 08:57:01 +00:00
Richard Meadows
55bb96cfdb
[efm32] tidy compiler warning
2018-07-16 20:47:24 +00:00
Richard Meadows
98faaceb70
[efm32] Add support for EFM32 devices with different DI and MSC layouts
...
* DI layout is identified by attempting to read OUI from both layouts
* MSC address is passed to flashstub in r3
Retested EZR32LG230 (EZR Leopard Gecko M3)
Tested EFR32BG13P532F512GM32 (EFR Blue Gecko)
Achieves aims of PR #264 (I think) Thanks to @dholth and @ryankurte for inspiration
Fixes Issue #226
2018-07-16 20:18:36 +00:00
Antti Louko
59d6eca8f0
Fixes option erase for STM32F070x6 STM32F070xB STM32F030xC
2018-07-10 18:44:05 +03:00
Gareth McMullin
c5713ea8d3
Merge pull request #366 from UweBonnes/f7_fix
...
stm32f4.c: F76x also has large sector by default.
2018-07-07 13:03:14 +12:00
Gareth McMullin
1b51c4961e
Merge pull request #363 from korken89/master
...
Removed debug bits for F4/F7 target, same as all other MCUs now
2018-07-07 13:01:05 +12:00
Uwe Bonnes
50514ccc31
stm32f4.c: F76x also has large sector by default.
2018-07-05 13:29:43 +02:00
Emil Fresk
5e8c8cae10
Removed debug bits for F4/F7 target, same as all other MCUs now
2018-06-28 16:31:34 +02:00
Uwe Bonnes
5548d54626
common/swdptap: some clean up.
...
Remove superfluous transaction.
Use native variable size.
2018-06-26 19:50:14 +02:00
Uwe Bonnes
7e3fe352ad
adiv5_swdp.c: Use swdptap_seq_out for initialiation sequence.
2018-06-26 19:50:14 +02:00
Gareth McMullin
b2defad844
Merge pull request #356 from UweBonnes/probe_halted
...
Probe halted
2018-06-21 10:06:56 -07:00
Uwe Bonnes
b59bbac0b2
stm32l4: Use buffered direct write to flash.
2018-06-16 13:30:53 +02:00
Uwe Bonnes
891d6de8eb
stm32f1.c: Use buffered direct write to flash with half word access.
2018-06-16 13:30:53 +02:00
Uwe Bonnes
f1752c7a1a
stm32f4: Allow DWORD parallelism.
...
Needs external VPP!
2018-06-16 13:30:53 +02:00
Uwe Bonnes
15312eb86c
stm32f4: Honor parallelism also for erase.
2018-06-16 13:30:53 +02:00
Uwe Bonnes
bfeb6f0db9
stm32f4: Use buffered direct flash write with choosen size.
2018-06-16 13:30:53 +02:00
Uwe Bonnes
54f73858f9
Provide a target function to write with given size.
2018-06-16 13:30:08 +02:00
Uwe Bonnes
17b817f37b
cortexm: Allow to set timeout to wait for halt.
...
This allows to gain access to devices spending long time in WFI without
the need for a reset, at the expense of possible long waiting times.
Using Reset means loosing the device runtime context.
2018-06-13 14:03:50 +02:00
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
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
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
f3cacba219
libftdi: Flush buffer with detach.
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
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
Gareth McMullin
9d7925792f
Merge branch 'master' into always_buffer_flash
2018-04-23 10:40:20 +12:00
Mike Walters
fa62403ee3
nrf51: Add nRF51802 device id. ( #331 )
2018-04-03 10:45:56 +12: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