Commit Graph

1596 Commits

Author SHA1 Message Date
Uwe Bonnes 98c92a6d18 hosted: Really fix the case of no serial number (#807) 2020-12-13 14:12:05 +01:00
Noah Pendleton 272a45df12 add src/artifacts to .gitignore
This folder is generated when running `make -C src all_platforms`. Add
it to ignored files.
Ignore .gdb_history too.
2020-12-12 21:40:17 +01:00
UweBonnes aa0d8f4b5d
Merge pull request #783 from UweBonnes/frequency
Frequency
2020-12-12 19:50:53 +01:00
Noah Pendleton 020600aa56 target/lpc546xx: fix lpc546xx flash support (#801)
**Summary**
Modifications to fix flash support on the lpc546xx:

- fix IAP entrypoint to be `0x03000204`, not the value at that address
- add a reset and attach sequence before erasing flash sectors. there's
little documentation around this, but experimentally, erasing sector 0
fails when the ROM bootloader is mapped to it (on reset). stepping the
chip once and attaching is enough to snap the chip out of it, permitting
flash erase on sector 0.
- add a few test commands to the lpc546xx table (read_uid, erase/write
sector, etc).
- write the magic CRC value when writing to sector 0
(`lpc_flash_write_magic_vect`).
- move the lpc546xx probe to before the lpc43xx probe, to prevent
getting the lpc546xx into Lockup when reading an illegal memory location
during lpc43xx probing

Fixes #786.

I don't 100% understand the reset/load sequence of this part, but these
changes are sufficient to program and debug the part now.

I didn't do a detailed analysis of what pyocd (via st-link hardware
adapter) and segger jlink do to handle the same, but both of those
worked without modification, so there's some difference in the
sequence they're using.

**Testing**
Verified I can now successfully erase and write an executable in sector
0 (and other sectors).
Verified the new commands work correctly.
2020-12-12 19:48:05 +01:00
Uwe Bonnes 6dbb5ff7ee Frequency: Implementing for jlink.
SWD frequency is fixed for jlink according to the docs from 2010.
2020-12-12 18:33:09 +01:00
Uwe Bonnes fdc654cfb3 stlink: Implementation of frequency setting. 2020-12-12 18:33:09 +01:00
Uwe Bonnes de26ba6f73 hosted: Add is_jtag to the info structure
Needed for different frequency setting procedures on some platforms.
2020-12-12 18:33:09 +01:00
Uwe Bonnes 28a966a3e6 frequency: Implement for ftdi.
For all 2232H types, use undivided 60 Mhz.
FIXME: Check FT2322C/D for unsymetric clock at 6 MHz!
2020-12-12 18:33:09 +01:00
Uwe Bonnes 13e8a262e4 SWJ Frequency: Implement for cmsis-dap 2020-12-12 18:33:09 +01:00
Uwe Bonnes 1ca9f234f7 Infrastructure for setting maximum SWJ frequency.
Implement for BMP/firmware on STM32.
2020-12-12 18:33:09 +01:00
Uwe Bonnes 7365a44989 hosted: Implement SWJ test mode (-T).
Continious read/write-back some core register as NOP operation to allow scope
measurement of SWJ timing.
2020-12-12 18:33:09 +01:00
Uwe Bonnes f796b774bd hosted: Fix info.serial if USB device has no serial number #807 2020-12-12 18:32:15 +01:00
Aaron Lindsay 518529a772 Support GD32E23x 2020-12-12 18:29:30 +01:00
Uwe Bonnes 14498decd9 HOSTED_BMP_ONLY/linux: Fix case when no serial device is connected #806 2020-12-12 15:06:26 +01:00
Noah Pendleton 93d4c65948 Fix building with newer GNU make(#804)
More recent versions of GNU make remove the `-` prefix from
`$(MAKEFLAGS)`, which breaks the build:

```bash
 # output truncated to interesting parts
> make -C src --trace all_platforms
set -e ;\
mkdir -p artifacts/v1.7.1-91-g98b4ec5 ;\
echo "<html><body><ul>" > artifacts/index.html ;\
for i in platforms/*/Makefile.inc ; do \
        ...\
        make w --trace --no-print-directory clean ;\
        make w --trace --no-print-directory;\
        ...\
done ;\
echo "</ul></body></html>" >> artifacts/index.html ;\
cp artifacts/*.bin artifacts/v1.7.1-91-g98b4ec5
Building for hardware platform: f4discovery
make[1]: *** No rule to make target 'w'.  Stop.
```

Per the
[documentation](https://www.gnu.org/software/make/manual/html_node/Options_002fRecursion.html),
there's no need to manually apply insert `$(MAKEFLAGS)`, it should be
automatically included when using `$(MAKE)` when recursing.

I tested on my machine (make 4.2.1) and a docker image based on
ubuntu:trusty (make 3.81), both behaved the same (directories were not
printed when recursing by default);
2020-12-12 14:39:52 +01:00
UweBonnes 3cec441833
Merge pull request #805 from UweBonnes/bmp_only
Provide a compile time option (HOSTED_BMP_ONLY=1) for easier compilation of hosted
2020-12-12 13:39:51 +01:00
Stoyan Shopov b5172cf6df Implement the 'find_debuggers()' function for hosted BMP on windows. 2020-12-11 18:36:48 +01:00
Stoyan Shopov 01f8628aed Bugfix in detecting BMP probes by usb serial number. 2020-12-11 18:36:48 +01:00
Stoyan Shopov 170fe0c368 Remove spurious comment. 2020-12-11 18:36:16 +01:00
Uwe Bonnes 4c5ce0b16a Hosted: Handle devices w/o serial number, e.g. GigaDevices GD-Link ARM/CMSIS-DAP 2020-12-11 18:36:16 +01:00
Uwe Bonnes 0f1fe9e438 hosted/linux: Find BMP devices without libusb. 2020-12-11 18:36:09 +01:00
Uwe Bonnes bd5f4c6ed5 hosted: Consolidate ident output. 2020-12-11 17:55:31 +01:00
Uwe Bonnes 0870b778c0 hosted: Allow to build without libusb, libftdi and hidapi with HOSTED_BMP_ONLY=1 2020-12-11 17:50:16 +01:00
Uwe Bonnes 32db38ecf2 hosted/libusb: Move platform.c libusb related functions to own file. 2020-12-11 17:35:43 +01:00
Uwe Bonnes 41788f923b ftdi/stlink/jlink: Provide dummy functions in the HOSTED_BMP_ONLY case
Do not allow multiple inclusion by not declaring the functions as static to
help keep code clean.
2020-12-11 17:31:25 +01:00
Uwe Bonnes 98b4ec58bc Update to recent libopencm3 to undo unwanted change. 2020-12-07 21:51:22 +01:00
Emilio Lopes 633c6a2e81 Recognize "J-Trace Cortex-M PRO V2" in hosted mode 2020-12-07 11:52:33 +01:00
Uwe Bonnes e65ee7124b stm32_mem: Handle utf8 for print and compare. 2020-12-06 15:18:08 +01:00
Uwe Bonnes 17dfec3572 dfu/cdcacm: Consolidate usage of ST vs BMP serial number. 2020-12-06 15:18:08 +01:00
Uwe Bonnes 5c7e0eedb0 command.c: Consolidate "mon version" output 2020-12-06 15:18:08 +01:00
Uwe Bonnes 07c3699225 version.h: Remove from platform.h files
- Consolidate ident string generation
- Recompile only needed files
2020-12-06 15:18:08 +01:00
Uwe Bonnes dd6aadc54d jtag: Add verbosity about devices found. 2020-12-06 15:18:08 +01:00
Uwe Bonnes 0a7bfd5923 dfu_f4: Fix sector_erase. 2020-12-06 15:18:08 +01:00
Stoyan Shopov e318f884bf Change the type of 'cortexm_wait_timeout' to unsigned.
It makes sense that the timeout value is unsigned, it also
resolves build errors on some platforms.
2020-12-04 11:44:50 +01:00
Stoyan Shopov c9a419e44b Correct loss of sync protocol error #787 2020-12-04 11:33:23 +01:00
mean e3fd12ebc6 gd32f1/f3 detection and ram/flash autoset 2020-12-03 11:16:47 +01:00
Jonathan Giles 575c25e570 Add support for STM32F1 clone with new AP_DESIGNER id 2020-12-01 10:23:16 +01:00
Uwe Bonnes 48a79ff9da adiv5: More checks for a sensible DPIDR. 2020-11-29 21:11:11 +01:00
Uwe Bonnes 752bc26536 adiv5: Fix memleak with duplicated base. 2020-11-29 21:11:11 +01:00
Uwe Bonnes acec489647 adiv5_jtagdp: Always set idcode. 2020-11-29 21:11:11 +01:00
Uwe Bonnes 9e1b7fdac0 jlink/swd_low_access: Fix data direction during response read phase. 2020-11-29 15:48:50 +01:00
Uwe Bonnes 8903026c14 jlink/swd: swd frequency is fixed, not need to set. 2020-11-29 15:48:50 +01:00
Uwe Bonnes f45c56af83 adiv5/swdp: Check early for valid DP idcode. 2020-11-29 15:48:50 +01:00
Uwe Bonnes 3b6432912d jlink: Catch another error with no target connected. 2020-11-29 15:48:50 +01:00
Uwe Bonnes 7df314e265 Firmware/Jlink: Fix double free when debug power-up fails (#780) 2020-11-29 15:48:50 +01:00
Uwe Bonnes e1329499de platform_adiv5_swdp_scan: Do not double free with early errors.
adiv5_dp_init() clean up itself if errors happen
2020-11-29 15:48:50 +01:00
Stefan Agner 77025d4b6b Make dfu-convert.py Python 3 capable 2020-11-29 15:45:08 +01:00
Uwe Bonnes bf548e92c0 swd: After write low_access, always append 8 clk to move data through SW-DP.
Especially needed when leaving the debugger or during debug unit power-up.

ARM Debug Interface Architecture Specification ADIv5.0 to ADIv5.2
tells to clock the data through SW-DP to either :
- immediate start a new transaction
- continue to drive idle cycles
- or clock at least 8 idle cycles

Implement last option to favour correctness over slight speed decrease

Implement only for adapters where we assemble the seq_out_parity in our code,
as on firmware, ftdi and jlink. Hopefully the high level adapters do it right.

Reverts 2c33cde63f and
cde7726b87
2020-11-27 22:26:48 +01:00
Uwe Bonnes 139e5d7e22 f4discovery: Compile time option to compile with ST bootloader
Just to keep things active. Prepare for F72 bootloader.
2020-11-27 22:26:48 +01:00
Uwe Bonnes 636bcee355 stlink/swlink: Remove the DFU upgrade utility.
Hopefully no old bootloaders are around. If otherwise, revert to last
commit before this and update the DFU bootloader.
2020-11-27 22:26:48 +01:00