Commit Graph

1133 Commits

Author SHA1 Message Date
Gwenhael Goavec-Merou f2c013daab spiFlash: added erase_and_prog method with vector of FlashDataSection 2025-12-17 20:05:11 +01:00
Gwenhael Goavec-Merou 4a593c258c spiFlash: moved BP status, unlock step into a dedicatedmethod 2025-12-17 20:05:11 +01:00
Gwenhael Goavec-Merou a7e4303563 spiFlash: bulk_erase method: allows BP bypass and printXX with a verbose level 2025-12-17 20:05:11 +01:00
Gwenhael Goavec-Merou e302bb6edc spiFlash: added FlashDataSection to handle bitstream per sections when gap or 0xff area are present 2025-12-17 20:05:11 +01:00
Gwenhael Goavec-Merou 7ed4954c91
Merge pull request #599 from zh522130/fix-analogic-high-freq-flash
anlogic: fix high frequency flash programming issue
2025-12-13 08:55:14 +01:00
zhangyh 4c17327a65 anlogic: fix high frequency flash programming issue 2025-12-12 04:14:14 +00:00
zhangyh ebf2f6fd80 efinix: Add header parsing and flash programming validation
Parse bitstream header to extract Mode, Width and Device fields.
Add validation for flash programming:
- Check device matches --fpga-part parameter
- Reject passive mode (only active mode supported for flash)

This prevents flashing incorrect bitstreams that would fail to boot.
2025-12-12 02:55:31 +00:00
Florent Kermarrec 206cbd68b7 src/gowin: Add support for GW5AT-15 (used on Sipeed Slogic16U3).
JTAG pinout on Sipeed Slogic16U3 is similar to Sipeed Tang Primier 20K JTAG pinout and
extension cable from Tang Primer 20K can be used.

./openFPGALoader -c digilent_hs2 --detect
empty
Jtag frequency : requested 6.00MHz    -> real 6.00MHz
index 0:
	idcode 0x1681b
	manufacturer Gowin
	family GW5AT
	model  GW5AT-15
	irlength 8
2025-12-10 10:57:18 +01:00
Gwenhael Goavec-Merou 432cdc2dd7 lattice: added SPI Flash access support for ECP3 family 2025-12-08 16:24:40 +01:00
Andrew E Wilson 648a4a833a basic PDI prog for Spartan Ultrascale+ 2025-10-23 06:44:19 +02:00
hennomann 617cd29dff
Update part.hpp to support Lattice LFE3-150EA device
This PR adds device ID support for the Lattice ECP3 LFE3-150EA.
Previously, only the LFE3-70E was supported.

We've tested the implementation and confirmed it works as expected.
We're happy to contribute to expanding ECP3 device support!
2025-10-02 11:32:19 +02:00
Gwenhael Goavec-Merou 8694b3c295 board: added HyVision PCIe OPT01 rev.F (Kintex7 xc7k70tfbg676) 2025-09-24 16:56:46 +02:00
Gwenhael Goavec-Merou 13cf0c59b9 xilinx: load_bridge: uses configBitstreamParser getFilename to print real name instead of theorical (with or without .gz) 2025-09-24 08:07:27 +02:00
Gwenhael Goavec-Merou 6935936a92 configBitstreamParser: added filename getter 2025-09-24 08:06:28 +02:00
Gwenhael Goavec-Merou 39b3ca5871 spiInterface: all methods: added a \n after command displayed (avoids unclear message when calee methods uses printxxx) 2025-09-24 08:06:06 +02:00
Gwenhael Goavec-Merou 6df4bce1fd xilinx: allows Flash write for Xilinx Spartan3 targets 2025-09-20 17:31:32 +02:00
Gwenhael Goavec-Merou e2c55f24c0 part: fixed cyclone III/IV/10 LP IDCODE (same code for all families) 2025-09-12 13:26:36 +02:00
Andy c102426b78
Add altera EP4CE30 (#584) 2025-09-08 08:34:37 +02:00
Patrick Urban cfddee3611
colognechip: add bulk erase + quad enable features and simplify spi_wait overload (#582)
* colognechip: add bulk erase + quad enable features and simplify spi_wait overload

* colognechip: remove unnecessary code in `set_quad_bit` and `bulk_erase_flash`
2025-09-03 16:26:16 +02:00
Gwenhael Goavec-Merou 501d37e351
Merge pull request #581 from pu-cc/at25ql321
spiFlashdb: add AT25QL321
2025-09-03 14:38:11 +02:00
Patrick Urban 41e4a93f80 spiFlashdb: add AT25QL321 2025-09-03 14:11:28 +02:00
Patrick Urban db64ec92cb spiFlash: mask RDSR_WIP instead of RDSR_WEL while waiting for completion 2025-09-03 13:55:31 +02:00
Gwenhael Goavec-Merou bdcdea9a2f cable: added altera usb blaster III variant 2025-08-27 18:26:17 +02:00
Gwenhael Goavec-Merou 46a0560927 display: std::endl -> \n 2025-08-26 17:51:31 +02:00
Gwenhael Goavec-Merou 850c3d74e0 progressBar: added eol for each progressBar update when no STDOUT_FILENO 2025-08-26 17:49:01 +02:00
Gwenhael Goavec-Merou 2580aed994 esp_usb_jtag: added support for https://github.com/espressif/esp-usb-bridge + small adjusts 2025-08-25 09:38:00 +02:00
Gwenhael Goavec-Merou c818641cae main: list_boards: print 'Undefined' when fpga_part or cable_name is empty 2025-08-07 11:00:49 +02:00
Gwenhael Goavec-Merou bc864100ff main: list_boards now displays fpga_part too 2025-08-07 09:53:28 +02:00
Denis Bodor c51c53ee33 Add Altera Cyclone 10 LP 10CL080 2025-07-28 13:27:06 +02:00
Gwenhael Goavec-Merou a53aedb137 gowin: added (undocumented) sequence to be performed when CRC Error bit is set 2025-07-20 10:23:19 +02:00
Gwenhael Goavec-Merou 388f0b4c90 spiFlashdb: added XTX XT25F32B-S chip 2025-07-20 09:32:12 +02:00
Gwenhael Goavec-Merou b99672b69e board: added ULX4M (DFU) 2025-07-19 09:45:04 +02:00
Patrick Urban 3b932dc542 colognechip: Simplify number of jtag bypass bits 2025-07-09 16:13:18 +02:00
Gwenhael Goavec-Merou 3b1a40b798 part.hpp: MAX10: only keep size+Single(S)/Dual-supply(D). Sort between single-supply and dual-supply 2025-07-04 07:28:05 +02:00
Gwenhael Goavec-Merou 4bd9840e46 altera: fix Wc99-designator 2025-07-02 07:17:17 +02:00
Gwenhael Goavec-Merou b2aa12b582 spiFlash, spiFlashdb: added global_lock flag and uses it instead of jedec_id (#566) 2025-06-30 18:26:22 +02:00
Yao Zi a1ea0c98fc cmsisDAP: Avoid memcpy() on possibly overlapping buffer
I observed strange cmsisDAP behavior when building openFPGALoader with
Clang/musl in release mode: CmsisDAP:display_info() shows the correct
hardware capability that supports JTAG,

	...
	firmware version : 0254
	hardware capabilities : 13
	SWO trace buffer size : NA
	...

but the detection of JTAG fails in the constructor with a strange
response sequence,

	Hardware cap 00 01 00
	JTAG init failed with: JTAG is not supported by the probe

With some digging, it's found that the CmsisDAP::xfer() method without
an instruction parameter may be called by the constructor with a rx_buff
pointer overlapping with _ll_buffer, for which memmove() instead of
memcpy() should be used. The behavior of memcpy() is undefined when dst
and src overlap.

Fixes: 53c5d35da6 ("add cmsis dap (hid) support")
Signed-off-by: Yao Zi <ziyao@disroot.org>
2025-06-28 11:53:25 +00:00
Gwenhael Goavec-Merou e3e93a394e main: SPI mode without board: check file_size (must be > 0) 2025-06-25 19:21:46 +02:00
Gwenhael Goavec-Merou dd3204a6e0 main, board: added --pins argument compatible with SPI mode 2025-06-25 19:10:13 +02:00
Gwenhael Goavec-Merou 319c08e841 latticeSSPI: uses registers struct for status 2025-06-19 09:51:44 +02:00
Gwenhael Goavec-Merou dede406ebc latticeSSPI: ECP5 driver for Slave SPI mode 2025-06-19 08:34:29 +02:00
Gwenhael Goavec-Merou 21d4fccf28 altera,libusb_ll,mcsParser: fix some compiler's warnings 2025-06-19 08:30:35 +02:00
Gwenhael Goavec-Merou 803bdfecce altera: MAX10: added --flash-sector support with arbitrary binary file 2025-06-18 18:57:26 +02:00
Gwenhael Goavec-Merou 775477ba8e part: added Lattice ECP3 LFE3-70E 2025-06-18 16:20:32 +02:00
Gwenhael Goavec-Merou a7b56c3732 lattice: added ECP3 family support (SRAM only) 2025-06-18 16:20:23 +02:00
Gwenhael Goavec-Merou 098cdd466a jtag: allows caller to specify tdi level in toggleClk method 2025-06-18 10:01:16 +02:00
José Miguel Sánchez García 3723bf7571 Add cable support for ARM-USB-TINY-H based off ARM-USB-OCD-H 2025-06-10 21:54:54 +02:00
Gwenhael Goavec-Merou 347088efb4 ice40: Reuses prepare_flash_access/post_flash_access as much as possible. Removed dupplicated Flash dump informations. Be coherent to status message 2025-06-08 07:20:00 +02:00
Gwenhael Goavec-Merou 2e1c7e29a4 spiFlash: cosmetic 'Read flash ' -> 'Reading' (#558) 2025-06-08 07:01:14 +02:00
Gwenhael Goavec-Merou 765ed526e3 spiFlash: dump: honour _verbose level 2025-06-04 21:38:00 +02:00