Commit Graph

415 Commits

Author SHA1 Message Date
Uwe Bonnes 5a05cedd7d pc-hosted/jtagtap.c: Handle DO as bytes (PR #552)
Fixes #540/#542
2019-11-10 17:36:58 +01:00
Uwe Bonnes 76f9a6ad42 stm32: Portability changes. 2019-10-20 22:20:06 +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
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
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 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 afbde05cd3 Linker: Recent libopencm3 linker already sets the stack.
Thanks to Sid Price for noticing #520.
2019-09-23 22:48:21 +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 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
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 80a9fd51ca Clarify STM32F103x8 Flashsize handling.
Should finally fix #471.
2019-09-01 12:11:51 +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 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 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 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 b9249ca8a6 stlinkv2: Recognize V21_MSD, e.g. on STM32MP157C-DK2. 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 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 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
Sid Price 2108bb7137 Native Windows builds
All except hydrabus and launchpad-icdi building in PowerShell.
2019-04-07 10:26:45 -06: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
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
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
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
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 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
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
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
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
Adam Heinrich f5cac4c78d platforms/stm32: Ignore noise errors on USBUART 2018-01-13 21:11:17 +01:00
Gareth McMullin 9a5b31c37b Fix fallthrough warnings on gcc 7 2017-10-09 11:07:29 +13:00
Gareth McMullin f27f3bad5c libftdi: Fix tdi_tdo_seq result unpacking 2017-10-05 08:26:33 +13: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 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
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
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
Gareth McMullin b10971b19b Merge pull request #206 from UweBonnes/dfu-upload
Dfu upload
2017-04-27 10:07:37 -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 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 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 7ba2987a83 native: Fix macros for setting pin mode.
Fixes #184
2017-01-24 10:49:45 +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
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 a3c2592e44 Review feedback 2016-12-04 13:15:45 -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 7730d3b198 Don't enable usb uart on v2 when debugging 2016-11-22 12:45:59 +13: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
Piotr Esden-Tempski fdeb6471a8 Added missing #include guard. 2016-10-19 14:56:52 -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
Gareth McMullin 3abb4afdf6 Merge pull request #153 from gsmcmullin/restore_leds
Restore LED behaviour.
2016-10-05 10:37:36 -07:00
Gareth McMullin 966f360515 debug: Use semihosting if available or output via usbuart. 2016-09-29 21:31:13 -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 5832d8a42a Clean up common SWD stuff. 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 0480578391 stlink: New discovery boards support.
Patch from issue #103
2016-07-13 08:00:05 +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 20c994eece Added black magic verbose/debug mode switch. 2016-06-22 17:28:26 -07: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 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
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
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
Piotr Esden-Tempski c0c8bade6f [native] Make the native bootloader bit more flashy.
This change has also a practical reason. When flashing and testing the
hardware this change makes it easier to make sure all the LEDs work. Now
when the DFU bootloader is idle it is scanning the LEDs making it easy
to see if one of them has an issue.

In addition to that, the bootloader now indicates when there is data
being flashed using the DFU interface. In cases when one has more than
one device connected and accidently starts flashing a wrong device this
is very useful feature to have.
2016-02-14 23:47:57 -08:00
Piotr Esden-Tempski b7e5005679 [native] Check for hardware version by pull-up and -down. Print HW Version in mon command.
Until now the native hardware was pulling PB5-7 down and checking if
they were asserted high. BMPMV2b is pulling the pins down instead of
high. The hardware version routine now determines the hardware version
based on the fact if a pin is asserted at all. This means that if a pin
is left floating, the version number bit will be 0, and if the pin is
asserted either high or low the bit will be set to 1. While we were
already at it the "monitor version" command in GDB will now also print
the hardware version number.
2016-02-14 22:49:29 -08:00
Gareth McMullin 600f0d27d9 Use sniprintf on newlib platforms. 2015-11-11 12:41:13 -08:00
Antti Nykänen 3f9ea8250a Defined snprintf to sniprintf on launchpad-icdi 2015-10-22 19:33:45 +03:00
Antti Nykänen 2365bbe010 TI TM4C/LM4F cdc-acm fixes 2015-09-30 15:48:01 +03:00
Nicolas Schodet b60f5283ae Fix usage of USB_VBUS
USB_VBUS is not an alternate function, it is an additionnal function which is
always enabled.

If configured as an alternate function, it will draw current from VBUS.
2015-06-23 11:51:56 +02:00
Gareth McMullin 0fc635b3f8 Add functions for dynamically generating the XML memory map. 2015-04-03 21:18:16 -07:00
Gareth McMullin 482070c91b Merge branch 'v1.6-branch'
Conflicts:
	src/Makefile
	src/platforms/stlink/platform.h
	src/platforms/swlink/platform.h
2015-04-03 21:02:01 -07:00
Gareth McMullin 97824b7f02 Use git describe for version in generated header file. 2015-04-03 20:21:33 -07:00
Gareth McMullin 68f54a3545 Remove old platform specific error handling macros. 2015-03-22 14:06:56 -07:00
Gareth McMullin 5ab8564ff6 Clean up handling of lost targets using new exceptions mechanism. 2015-03-22 14:05:12 -07:00
Gareth McMullin 588bad34ba Build with -Os for swlink. 2015-03-22 12:26:45 -07:00
Gareth McMullin 9a8dbdeff7 Fix errors when building for non-native platforms. 2015-03-22 12:26:45 -07:00
Gareth McMullin fa046601a5 Add exception handling mechanism and raise exception on low-level comms failure. 2015-03-22 12:26:45 -07:00
Gareth McMullin f5f87bf70f Build for stlink with -Os. 2015-03-15 20:39:19 -07:00
Gareth McMullin 6f5b1873d7 Use size_t for sizes in flash functions. Fix all sign compare warnings. 2015-03-14 15:18:22 -07:00
Gareth McMullin f5c856af3b Fix pointer sign warnings and remove -Wno-pointer-sign. 2015-03-13 20:35:39 -07:00
Gareth McMullin 3d28c1418c Cleaned up printf/scanf for C99 integer types. 2015-03-11 20:47:42 -07:00
Gareth McMullin 4baa8aba4f cdcacm: Fix DCD for second ACM interface. 2015-03-11 20:13:38 -07:00
Gareth McMullin 7c1c19881f Reassert DCD after DTR is written. Fixes #41. 2015-03-11 05:45:43 -07:00
Gareth McMullin 0d99e22a26 Quieten build system. 2015-03-07 11:03:50 -08:00
Gareth McMullin 1eac78b1c8 Move targets to make bin and hex files to toplevel makefile. 2015-03-07 11:03:50 -08:00
Gareth McMullin 49390fee2a Fix Windows DFU instructions in the Hydrabus readme. 2015-03-04 20:22:19 -08:00
Benjamin Vernoux 9f0c29d329 Add support for HydraBus (tested with SWD with STM32F405 and SWD+JTAG with LPC4330 M0/M4) 2015-03-04 20:22:00 -08:00
Gareth McMullin c731c6ece3 Make F4 conditionals check STM32F4, not F4DISCOVERY. 2015-03-03 21:39:29 -08:00
Gareth McMullin 3e466f2d23 Factor out timing routines common to all STM32 targets. 2015-03-02 21:59:04 -08:00
Gareth McMullin b07ffffcee Factor out common cdcacm.c from stm32 and tm4c.
Cleaned up interface to enter bootloader and read serial number.
2015-03-02 10:16:33 -08:00
Gareth McMullin 4d4813de87 Clean up includes everywhere.
All source files include general.h first and before anything else.
This inlcludes platform.h and platform_support.h
No header file needs to include to include any of these, but should include
any others needed for it's own declarations.
2015-03-01 22:16:04 -08:00
Gareth McMullin 9d80641261 Move common platform include to a common directory. 2015-03-01 20:15:31 -08:00
Gareth McMullin 476f83b69a Move common USB stuff out of platform header files. 2015-02-28 22:48:26 -08:00
Gareth McMullin 5eff0ab5d6 Factor out common GPIO code in STM32 platforms. 2015-02-28 22:09:50 -08:00
Gareth McMullin 75001a4421 Factor Morse code functions out of platform code. 2015-02-28 22:05:10 -08:00
Gareth McMullin 5d136398e1 Use sensible return convention for platform_target_get_power() 2015-02-28 21:23:24 -08:00
Fredrik Ahlberg 346258934b Added support for TI TM4C123 Launchpad 2014-11-23 22:59:16 +01:00
Gareth McMullin fd9eef821e Revert USB double buffered OUT handling on STM32F1.
This introduced a bug where the endpoint can get stuck, forever sending NAK.
2014-10-16 13:50:56 -07:00
Gareth McMullin f85a8c4ebb Fix build for f4discovery by defining platform_hwversion(). 2014-10-16 13:50:56 -07:00
Gareth McMullin a5549d630c Whitespace cleanup. 2014-10-16 13:50:56 -07:00
Gareth McMullin 8a32b46f65 Fix build for non-native targets. 2014-08-08 20:22:33 +12:00
Gareth McMullin 84fc40085e Send a null packet on end of USB transfer if last data packet is full. 2014-08-06 12:38:57 +12:00
Gareth McMullin fad6eb3c14 Fix parity support on USB UART interface. 2014-07-30 19:57:18 +12:00
Gareth McMullin bfe5d1168b Merge pull request #47 from richardeoin/target-power
Added monitor option to toggle target power
2014-07-30 14:19:46 +12:00
Richard Eoin Meadows c1b1d45155 TRST only exists on hardware version 0 2014-05-28 12:45:21 +01:00
Richard Eoin Meadows 42e41edfa1 Target power option is only for versions > 0 2014-05-28 12:33:43 +01:00
Richard Eoin Meadows c9089f5851 Added monitor option to toggle target power 2014-05-28 12:25:48 +01:00
Richard Eoin Meadows 63bce97cbd PLATFORM_FATAL_ERRORs are now caught even when they happen in the
initial JTAG scan that occours during platform_init.

Previously any fatal errors that occoured during this scan caused a
hardfault.
2014-05-28 12:10:26 +01:00
Gareth McMullin 72ae78a185 Updated libopencm3. Fixes broken bootloader, issue #43. 2014-05-08 11:02:35 -07:00
Frantisek Burian 12aeaad441 [locm3] Use the new clock-enabling mechanisms in locm3. 2014-02-13 18:21:16 +01:00
Frantisek Burian 690e99c6b2 Fix the STK_CTRL to the STK_CSR library change. 2014-02-13 17:52:09 +01:00
bon@elektron.ikp.physik.tu-darmstadt.de 0c9d5d8166 Add dfu bootloader update application and use absolute delay for stlink
Hello,

appended 3 patches
- adds a dfu-bootloader appliaction
- uses absolute delays when waiting for pull-up delays on the STLINK
(hopefully fixes issue #30)

Updating the dfu-bootloader by additional application is helpfull for the
STLINK, as for flashing the bootloader by SWDb otherwise jumpers need to be
soldered or external SWD is not possible.
Use like:
- dfu-util -s 0x08002000:leave -D dfu_upgrade.bin
- dfu-util -s 0x08000000:leave -D blackmagic_dfu.bin
- Push reset buttom and reconnect to enter new dfu bootloader
- dfu-util -s 0x08002000:leave -D blackmagic.bin
--
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
>From fae5022c304a8866f056ea66660ac7ce3809dcf8 Mon Sep 17 00:00:00 2001
From: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Date: Sun, 20 Oct 2013 15:00:36 +0200
Subject: F1: Prepare to update dfu bootloader via DFU with additional
 application.
2014-01-24 04:59:09 +08:00
Frantisek Burian 8014d434de Update to the newest libopencm3 2014-01-04 17:29:54 +01:00
Gareth McMullin 8835df1822 Merge remote-tracking branch 'origin/usbuart_highrate' 2013-12-04 16:16:08 +13:00
Uwe Bonnes 09fbe783c5 f4discovery: Limit clock to 48 MHz and stack 24 kiByte so that code can be compiled unchanged for F401Discovery too.
TODO: Bump clk up to 84 MHz as soon as libopencm3 supports that speed.
2013-10-22 07:26:35 +08:00
Uwe Bonnes 5aa802969b stlink: Give the NRST check more time as otherwise some L1 discovery board stayed in the bootloader. 2013-10-22 07:18:09 +08:00
Michael Tharp c395c6f73a Configure SRST output as open-drain for BMP Mini hardware 2013-10-05 13:14:03 +08:00
Marc Singer 40820a2354 Added internal pull-up to PWR_BR.
o Prevent probe from inadvertently powering target.  If PWR_BR is
  allowed to float, the gate on Q1 (blackmagic_mini) will tend to be
  close enough to zero to turn the transistor on.  We activate the
  internal pull-up on this IO pin to force the transistor off.
2013-10-05 13:14:03 +08:00
BuFran e67192348f FIX: usbd_init compatibility fix
Updated compatibility with libopencm3 commit 113e5c22e6390ba072148315e83a5faa5ff7ce86
2013-10-05 12:23:23 +08:00
BuFran c28350f242 FIX: u{8,16,32} -> uint{8,16,32}_t to be compatible with new library
The use of u8, u16, u32 has been deprecated in libopencm3.
Update it with standard uint8_t, uint16_t, uint32_t types
2013-10-05 12:23:23 +08:00
Gareth McMullin 700833f38f Use do {...} while(0) for PLATFORM_FATAL_ERROR() macro. 2013-08-19 12:27:36 +12:00
Gareth McMullin 27a86e244f native: Enable hard SRST signal. 2013-06-19 19:21:49 +12:00
Gareth McMullin 8c877d6dfa Fix trailing whitespace everywhere. 2013-06-17 15:53:32 +12:00
Paul Fertser cdaed128c1 stlink: add support for SRST handling
This enables SRST signals in open drain mode for both stlinkv1 and
stlinkv2 hardware platforms.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2013-05-14 12:34:53 +12:00
Paul Fertser e0fc21a2a7 adiv5_swdp: allow to connect to a sleeping target by pulling SRST
This patch introduces a new command, "connect_srst [enable|disable]"
which allows to enable special mode in which SRST would be pulled low
before the SWD scan till attaching to a target.

Since on Cortex-Mx the SRST signal doesn't gate JTAG and SWD, it's
possible to connect to a target while holding reset, ask it to stop at
reset vector and only then deassert reset, thus allowing to attach to
the kind of firmware that goes immediately to sleep or disables
debugging by other means early on start.

Tested on an STM32VLDiscovery board with STM32F100 configured to go to
STOP mode and executing WFI in the very beginning of main().

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
2013-05-14 12:32:44 +12:00
Gareth McMullin e3f3171a33 usbuart: Fix build error and clean up whitespace. 2013-04-27 13:14:22 -07:00