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
6d01c3c55b
stlinkv2: Propagate AP errors
...
Needed when reading some memory region of unknown size.
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
Roland Ruckerbauer
5ec12e4103
Support arbitrary bit counts jtagtap_tdi_tdo_seq pc-hosted
2019-12-08 14:34:35 +01:00
Roland Ruckerbauer
d42477ebc5
Fix infinite loop in jtagtap_tdi_tdo_seq
2019-12-08 14:34:35 +01:00
Uwe Bonnes
f10ccfd83e
f4discovery: Fix error with GCC9 being more picky with sizes.
2019-12-05 19:36:05 +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
Thiadmer Riemersma
1924aa4999
Make baudrate parameter of traceswo command mandatory for stlink/swlink, and superfluous on other platforms; change help message accordingly.
2019-11-19 20:20: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
Uwe Bonnes
5a05cedd7d
pc-hosted/jtagtap.c: Handle DO as bytes (PR #552 )
...
Fixes #540/#542
2019-11-10 17:36:58 +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
04d9749f25
Makefile: Publish DFU binaries with the daily build. ( #549 )
...
Fixes #548 .
2019-10-28 16:37:41 +01:00
Uwe Bonnes
76f9a6ad42
stm32: Portability changes.
2019-10-20 22:20:06 +02: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
Uwe Bonnes
c6f43cf23f
Stlinkv2: Always call stlink_leave_state() first.
...
V2 devices after power on are in DFU mode. It is needed to leave DFU before
doing anything else.
2019-10-19 20:57:26 +02:00
Roland Ruckerbauer
58febdff79
Fixed tokenization of gdb monitor commands.
2019-10-19 13:25:26 +02:00
Daniel O'Connor
2eef202ee1
Use pkg-config to get CFLAGS & LDFLAGS for libftdi1
...
Pull request #535
2019-10-14 19:22:53 +02:00
Daniel O'Connor
0aedff6623
Set the accepted to socket to be blocking as that is what the code expects.
...
This is necessary on OSX (and probably BSDs) where they default to non blocking which causes recv() to return -1 with errno set to EAGAIN.
2019-10-14 12:45:10 +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
Dave Marples
90df8172ca
Addition of pc-hosted variant and extensions to other targets to support it.
2019-10-08 19:16:12 +02:00
Uwe Bonnes
8a1d8bfba3
Stlink: Variant for Stlink V2 that works with the original ST bootloader.
...
Use https://github.com/jeanthom/stlink-tool.git for encrypted upload and
switch to BMP.
2019-10-08 18:18:19 +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
12a2659671
pc-stlinkv2: StlinkV3 seems only to work with STM devices,
2019-09-29 16:48:42 +02:00
Uwe Bonnes
0599d2161c
pc-stlinkv2: Recognize another error and try to handle failing memread.
2019-09-29 16:48:31 +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
afbde05cd3
Linker: Recent libopencm3 linker already sets the stack.
...
Thanks to Sid Price for noticing #520 .
2019-09-23 22:48:21 +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
3a6947a68f
stlink: Check for baite variant. ( #519 )
...
If PC13/14 float and PB11 is pulled high, recognize as baite.
Handle as rev.1 board. Deciphered from:
http://www.avrki.ru/picture/articles/samodelniy_st_link_v2/shemf_st_link_v2.jpg
2019-09-05 20:37:16 +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
UweBonnes
7dcb3295c6
Native: Link against nanolib. ( #514 )
...
This frees about 13 kB or 30 kB with ENABLE_DEBUG=1
2019-09-04 12:51:30 +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
19a8078f99
gdb: Implement 'p' and 'P' register access
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
1d868bfffb
pc-stlinkv2: Detect stlink detach.
...
As libusb has no real async callback, we need to call libusb_handle_events()
in different places. While waiting for the gdb connection, we set the
socket to non-blocking and check additional for usb events in that loop. That
way, detach is also detected while waiting for connection. With debugger
attached, SET_IDLE_STATE ist missused for checking for usb events.
2019-09-01 12:19:14 +02:00
Uwe Bonnes
6f1cae9203
pc-stlinkv2: Wait for device attach.
2019-09-01 12:19:07 +02:00
Uwe Bonnes
86d0be9708
pc-hosted: Display morse message on controlling terminal.
2019-09-01 12:11:51 +02:00
Uwe Bonnes
80a9fd51ca
Clarify STM32F103x8 Flashsize handling.
...
Should finally fix #471 .
2019-09-01 12:11:51 +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
d1ee827b4d
pc-stlinkv2: STLINK_SWD_DP_ERROR seem unrecoverable. Throw exception.
2019-08-31 11:20:17 +02:00
Uwe Bonnes
0d61106f90
pc-stlinkv2: Remove redundant read of CoreID.
2019-08-31 11:20:17 +02:00
Uwe Bonnes
aef055bb6f
adiv5: If setup AP0 fails, fail immediate.
2019-08-31 11:20:17 +02:00
Uwe Bonnes
a01109543e
pc-stlinkv2: Return failure if STLINK_DEBUG_APIV2_INIT_AP fails.
2019-08-31 11:20:17 +02:00
Uwe Bonnes
d994565f2e
pc-stlinkv2: Fix crash with serial given not matching connected devices.
2019-08-31 11:19:13 +02:00
Uwe Bonnes
2b7d4c5ade
swlink: Remove redundant conditional usbart_init().
...
Noticed in #506 .
2019-08-28 11:39:03 +02:00
Sid Price
35cb4e51e4
Windows Build Fixes GNU make 4.2.1 ( #502 )
...
After update of GNU make the tests for Windows OS are no longer needed. Note that GNU make 4.2.1 is used to build BMP under Windows OS.
Make native working
Again, the newer version of GCC make does not need the OS tests.
2019-08-28 10:45:41 +02:00
Uwe Bonnes
5d59338de5
pc-stlinkv2: Try first to reset device if we read a strange version number.
2019-08-27 15:13:26 +02:00
Uwe Bonnes
44f471db53
pc-stlinkv2: READMEM_8BIT needs to read 2 bytes for 1 byte requested.
...
Fix as seen in openocd.
SYSROM_PIDR2 has only 3 bits for the JEP106 identity code field, bits [6:4].
2019-08-27 15:13:26 +02:00
Uwe Bonnes
82be49f052
Stlink: Add a README.md, mostly deprecating reflashing Stlinkv2/1.
2019-08-27 15:13:26 +02:00
Uwe Bonnes
5fbb3a44fd
PC-STLINKV2/Libftdi: Better version string.
2019-08-27 15:13:26 +02:00
Uwe Bonnes
fa27649f87
Remove debug_bmp command on PC hosted platforms.
2019-08-27 15:13:26 +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
Brennan Ashton
443ced62d4
Target latest libopencm3
...
Required fixes:
* use usbd_request_return_codes -- commit 54b117c5a5767df8dc114612dfd8e8cb88b72c6b
* drop deprecated timer_reset() -- commit 034dbf20ff8c54dcbee5238390b37a0d35180f44
* drop 48 & 120 MHz configs -- commit a9dde2832eb8039b9e0d21a50b9b991ddbfc4e2d
* ld scripts: drop duplication of standard sections -- commit 9a05dcb6c0aef712052d337457838f6041ffd57a
2019-08-14 00:57:15 -07: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
Sylvain Munaut
544bcd9845
build: Allow support for .S assembly file in SRC
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-08-05 15:41:46 +02:00
Sylvain Munaut
804ec24df9
build: Apply OPT_FLAGS after platform Makefile.inc include
...
This allows the platform to specify another optimization level than
the default (like -Os if space is limited)
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-08-05 15:29:00 +02:00
Sylvain Munaut
ef372d0161
build: Use a separate NO_LIBOPENCM3 flag to disable libopencm3
...
This prepares to allow other architectures than pc
that don't use libopencm3.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-08-05 15:24:16 +02:00
Uwe Bonnes
06078a8a98
stlinkv2.c: Ignore zero length memory transactions.
2019-07-28 16:28:18 +02:00
Uwe Bonnes
d92635b6a3
stlinkv2: Use stlink_usb_get_rw_status() where possible.
2019-07-28 16:27:52 +02:00
Uwe Bonnes
1b3acf3b8a
pc-stlinkv2: Print serial number of V20 devices readable.
2019-07-20 13:34:21 +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
b9249ca8a6
stlinkv2: Recognize V21_MSD, e.g. on STM32MP157C-DK2.
2019-07-17 17:38:21 +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
205fce20e5
stlinkv2: mem_[read|write] needs to honor AP.
2019-07-17 17:38:21 +02:00
Uwe Bonnes
634c07c432
adiv5: Add TSGEN.
2019-07-17 17:38:21 +02:00
Uwe Bonnes
82424b100b
stlinkv2: Require STLINK V3 Rev > 2 as revision 1 can not read TARGETID.
2019-07-17 17:38:21 +02:00
Uwe Bonnes
9b764534e6
stlinkv2: Recognize Stlink V3E
2019-07-17 17:38:21 +02:00
Uwe Bonnes
3388e48d92
stlinkv2: Do not loop endless when Read DP fails.
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
fd3af639b0
Clean up some includes.
...
Includes #465 , noticed by Sid Price.
2019-07-17 17:26:00 +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
Uwe Bonnes
5aebef4f64
Makefile: Indicate high level SWD/JTAG implemenatation.
2019-07-17 17:26:00 +02:00
Uwe Bonnes
3b75cb9a5a
gdb-server: Allow multiple instance.
2019-07-17 17:26:00 +02:00
Uwe Bonnes
9075411c93
Move gdb_if.c for stand-alone servers to common.
2019-07-17 17:26:00 +02:00
Uwe Bonnes
df7458e35a
Build-Infrastructure: Allow a different target name.
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
Sid Price
21434d6fbb
Remove redundant include file
2019-05-26 23:27:32 +02: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
Uwe Bonnes
703f88a969
gdb_main: Always release CPU when detaching.
...
Fixes Issue #413 and released as PR #477 .
2019-05-23 13:17:54 +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
Sid Price
2108bb7137
Native Windows builds
...
All except hydrabus and launchpad-icdi building in PowerShell.
2019-04-07 10:26:45 -06: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
Uwe Bonnes
a6b75bb4ef
Makefile: Add -Wnocast-function-type for compilation on gcc8.
...
Older GCC versions do not warn for disabled warnings they do not know yet.
This is needed to compile with gcc8.
2019-01-16 23:17:17 +01: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
6df793dbf0
Revert "Allow to specificy if SRST is asserted and when it is released."
...
This reverts commit 44fc24e0e7
.
2019-01-07 13:22:01 +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
Benjamin Vernoux
771d81a5f0
Fix link for windows_dfu_util
2018-10-03 15:20:09 -07:00
Uwe Bonnes
d8b01ff61f
swlink: Enable UART2 for SWO.
...
Stlink on STM8S-Disco needs additional wiring for SWO.
2018-10-03 15:19:33 -07:00
Uwe Bonnes
7cafc44bd9
swlink: Allow to enable debug on second VCOM.
2018-10-03 15:19:33 -07:00
Uwe Bonnes
0d246fb31a
swlink: Measure voltage on VDD pin of Stlink/Stm8s.
2018-10-03 15:19:33 -07:00
Uwe Bonnes
184ef991bf
swlink: Handle LED.
2018-10-03 15:19:33 -07:00
Uwe Bonnes
06272e0a59
swlink: Implement dfu_upgrade.
2018-10-03 15:19:33 -07:00
Uwe Bonnes
530d1e5c28
swlink: Handle force boot on bluepill.
2018-10-03 15:19:33 -07:00
Uwe Bonnes
b744d8b0c9
swlink: Implement NRST.
2018-10-03 15:19:33 -07:00
Uwe Bonnes
1263d185a6
swlink: Distinguish between Stlink on STM8-Disco and "blue pill".
2018-10-03 15:19:33 -07:00
Mark Rages
91dd879dac
Another nRF52 ID.
2018-09-13 16:18:29 -06:00
Gareth McMullin
3a598a0cf3
Merge pull request #384 from rikvdh/feature/readable-reset-stlink
...
Change the ST-Link SRST reset function
2018-09-07 08:13:48 +12: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
95053b3b4e
Change the ST-Link SRST function to use libopencm3 helper functions and fix waiting for the pin-state, change init to use the SRST function for reset de-assertion
2018-09-05 20:28:02 +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
7a7266a0f7
Speed up JTAG.
2018-06-26 19:50:14 +02:00
Uwe Bonnes
59e03dea27
Keep TMS floating until scanning.
...
NRF5x shares nRST with SWDIO and otherwise does not run until scan is done.
2018-06-26 19:50:14 +02:00
Uwe Bonnes
97561fc5cc
stlink: Decrease delay with SWD turn around for native,stlink and swlink.
2018-06-26 19:50:14 +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
Uwe Bonnes
e54a826745
common/swdptap.c: Speed up by "unrolling" swd.._seq_...() for GPIO.
...
Try to have sensible setup/hold times by evenntually duplicated or
logically useless port commands.
Loading code to RAM on a STM32L476 got up from 46 to 83 kB/sec.
2018-06-26 19:50:14 +02:00
Uwe Bonnes
633af5bb85
libftdi/jtagtap.c: Fix error introduced with commit de33473
...
Seen when scanning e.g. Zync with mon jtag 6 4.
2018-06-26 17:43:06 +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
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