Commit Graph

53 Commits

Author SHA1 Message Date
Keir Fraser
419df4825a usb: Define new astable write region and use it to move NFA logic onto the host.
The write protocol handling is reworked on the firmware side.
2020-10-27 12:58:12 +00:00
Keir Fraser
0f78a93f66 Rename FLUXOP_NOFLUX -> FLUXOP_SPACE 2020-10-27 09:51:16 +00:00
Keir Fraser
e7062e3ad8 usb: Send periodic noflux opcodes during long periods of no flux.
This new no-flux opcode replaces the long-flux opcode:
 long-flux = no-flux + regular-flux
Also rearrange the code a bit to avoid repetition.
2020-10-21 12:38:46 +01:00
Keir Fraser
9b4b69da85 usb: Place index timings in-band within the flux read stream.
This removes the low limit on max index timings per read request.
2020-10-21 10:29:51 +01:00
Keir Fraser
73c3875252 Support F7 Lightniung Plus board. 2020-08-23 17:49:54 +01:00
Keir Fraser
b2939f5766 f7: Support new submodel: F7 Plus (Ant Goffart, version 2) 2020-06-29 11:34:08 +01:00
Keir Fraser
97eb1ca5ed F7: Support new F7 v2 board design. 2020-06-07 13:01:44 +01:00
Keir Fraser
8178531e2c f7: Clean up board-specific handling. 2020-05-28 14:10:54 +01:00
Keir Fraser
614278c168 F730Z8: Fix board init to initialise all unused pins and enable GPIOE clock.
Rename Ultra730 to F7 lightning
2020-05-27 14:06:04 +01:00
Keir Fraser
e87c5af441 Support new boards F7 Plus and Ultra730 in the firmware. 2020-05-22 13:11:10 +01:00
Keir Fraser
08ae2cb6c8 gw info: Report HW Submodel and USB transfer speed 2020-05-21 08:32:49 +01:00
Keir Fraser
fd2a04188e Allow Greaseweazle bootloader to be update (use with caution!) 2020-05-15 11:09:09 +01:00
Keir Fraser
d275982297 F7: Must enable over-drive mode to run reliably at 216MHz 2020-05-15 09:41:52 +01:00
Keir Fraser
2dd299393e f7: Extract board ID from pins PC15:13. Currently all three must float. 2020-05-05 10:21:17 +01:00
Keir Fraser
4109233ae3 Move cache operations into intrinsics/cortex files. 2020-05-04 14:14:49 +01:00
Keir Fraser
296567a7cf f7: Fix firmware update: The mode-switch flag must be flushed from DCache. 2020-05-04 14:01:20 +01:00
Keir Fraser
12028bdffe f7: Do not wait for write buffer to completely fill at Full Speed.
Now the buffer is 128kB, it takes ~150ms to fill it at FS.
2020-05-04 13:31:33 +01:00
Keir Fraser
93c5200a65 f7: Define new 'ext_ram' section to allocate data to SRAM1/SRAM2
Note that these areas are cached by the ARM CPU, and since the
cache does not automatically maintain coherency with DMA operations,
don't do DMA to or from ext_ram!!
2020-05-04 12:52:17 +01:00
Keir Fraser
4020223b2d f7: Enable data cache. 2020-05-04 10:35:22 +01:00
Keir Fraser
a17282486c f7: Enable instruction cache. 2020-05-04 09:58:08 +01:00
Keir Fraser
98b49d27be HS USB: Initial commit. 2020-05-03 13:10:52 +01:00
Keir Fraser
4435650f0a bandwidth: Calculate Min / Mean / Max bandwidth in each direction 2020-04-27 13:52:44 +01:00
Keir Fraser
73c3902dce bandwidth: New bandwidth measurement command
Currently measures only average bandwidth. We really care about
mimimum bandwidth, so adding that is a todo.
2020-04-27 10:56:32 +01:00
Keir Fraser
8799fda304 Introduce erase_flux command to erase a track.
Use this in 'gw write' to erase unformatted/empty tracks.
Remove the --adjust-speed option: We basically always want this.
2020-04-21 10:47:41 +01:00
Keir Fraser
773e9933dd floppy: Remove delayed-index option from WRITE_FLUX command.
We will deal with non-index write splice instead by writing more
than one full revolution, but starting at index always.
2020-04-21 10:37:52 +01:00
Keir Fraser
0bf525c3a5 gw.py reset: Reset to Power-On Defaults 2020-03-10 10:10:10 +00:00
Keir Fraser
88b3af0076 gw.py pin: Allow a pin to be manually set to specified level.
Fixes #20
2020-03-10 09:50:58 +00:00
Keir Fraser
8138aed409 usb: Use upper-case hex for serial string 2020-01-21 14:52:05 +00:00
Keir Fraser
b24ac5070b usb: Include 16-character serial string based on MCU unique device identifier. 2020-01-21 12:15:31 +00:00
Keir Fraser
f58c0fb761 Add drive letter (0,1,2,A,B) to gw.py read/write commands.
Allows use of multiple drives with new F7 GW hardware.
2020-01-17 12:25:46 +00:00
Keir Fraser
fec5d4c2df Activity LED (C13 on Blue Pill, B13 on F7 board):
1. Lit when a USB command is in progress.
2. Blinks when enumerated but idle in bootloader mode (200ms toggle)
2020-01-07 09:16:30 +00:00
Keir Fraser
e64bed3a24 STM32F7: Definitions for the HS PHYC and extra OTG HS bit defns. 2019-12-13 10:13:03 +00:00
Keir Fraser
1e578a767d STM32F7: Update Bootloader 2019-12-06 12:31:48 +00:00
Keir Fraser
9a1702abd3 STM32F7: Floppy Control 2019-12-06 09:42:03 +00:00
Keir Fraser
a2a4615d28 STM32F7: DWC OTG USB Controller 2019-12-06 09:41:59 +00:00
Keir Fraser
484257ea2f STM32F7: Debug console on USART1 2019-11-27 10:04:09 +00:00
Keir Fraser
37e49e1f82 STM32F7: Set up system clocks, PLLs, divisors, etc. 2019-11-26 16:03:01 +00:00
Keir Fraser
c5c81ce1ba STM32F7: Integrate into the build 2019-11-25 13:31:14 +00:00
Keir Fraser
bf52a100b1 STM32F7: Register definitions 2019-11-25 10:30:36 +00:00
Keir Fraser
2dc37fe3ec Remove double underscore prefix from __packed and __aligned() definitions.
It is polluting the GCC namespace and breaks the build with GCC v9.
2019-11-20 18:10:48 +00:00
Keir Fraser
07746e10e3 firmware: Fix strcmp() build on gcc-9.2.0
Thanks to Uffe Jakobsen!
2019-11-16 06:42:56 +00:00
Keir Fraser
602eb76a0a Fix compatibility with old bootloader versions 2019-11-11 12:32:07 +00:00
Keir Fraser
37c0a273bb floppy: Overhaul the USB command protocol a bit. 2019-11-08 16:54:58 +00:00
Keir Fraser
4c2f9213b8 floppy: Allow writes to be terminated at index, and allow index to be delayed. 2019-11-08 14:50:10 +00:00
Keir Fraser
b37c5ceaa3 floppy: Simplify the read protocol a bit. 2019-11-08 13:23:19 +00:00
Keir Fraser
a537b56420 blinky: Log serial, flash size, and ID codes.
Warn on non-zero ID code as STM10xx8/B is supposed to have an erratum.
2019-11-08 08:02:59 +00:00
Keir Fraser
4d235e8469 bootloader: Fix bootloader purgatory due to not enabling AFIO clock.
Also clean stuff up a bit.
2019-10-30 07:49:37 +00:00
Keir Fraser
0bf9567c22 Substantially simplify debug logging to serial 2019-10-29 12:25:21 +00:00
Keir Fraser
51178ae11d usb: Use magic baud rates as out-of-band commands to Greaseweazle.
Currently we use this to reste communications at script start.
Unlike send_break(), this works on Mac OS too (at least on Mojave)
2019-10-29 11:30:56 +00:00
Keir Fraser
ac588f09e0 Firmware Update Bootloader 2019-10-29 10:50:02 +00:00