Commit Graph

1203 Commits

Author SHA1 Message Date
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
Gareth McMullin 2db42ba8e5 Merge pull request #287 from gsmcmullin/update_libopencm3
Update libopencm3
2017-10-04 10:58:44 +13:00
Uwe Bonnes 0aa47113f3 stm32f4: Fix F4 dual bank OPTCR1 to option byte mapping. 2017-10-02 16:22:14 +02:00
Uwe Bonnes c4d3712b39 stm32f4.c: Rework flash structure recognition.
Dual bank devices do not have sectors (8)12..15 !
Dual banks devices need to MER1 set for mass erase.
F72x has different FLASHSIZE_BASE
2017-10-02 16:22:14 +02:00
Gareth McMullin 0ed66547d5 Fix libopencm3 breakage 2017-09-25 11:17:03 +13:00
Uwe Bonnes 4966168802 s[t|w]link: Implement ENABLE_DEBUG. 2017-09-23 16:40:28 +02:00
Uwe Bonnes ce1ef6e41b stm32: Move rdi handling to common stm32 code. 2017-09-23 16:39:35 +02:00
Uwe Bonnes 203f6702d8 Flashsize_F103: Options for BMP on STM32F103C8 devices 2017-09-21 23:05:20 +02:00
Uwe Bonnes 963df9febc stlink: Use common initialization and detect V2.1 boards.
Factor out hardware revision detection, USB detach and power settings, as
all three program (bootloader, bmp and dfu-upgrade) need it.
2017-09-21 18:43:06 +02:00
Gareth McMullin 259f1b90df cortexa: Check for fault on set/clear soft breakpoint. 2017-09-20 11:16:36 +12:00
Gareth McMullin 1cb4271749 cortexa: Remove problematic code for AHB access.
The old code for 'fast' memory accesses using the AHB directly
has problems with data consitency.  Until this can be resolved, I'm
removing the affected code.
2017-09-19 09:13:22 +12:00
Gareth McMullin 2df0c7d6a7 Merge pull request #261 from cpavlina/tm4c
lm3s/tm4c: add TM4C1230C3PM
2017-09-06 15:34:42 +12:00
David R. Piegdon 46e363393f Add nRF52840 support (PCA10056, nrf52840 PDK) 2017-09-03 23:05:29 +00:00
Carl Sandström 37f9623de2 Added NRF51_FICR_CONFIGID for nRF51822 QFAA H2 2017-08-30 17:14:52 +02:00
Uwe Bonnes 37bb86267a STM32F0: Several STM32F0[3|7]0 have same ID as other STM32F0X0. 2017-08-28 22:58:59 +02:00
Chris Pavlina a0b0b8a716 lm3s/tm4c: add TM4C1230C3PM 2017-07-21 13:29:41 -06:00
Gareth McMullin 7663794fdf Merge pull request #247 from schodet/stm32f4-x8-x32
Allow programming STM32F4 when using a low voltage
2017-07-09 14:33:06 -07:00
Nicolas Schodet 3846ea4708 stm32f4: allow selection of flash programming parallelism 2017-07-09 23:26:49 +02:00
Gareth McMullin 09f49b469d Merge pull request #256 from nar0909/patch-1
New Device Id update - QFAA G1
2017-07-09 13:45:52 -07:00
nar0909 43ac4a04f7 New Device Id update - QFAA G1
New device Id - for NRF51822 QFAA G1 1529AM.
2017-07-04 12:32:39 +10:00
Daniel Egger f036be8cb2 Identify and support LPC1112/102 MCU as well
Signed-off-by: Daniel Egger <daniel@eggers-club.de>
2017-06-23 21:52:13 +02:00
Gareth McMullin 984f8b3d94 Merge pull request #248 from schodet/typo
stm32f4: fix typo in target name
2017-06-22 18:35:29 -07:00
Gareth McMullin 40ac8e1004 Merge pull request #241 from gsmcmullin/no_magic_vtor
Use vector_table symbol for assignment of SCB_VTOR.
2017-06-22 16:31:09 -07:00
Nicolas Schodet 02ce5e23b6 stm32f4: fix typo in target name 2017-06-19 10:56:20 +02:00
Nicolas Schodet 680aa30d52 stm32f4: add support for STM32F4[67]9 2017-06-19 10:41:38 +02:00
Gordon Smith 1ee1f441d5 stm32f4: write flash using byte access 2017-06-16 14:45:16 +02:00
Uwe Bonnes 408c5a9df2 stm32f4: Try to handle option bytes for more devices.
Correct the table for the OPTCRx values from errors in documentation and
error when entering the values.
2017-06-09 13:03:26 +02:00
Uwe Bonnes 8a7455f63e src/target/stm32f4.c: Add STM32F7[2|3]x. 2017-06-09 13:03:26 +02:00
Uwe Bonnes 84e036a804 target/stm32f4: Document FLASH_OPTCR(1|2) registers. 2017-06-09 13:03:26 +02:00
Uwe Bonnes 2216587b39 src/target/stm32f4.c: Remove missleading DTCM comment.
Use different command string for F74x and F76x.
2017-06-09 13:03:26 +02:00
Uwe Bonnes dc1c7611a9 src/target/stm32f4.c: All STM32F7 devs have option bytes at 0x1fff0000. 2017-06-09 13:03:26 +02:00
Uwe Bonnes e43017d0a6 src/target/stm32f4.c: Add STM32F412 and F413.
F413 needs its own clause, as there is memory > 1 MB but no second bank.
2017-06-09 13:03:26 +02:00
Uwe Bonnes 24ed65d6b6 src/target/stm32f4.c: Declare CCMRAM only for devices with CCMRAM. 2017-06-09 13:03:26 +02:00
Gareth McMullin 2eb2f8edd7 Use vector_table symbol for assignment of SCB_VTOR. 2017-06-09 13:07:06 +12:00
Uwe Bonnes a7771fa23f stlink/swlink: Remove missleading comments. 2017-06-08 18:25:43 +02:00
Gareth McMullin aaa7b0e38e Merge pull request #217 from UweBonnes/stm32l4
Stm32l4
2017-05-23 12:22:04 -07:00
Gareth McMullin fd467269eb Merge pull request #233 from gsmcmullin/parallel_make_fix
Fix parallel build.
2017-05-23 12:20:21 -07:00
Gareth McMullin 539d9e14ec Merge pull request #223 from gsmcmullin/nrf51_c_stub
nrf51: Replace stub with C version and pass params in registers
2017-05-23 12:00:08 -07:00
Gareth McMullin ecc0d9807d Fix parallel build.
Add explicit dependency of command.c on version.h
Remove version.h on make clean.
2017-05-23 11:57:35 -07:00
Uwe Bonnes 91839f3aee stm32l4.c: Handle options. 2017-05-11 23:31:43 +02:00
Uwe Bonnes 289be4d9db stm32l4.c: Add STM32L43/L44/L45/L46/L49/L4A. 2017-05-11 23:31:43 +02:00
Uwe Bonnes 8cc2c44dbf f4discovery: Use Magic constant in RAM for Bootloader entry. 2017-05-11 22:21:38 +02:00
Uwe Bonnes a0e47c392b f4_discovery: Clean up platform.h and Readme. 2017-05-11 21:53:01 +02:00
Uwe Bonnes 814eb0e3a2 f4discovery: Make DFU work (again?) 2017-05-11 21:52:24 +02:00
Uwe Bonnes f5dd3006fb STM32: Generate same serial number as internal DFU bootloader. 2017-05-11 21:52:24 +02:00
Uwe Bonnes b7235da97f dfucore.c: Announce no writable bootloader pages when device is read proteced
or bootloader is write protected.

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

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

Cheers

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

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

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

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

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

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

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