Commit Graph

1183 Commits

Author SHA1 Message Date
Uwe Bonnes 3ee31473c6 cortexm.c: LPC15xx has designer 43b and Partno 4c3
Thanks to JojoS!
2020-11-27 22:26:48 +01:00
Uwe Bonnes 62d9f60f03 hosted/firmware: Waits for read response as long as cortexm_wait_timeout. 2020-11-27 22:26:48 +01:00
Uwe Bonnes 26a23dd1cb stlinkv2: Try harder to open an AP.
Problem seen on STM32L0 with probably long sleep periods.
2020-11-27 22:26:48 +01:00
Uwe Bonnes 19e1fddba2 adiv5: Remove unnescessary read. 2020-11-27 22:26:48 +01:00
Uwe Bonnes cda83d3084 Fix memleaks.
Happened e.g. when Stlink could not enter debug or when cortexm_prepare timed out.
2020-11-27 22:26:48 +01:00
Uwe Bonnes 9ac5adfcef adiv5: Additional decoding. 2020-11-27 22:26:48 +01:00
Uwe Bonnes d78d7838d3 stm32f1: Always read DBGMCU_IDCODE for t->idcode (#770)
At least STM32F042 has 0x440 as romtable partno vs 0x445 as DBGMCU_IDCODE.
Thanks to Andrey Melnikov(aam335) for pointing out!
2020-11-27 22:26:48 +01:00
Uwe Bonnes 653d486ee2 cortexm: Store CPUID in target structure. 2020-11-27 22:26:48 +01:00
Uwe Bonnes 824a1d8abc hosted/find_debuggers: Do not check hubs. Print class of devices unable to open. 2020-11-27 22:26:48 +01:00
Uwe Bonnes e68dd25813 cl_utils: Clarify -d option is BMP/firmware only and deprecate -d. 2020-11-27 22:26:48 +01:00
Uwe Bonnes f71e18948a GPIO for SWD: Slow down edges on more platforms. 2020-11-27 22:26:48 +01:00
Uwe Bonnes 80154c5c7a adiv5_swdp: Fix more memory leak. 2020-11-27 22:26:48 +01:00
Noah Pendleton 35bcb4f7c6 Switch on the lpc546xx target
Enable the lpc546xx target. Tested on the LPCXpresso54628 dev board,
able to flash and debug.
2020-11-24 21:32:39 +01:00
Sean Cross e9c02296f2 target: kinetis: add S32K118
This adds support for the NXP S32K118. This is an automotive-grade part
that is derived from the Kinetis line, so it has a very similar
interface to other parts in the family.

Signed-off-by: Sean Cross <sean@xobs.io>
2020-11-14 13:06:23 +01:00
jbuonagurio f18be6ef7a Add support for Kinetis K12 and placeholders for other K-series MCUs 2020-11-07 12:44:05 +01:00
Uwe Bonnes 2c33cde63f cortexm.c/cortexm_halt_resume: Add some clock cycles to always get CPU going (#768) 2020-11-01 21:53:23 +01:00
Uwe Bonnes d75f3124b9 ftdi_bmp.c: Reapply fix from #715: Check for libftdi 1.5 2020-11-01 12:09:27 +01:00
Stoyan Shopov 99142d1c0e Add documentation details for building PC-hosted BMP in msys2. 2020-11-01 11:33:54 +01:00
Uwe Bonnes 1f7a716710 adiv5.c: Run cortexm_prepare on all suspected CortexM instances.
Gets all debug units of the second CPU of a STM32H745 visible.
2020-10-23 09:40:15 +02:00
Uwe Bonnes 18673d9a56 adiv5: Rework DP/AP refcounting.
ASAN non longer reports leaks with the STM32H745.
2020-10-23 09:40:15 +02:00
Uwe Bonnes f76a7c4e92 adiv5: Release devices after scan.
Before, scanning only kept device stopped until POR or attach/detach cycle.
2020-10-23 09:40:15 +02:00
Uwe Bonnes 73e6b540b2 command: When debug channel is available, print morse messages readable. 2020-10-23 09:40:15 +02:00
Uwe Bonnes 776861c6a0 Makefile: Fix version.h generation for make all_platforms
Same fix as 0ae65cc10f.
2020-10-23 09:40:15 +02:00
Uwe Bonnes 80ddafc2f8 Jtag/High Level : Transfer dp->dp_jd_index with every HL command.
- Add REMOTE_HL_VERSION, now at 1. Fall back to hosted/low-level
  when wrong version is found and give hint to user.
2020-10-23 09:40:15 +02:00
Uwe Bonnes 59dc1b7eb4 cortex-m7: Give hint about buggy core revision. 2020-10-23 09:40:15 +02:00
Uwe Bonnes 976c763747 jtag remote: Start fixing handling M0 (second jtag) for LPC4322 in high-level
- LPC11: Only print none-null unknown idcodes.
2020-10-23 09:40:15 +02:00
Uwe Bonnes 0995fe1288 cmsis-dap: Various fixes
- decrease report size to 64, otherwise MIMRXT10x0-EVK crashed when
  reading larger memory block
- dp_read_reg acts direct, fixing CortexM core register read.
- length of data to write with read_block.
2020-10-23 09:40:15 +02:00
Uwe Bonnes f15b1d7763 cl_utils: Clip opt_flash_start only when not set. 2020-10-23 09:40:15 +02:00
Uwe Bonnes c161521c26 cortexm: Designer ARM must be in the default path when probing. 2020-10-23 09:40:15 +02:00
Uwe Bonnes cdd07544d5 Cortexm: Allow pure debug on devices not yet handled for flashing
- Recognize STM32L552 and MIMXRT10XX
- Fix another PIDR
- Fix bad debug print string.
2020-10-23 09:40:15 +02:00
Uwe Bonnes 3270138ec2 Revert 69e577c9243ce027b628e96881ce2416213fef43
What was thought to be a typo is apsel = 0xff for a dp access.
2020-10-23 09:40:15 +02:00
Uwe Bonnes 77c4f9d702 stlink: Rework README.md
- Document flashing BMP Firmware and reverting to ST firmware
- Consistant nameing
2020-10-19 14:13:29 +02:00
Uwe Bonnes 9cd3193a89 bmp_remote.c: Fix bug introduced with 8b929c12c9. 2020-10-17 12:49:37 +02:00
Uwe Bonnes 0ffb4f7b18 cortexm: Fix protected SAM detection
- Only run cortex_prepare() if reading cidr fails
- With Atmel DSU detected, run cortexm_probe()
2020-10-17 12:49:37 +02:00
Uwe Bonnes 5bc743d221 samd: Propagate security after setting security by chip reset. 2020-10-17 12:49:37 +02:00
Uwe Bonnes 8b929c12c9 hosted/jtag: Transfer jtag_devs to firmware. 2020-10-16 20:03:03 +02:00
Uwe Bonnes 3d92b82678 jtag: Use index and not device structure for jtag_dev_write_ir and jtag_dev_shift_dr 2020-10-16 20:03:03 +02:00
Uwe Bonnes 6e2a074064 bmp_remote: Deny high level JTAG for now.
jtag_devs and jtag_dev_count needs to be known on th firmware side
and remote_dp->dev needs to be filled with jtag_dev_t.
2020-10-16 20:03:03 +02:00
Uwe Bonnes 0f5fb6b9a0 remote: Initialise dp_read and low_access with SWD_INIT.
Before "mon s" after "mon j" failed.
2020-10-16 20:03:03 +02:00
Uwe Bonnes 752d14ca3e remote.c: Add comments. 2020-10-16 20:03:03 +02:00
Uwe Bonnes ba26adce53 remote.h: Remove typo. 2020-10-16 20:03:03 +02:00
Uwe Bonnes 7ccf0d3e03 jtag_dev_t: Make dev, idcode and desc less generic.
No codechange intended.
2020-10-16 20:03:03 +02:00
Uwe Bonnes 87b546777a nrf51: Be more verbose about the protection status. 2020-10-16 12:16:33 +02:00
Richard Meadows 4108b649c2 stm32h7: Add support for new product lines
Add support for:
* STM32H7B3/B0/A3 (RM0455)
* STM32H723/33/25/35/30 (RM0468)

Successfully tested with:
* STM32H7A3ZIT (RM0455)
* STM32H747XIH (check for regressions)
2020-10-10 22:09:34 +02:00
UweBonnes 817c62d7fd
Merge pull request #507 from UweBonnes/cortexm_romtable
Cortexm romtable
2020-10-08 10:53:17 +02:00
Uwe Bonnes 877b4be8ee cortexm: Restrict probing by using the ap_designer.
More designers need to be observed and reported by users and added.
Request users to send needed data.
2020-10-07 20:12:35 +02:00
Uwe Bonnes 91d1ef8bf6 target/stm32: Use t->idcode with probe. 2020-10-07 20:12:35 +02:00
Uwe Bonnes 44bfb62715 Adiv5: Print Designer/Partno when device is not recognized
t->idcode is now 16 bit.
2020-10-07 20:12:35 +02:00
Uwe Bonnes c456fc7f61 adiv5: Store AP designer and partno in the AP structure. 2020-10-07 20:12:32 +02:00
Uwe Bonnes 159196c2ad Cortexm: Remove forced_halt. 2020-10-07 20:11:33 +02:00
Uwe Bonnes 9bb2807706 adiv5/romtable: Prepare CortexM devices to read the ROMTABLE
It seems, writing to DHCSR fails silent when the device is sleeping.
Reading DHCS during sleep may return nonsense.
Repeated write may at some point catch the device running and succeed.
With devices sleeping for long time and running on faster clock the
chance for a successful hotplug gets smaller.

- Try hard to halt a sleeping device
- Prepare vector catch and enable all debug units by TRACENA
- Release reset
- Apply device specific fixes
-- STM32F7: Store old value of DBGMCU_CR, enable debug in sleep in
   DBGMCU before reading PIDR and restore DBGMCU on detach.

Signed-off-by: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
2020-10-07 20:11:17 +02:00
David A. Aguirre Morales a254bc6308 Fix icdi usb error https://github.com/blacksphere/blackmagic/issues/740 https://github.com/blacksphere/blackmagic/pull/748 2020-10-07 18:08:04 +02:00
Uwe Bonnes ceaee2a11e hosted: Hint about BMPs in bootloader mode. 2020-10-07 17:12:22 +02:00
Gareth McMullin dc8924a2bc
stm32h7: Don't tc_printf from flash functions (#747)
* stm32h7: Don't tc_printf from flash functions

Receving an 'O' packet while flashing confuses GDB and then
weird stuff happens.

* Replace tc_printf with DEBUG_WARN
2020-10-05 10:45:18 +02:00
Uwe Bonnes 9bba3165fb swdptap: Turnaround immediate after a reading with parity.
Thanks to JojoS.
Probably mostly cosmetic, but is keeps the device from driving SWDIO
until the next commands.
2020-10-02 10:51:14 +02:00
Uwe Bonnes 4d18496a6f hosted: Allow to disable high level commands for BMP.
Useful for tracking low level problems on native with hosted.
2020-10-01 15:49:21 +02:00
Uwe Bonnes 014abf6cc9 adiv5.c: Reduce number of errors if reading cidr fails. 2020-10-01 15:33:28 +02:00
Uwe Bonnes be40d2b851 adiv5: Check Debug Base Address early
Reduces printout when scanning the romtable
2020-10-01 15:22:17 +02:00
Uwe Bonnes 747336e927 f4discovery: Slow done JTAG pin slew rate to avoid ringing #742 2020-10-01 15:06:16 +02:00
Eivind Alexander Bergem 38bc5bbf82 Add LPC546xx support #741 #553 2020-09-30 12:56:53 +02:00
Uwe Bonnes 2fdd94adeb STM32F7: Add another missing Arch ID. 2020-09-24 16:20:34 +02:00
Uwe Bonnes 0ae65cc10f src/Makefile: Fix version.h generation.
It seems, some git behaviour change got by unnoticed.
2020-09-22 19:02:26 +02:00
Uwe Bonnes 61d919c1ac libftdi: Remove no longer needed workaround for travis CI. 2020-09-20 14:10:37 +02:00
Uwe Bonnes 77231e8972 serial_no: Fix error with "mon trace" #732
launchpad-icdi: Allow to set a serial number with make
2020-09-20 13:23:52 +02:00
Uwe Bonnes bdb351a6ea adiv5_swdp: On ACK_FAULT, error() and try again once #731
when writing CSW.
2020-09-18 20:07:32 +02:00
jxltom a4a934f461 Add comments for hardware revision of v2.1 2020-09-17 11:54:19 +02:00
jxltom 75b5e72a00 Fix typo 2020-09-16 18:41:56 +02:00
Raghu de01a75ca9 Fix broken link to bluepill pinout. 2020-09-15 20:58:10 +02:00
Uwe Bonnes 6d18a61b2e hosted: Make ASAN build optional.
Use ASAN=1 on the make command line to activate,
2020-09-11 15:23:13 +02:00
Damien Merenne 120b3134bb Add SAM4SD32C/B support. 2020-09-07 17:36:15 +02:00
Uwe Bonnes 8289862b55 gdb: Reset flash_mode with when erase or flash fails.
Thanks to Dave Marples <dave@marples.net>, extracted from  #607
2020-09-04 15:17:29 +02:00
Uwe Bonnes 58281ec232 SWD Timing: Enhance SWD high time with low speed loss.
On F103 no high time < 80 ns and no low time < 100 ns was seen with a scope
2020-09-04 14:45:34 +02:00
Uwe Bonnes af3480e523 hosted: Update Readme.md 2020-09-04 11:49:13 +02:00
Uwe Bonnes 6650831243 ftdi: Get turtelizer (JTAG only FT2232D dongle) going
FT2232D seems to dislike "Set TCK/SK Divisor" or
"Set Data Bits Low Byte" as first command on a non-first run
- Add printout when garbage is found
- Add "Disconnect TDI to TDO for Loopback" as first MPSSE command
  (seemed to help!)
2020-09-04 11:49:13 +02:00
Uwe Bonnes 74b3baad1e ftdi_bmp : Another size fix and small rearrangement. 2020-09-04 11:49:13 +02:00
Uwe Bonnes aeb97466b9 libftdi: Automatically switch to JTAG if SWD is not possible. 2020-09-04 11:49:13 +02:00
Uwe Bonnes ae8cb8ab46 ftdi_bmp: Reject writes with no data.
Pending transfers made the MPSSE behaviour strange and unpredictable.
2020-09-04 11:49:13 +02:00
Uwe Bonnes c41ab1738e ftdi/swdptap: Use parity builtin. Fix array width. 2020-09-04 11:49:13 +02:00
Uwe Bonnes 34d0f8a2a1 ftdi: Recognize bitbang SWDIO settings. 2020-09-04 11:49:13 +02:00
Uwe Bonnes 6ac0a25123 ftdi: Add UM232H as probe. 2020-09-04 11:49:13 +02:00
Uwe Bonnes d73a6a3d29 platform/ftdi: Do not double initialize. 2020-09-04 11:49:13 +02:00
Uwe Bonnes f0b0639189 ftdi: Output wire debug. 2020-09-04 11:49:13 +02:00
Uwe Bonnes e95e5e3fba ftdijtag: Really enable TMS/TCK/TDI driver. 2020-09-04 11:49:13 +02:00
Uwe Bonnes f4eed249eb hosted/ftdi: Allow to list supported cables. 2020-09-04 11:49:13 +02:00
Uwe Bonnes 8a2bce26f2 Hosted: Fix memory leak when platform_swdptap_init fails. 2020-09-04 11:49:13 +02:00
Uwe Bonnes 7b497302c0 hosted/ftdi: Autodetect ftdi cables with distinguishing feature. 2020-09-04 11:49:13 +02:00
Uwe Bonnes a83e76bef9 libftdi: Add USBMATE. 2020-09-04 11:49:13 +02:00
Uwe Bonnes c78066255d libftdi: Infrastructure to test for target voltage present. 2020-09-04 11:49:13 +02:00
Uwe Bonnes aff624b6e0 libftfdi: Allow to specify external resistor SWD connection.
More explanations in src/platforms/hosted/Readme.md
2020-09-04 11:49:13 +02:00
Uwe Bonnes eabf45357d libftdi: Reinitialize pins when switching JTAG/SWD. 2020-09-04 11:49:13 +02:00
Uwe Bonnes 05534e9b49 libftdi/swdptap: Provide SWD using generic MPSSE if hardware allows. 2020-09-04 11:49:13 +02:00
Uwe Bonnes 40ba261982 libftdi: Use asynchronous transfers if header indicate newer libftdi1.
This is a hack to keep travis happy. Setting up travis to use a recent
libftdi1 is a major issue.
2020-09-04 11:49:13 +02:00
Uwe Bonnes 9b6e19785e Implement SRST for libftdi.
Travis GCC needs -Wno-missing-field-initializers or will otherwise warn.
2020-09-04 11:49:13 +02:00
Matthew Skolaut dea4be2539 Add ifdef to check for libftdi 1.5 to use ftdi_tcioflush instead of ftdi_usb_purge_buffers 2020-08-21 13:10:55 +02:00
Matthew Skolaut 7e1b0321e2 Cleanup Makefiles for hosted bmp on darwin 2020-08-21 11:28:17 +02:00
Matthew Skolaut 5908fc2da1 Add serial auto-connection to darwin target 2020-08-21 11:28:17 +02:00
Uwe Bonnes e75eb19d78 cmsis_dap: Detect CMSIS-DAP before STLINK
Debugger may be realized with the ST USB Vendor ID.
2020-08-16 15:20:58 +02:00
Uwe Bonnes 998a9747f8 cmsis_dap: Make some errors more prominent. 2020-08-16 15:20:58 +02:00
Uwe Bonnes c97c4a0960 hosted: Better decoding for ap_decode_access(). 2020-08-16 15:20:58 +02:00
Uwe Bonnes badff20099 cmsis_dap.c: Fix dap_dp_read_reg. 2020-08-16 15:20:58 +02:00