Skip to content

Releases: trabucayre/openFPGALoader

nightly

30 Dec 10:03

Choose a tag to compare

nightly Pre-release
Pre-release
jtag.cpp: ENABLE_ESP_USB_JTAG -> ENABLE_ESP_USB

v1.0.0 release

12 Sep 14:05

Choose a tag to compare

Evolution summary:

core

new

  • common: added function to split a string to a vector by using a delimiter
  • jtag: added method to retrieves number of devices in the JTAG chain
  • main: added detect_flash in SPI Mode and with a manufacturer
  • 99-openfpgaloader.rules: added entry for ULX3S/ULX4M (DFU mode)
  • 99-openfpgaloader.rules: update
  • 99-openfpgaloader.rules: added rule for ESP32S3
  • README.md: added list of sponsors (hardware/boards and/or features funder)

update

  • jtag: allows caller to specify tdi level in toggleClk method
  • ci: add ubuntu 24
  • main: list_boards now displays fpga_part too
  • main: list_boards: print 'Undefined' when fpga_part or cable_name is empty
  • main, board: added --pins argument compatible with SPI mode
  • progressBar: added eol for each progressBar update when no STDOUT_FILENO
  • display: std::endl -> \n
  • device: added verbose_level attribute

fix

  • fix: update version to patch with the release
  • fix to have an happy CI
  • CI: Removed ubuntu-20.02 build/test
  • make ENABLE_OPTIM non effective for Debug builds configuration
  • Fix snprintf usage
  • main: SPI mode without board: check file_size (must be > 0)
  • .github/workflows/Test.yml: fixed CI with windows
    (msys2/setup-msys2 master looks broken)

board

new

  • Add support for Numatolab Neso board. Programming SRAM over USB works, when
    board jumpers are set for JTAG programming mode. SPI flashing does not work
    properly (does not boot).
  • Add icepi zero to board.hpp
  • Add support for Digilent Anvyl, the Big Red Board.
  • board, efinix: added SPI variant for efinix t20 BGA256 board
  • board: added ULX4M (DFU)
  • Adding support for Open Source SDR Lab Kintex-7 325t FPGA PCIE Development Board
  • Added alinx_ax7203 and alinx_ax7201 boards
  • Added STEP-MAX10 V1 support.
  • Added STEP-MXO2_V2 board support.
  • Add support for MILIANKE-S200-EG4D20 and update document

update

  • kcu105: add fpga package in description
  • kcu105: add secondary qspi detection and dump

cable

new

  • esp_usb_jtag: new cable
    • copy dirtyjtag to esp_usb_jtag, it compiles
    • copy protocol definiton, defines and private data/struct from openocd
      esp_usb_jtag.c
    • ulx3s_esp board with esp32s3 cable
    • esp_usb_jtag specify usb vid:pid in jtag.cpp
    • hardcode usb interface and endpoints
    • getting caps
    • set chip id (not applicable for fpga)
    • tms write done, untested
    • cleanup and toggle clk
    • 32bit counting
    • setting divisor (todo read base freq)
    • div range within 1-255
    • base speed from descriptor
    • fix doc typo with swapped tms/tdi some cleanup but it doesn't work.
  • adds GCM board type and FT4232H interface B cable
  • anlogicCable: Fix wrong ANLOGICCABLE_VIDv1
  • libgpiodJtagBitbang: add support for XVC server
  • Add cable support for ARM-USB-TINY-H based off ARM-USB-OCD-H
  • cable: added Altera USB Blaster III (missing link in doc)

update

  • anlogicCable: refresh with new VID
  • anlogicCable: added pinout + link
  • ftdispi: ft2232_spi_wr_and_rd: improved error messages
  • dirtyJtag: added SRST/TRST values. Added method to read/set GPIOs level
  • esp_usb_jtag: improves
    • esp_usb_jtag: added xfer method to handle/simplify libusb_bulk_transfer calls
    • src/esp_usb_jtag.cpp: simplify some operations
    • src/esp_usb_jtag.cpp: writeTDI: fixed rx buffer index, added a basic code
      to handle end transaction
    • src/esp_usb_jtag.cpp: writeTMS: store and uses _tdi & _tms
    • src/esp_usb_jtag.cpp: toggleClock: re-uses _tdi/_tms
    • src/esp_usb_jtag.cpp: writeTDI: ditto
    • esp_usb_jtag: fixed verbosity level/be more quiet
    • esp_usb_jtag: fixed writeTDI with end and tms transition: now integrated
      instead of distinct sequence. Fixed TDI value with tms transition. Working with ECP5
    • esp_usb_jtag: added optional parameter to lower timeout error (useful when
      it's time to flush the device)
  • esp_usb_jtag: added support for espressif esp-usb-bridge firmware
  • esp_usb_jtag: added reference to esp32s3-jtag repository
  • libusb_ll/scan: improved display by align column according to max size (#549)
  • cmsisDAP: Avoid memcpy() on possibly overlapping buffer
  • Update ch347jtag.cpp

fix

  • anlogicCable: fixed typo
  • ftdispi: lowlevel init/MPSSE configuration before pins manipulation (issue #519)
  • ftdispi: ft2232_spi_wr_and_rd: use dedicated buffer for MPSSE command to
    avoid overflow. Simplify code, improve error message (issue #524 and
  • ftdispi: fixed ft2232_spi_wr_and_rd: buffer is empty when transaction is read-only
  • esp_usb_jtag: fixed writeTDI when tx is NULL
  • libusb_ll: probe type -> probe_type
  • xvc_server: Make thread exit cleanly (#526)
  • libusb_ll,ftdipp_mpsse: Bus and Device must be both == 0 to use filter or uses VID/PID

part

new

  • Altera Cyclone 10 LP 10CL080
  • Altera Max10 10M02SCM153C8G
  • Altera Cyclone IV EP4CE30
  • Xilinx: xc7s75
  • Xilinx: Artix A7 15t
  • Xilinx: xc7k480t
  • Xilinx: xc7a50tcsg325
  • Xilinx: xcau15p (xcau15p_ffvb676) support (#547)
  • Lattice: added ECP3 family support (SRAM only)
  • latticeSSPI: ECP5 driver for Slave SPI mode
  • Lattice ECP3 LFE3-70E
  • Gowin: Arora V GW5AT-60 Variant

update

  • Altera: MAX10: added pgm_success_addr/done_bit_addr
  • Altera: MAX10 fully rework POF to internal flash mapping, added UFM write and note related to internal flash sections vs POF UFM/CFM sections
  • Altera: cosmetic/linter
  • Altera: added internal flash dump support for MAX10 devices
  • Altera: MAX10: added --flash-sector support with arbitrary binary file
  • Altera: MAX10: only keep size+Single(S)/Dual-supply(D). Sort between single-supply and dual-supply
  • Altera: added sectors erase and UFM write
    • updated max10_mem_t to have sectors erase addresses
    • updated max10_flow_erase to perform a full erase or sectors per sectors
    • added a dedicated method to perform UFM erase and write without full internal flash erase and with arbitrary file instead of POF
  • Colognechip: added a workaround to drive reset pin with DirtyJTAG cable (requires a recent DirtyJTAG firmware)
  • Colognechip: Simplify number of jtag bypass bits
  • Colognechip: remove unnecessary code in set_quad_bit and
    bulk_erase_flash
  • Colognechip: add bulk erase + quad enable features and simplify
    spi_wait overload
  • Gowin: Improved eraseSRAM/SPI Flash prepare for Arora V devices
  • Gowin: added (undocumented) sequence to be performed when CRC Error bit is set
  • LatticeSSPI: uses registers struct for status

fix

  • Altera: max10_program: respect _verbose variable
  • Altera: max_10 -> max10
  • Altera: fixed UFM: MAX10 memory is in reverse order, UFM1 is BEFORE UFM0
  • Altera: added max10_mem_t in max10_memory_map for 10M16SA Max10 variant
  • Altera: uses --flash-sector to only update a subset of internal flash sectors
  • Altera: fix Wc99-designator
  • Altera,libusb_ll,mcsParser: fix some compiler's warnings
  • Altera: fixed cyclone III/IV/10 LP IDCODE (same code for all
    families)
  • Colognechip: performs reset after SPI Flash write
  • Efinix: programJTAG. Fixed IDCODE read 4 -> 32 (issue #520)
  • Gowin: Arora V: fix SRAM erase/load when flash is blank and timeout bit is set
  • Gowin: Fix compilation on musl
  • Lattice: Fix incompatibility with Lattice FPGA
  • Lattice ice40: added detect_flash support
  • Lattice ice40: uses verbose_level for SPIFlash instead of verbose/quiet (#555)
  • Lattice ice40: Reuses prepare_flash_access/post_flash_access as much as possible. Removed dupplicated Flash dump informations. Be coherent to status message
  • Xilinx: adapted code to support existing spiOverJtag bitstreams (v1) and new bitstreams (v2)

files

update

  • pofParser: added flag 0x13 parsing with usercode extract
  • pofParser: flag 0x11: added unknown section when verbose
  • pofParser: getData/getLength: check if section exists: return data/length or null/-1
  • pofParser: parseHeader: better message + note
  • pofParser: displayHeader: improve messages
  • ihexParser: added type 04 (Extented Linear Address Record) and 05 (Start Linear Address Record)
  • mcsParser: _bit_length/buffer size / addr sanity check
  • mcsParser: check if _bit_data size is not larger than bitstream

fix

  • pofParser: honour CFM1/CFM2 data pointer
  • mcsParser: fixed warnings

spiFlash

new

  • added 1.35v csg325 build and Macronix flash
  • Added support for Everspin MRAM (EM008LX, EM016LX, EM032LX and EM064LX)
  • spiFlash, spiFlashdb: added global_lock flag and uses it instead of jedec_id (#566)
  • Added support for MX25L25645G FLASH memory
  • spiFlashdb: added XTX XT25F32B-S chip
  • spiFlashdb: add AT25QL321

update

  • spiFlash: only uses spi_put with distinct cmd parameter
  • spiFlashdb.hpp: disables quad mode configuration for all N25Q. It's useless
    because the chip is able by default to support single and quad transaction and
    after this configuration the flash is unable to works in single mode.
  • spiFlash: dump: honour _verbose level

fix

  • spiFlash: cosmetic 'Read flash ' -> 'Reading' (#558)
  • spiFlash: mask RDSR_WIP instead of RDSR_WEL while waiting
    for completion

spiOverJtag

new

  • spiOverJtag: introduce a new spiOverJtag (v2) core able to work with complex JTAG chain
  • spiOverJtag: add xc7s75fgga676

update

  • spiOverJtag: reworks Artix and Spartan 7 approach: For a specific FPGA size,
    pins name is only a matter of package, internally physical pads are the
    same: a unique bitstream per size is necessary. This also simplify build.py
    by removing complexity to extract model, size and package.
  • spiOverJtag/build.py: added default value for model variable
  • spiOverJtag/.gitignore: ignore vivado files

doc

new

  • doc/guide/install.rst: udev rules instructions under GuixSystem.
  • doc/FPGAs.yml: added Gowin Arora V GW5AT-60 Variant. Reorganized Gowin section
  • doc/boar...
Read more

v0.13.1 release

31 Dec 21:03

Choose a tag to compare

Evolution summary:

Core

Fix

  • CMakeLists.txt: fix release number

Contributors

v0.13.0 release

31 Dec 17:50

Choose a tag to compare

Evolution summary:

core

new

  • main: In help output, show how to detect flash
  • main: add 'user-flash' CLI argument

update

  • main: added default value for user_flash in struct arguments args
  • CMakeLists.txt: switch prio between hidapi-libusb and hidapi-hidraw: fix issue on WSL2 with cmsisdap (#413)

fix

  • main,spiFlash,xilinx: fix warnings

board

new

  • KNJN Dragon-L PCI Express & HDMI FPGA board (Spartan6 xc6slx25tcsg324)
  • Numato Systems Mimas A7 board.
  • Zetta ZD25WQ16CSIGT
  • Add support for VCU108 board and Virtex UltraScale
  • AMD Virtex 7 FPGA VC709 Connectivity Kit Board
  • CERN SPEC45 support
  • lilygo-t-fpga board (based on gwu2x #434)
  • Trenz cyc5000

cable

new

  • configBitstreamParser: added static method to switch bits for 32bits value
  • libusb_ll: rework. Splitted scan method -> help futur dev with a common code to detect/select usb devices
  • Gowin GWU2X USB (JTAG mode) (#434)

update

  • libgpiodJtagBitbang: simplify code by using less structures

part

new

  • Altera Max II EPM240T100C5N Board
  • Altera Update Max II and Cyclone II documentation (#493)
  • Altera Cyclone II
  • Altera MAX10M40SCE144C8G
  • Altera Max10 10M16SAU169C8G support (Used by LimeSDR Mini V1).
  • Altera EP4CE6E22 and EP4CE10F17
  • Altera EP4CGX150
  • Altera Stratix V GS D5
  • Efinix Titanium Ti180
  • Gowin: GW1N9 detection
  • Gowin GW2A-55
  • Xilinx spartan6 LX25T (xc6slx25T)
  • Xilinx xc7vx690t
  • Xilinx XC2C64A-xVQ44 with ID 0x06e5e093 (#458)
  • Xilinx xc2c64a QFN48
  • Xilinx adding support for the xc7z030
  • Xilinx xc6slx45t
  • Xilinx Spartan7 xc7s6 variant
  • Xilinx xcau15p.

part driver

  • Altera: first draft to have a native support for max10 family (only internal flash with POF file)
  • Efinix: add support for flash detect and flash dump in SoJ mode
  • Efinix: do not allow untested detect_flash() non-SoJ path until someone tries it out for sure
  • Gowin: Implement user flash programming for GW1N9
  • Gowin: added detect_flash/erase_flash for gw2a FPGAs
  • Gowin: Use std::unique_ptr instead of manual RAII
  • Lattice: added support for reset method (only tested with ECP5
  • Xilinx: added WBSTAR & BOOTSTS register read/decode. Fixed dec/hex format and padding
  • Xilinx: added readback access to registers (stat, conf, ...)
  • Xilinx: Add XADC reads of VCC registers

update

  • programSPI return type void -> bool
  • programJTAG return type void -> bool
  • program: thow exception when something fails
  • Xilinx: replaced reverseWord by configBitstreamParser::reverse_32

fix

  • Xilinx: fix read_dna and read_xadc typo
  • fixed warning in read_registers

spiFlash

new

  • added M25P32 chip
  • added IS25LP256D chip support
  • added TI M25P80 (0x202014)
  • added some flash's datasheet link
  • added quad bit mask and corresponding register
  • added configuration/nonvolatile configuration register for spansion and micron SPI Flash
  • added quad support for S125FL
  • added method to enable/disable Quad mode support
  • added MX25L enable/disable quad + display status register
  • added S25FL128S display register
  • core,xilinx,device: added option/methods to enable/disable quad mode on SPI Flash
  • all devices / spiInterface / main: added method / infra to detect flash chip with --detect -f

update

  • added ask before writting TB when OTP, added missing write_enable and fixed mask
  • enable_protection/disable_protection: uses mask to only deal by bp
  • read_id: display jedec ID. display_status_reg small fixes
  • display_status_reg simplify again
  • added get_bp_mask to return default bp mask (unknown device) or compute mask based on bp_offset. Replace all manual mask compute. (#468)
  • reorder entries, reformat

fix

  • removed unused variable (#468)
  • 0x0000 is not a valid jedec id

spiOverJtag

new

  • added basic efinix build script (WIP)
  • Xilinx spartan7 xc7s6ftgb196 bitstream
  • Xilinx Spartan6 xc6slx25csg324
  • Xilinx Spartan6 model: 25T package: CSG324 (xc6slx25tcsg324)
  • Xilinx Spartan6 xc6slx45tfgg48 support
  • Xilinx Artix xc7a200tfbg676 support (tested on hardware).
  • Xilinx support and bitstreams for xcku040 and xcku060
  • Efinix Titanium Ti180J484
  • Efinix Trion t13f256 SPI flash support

doc

new

  • Efinix Titanium Ti180
  • add flash compatibility for Xilinx Kintex UltraScale. Tested on KCU105 primary qspi.
  • install.rst: instructions to install under Guix
  • Gowin GW2A-55
  • Xilinx xc6slx45t
  • Xilinx xcau25p

update

  • help output
  • install.rst

Contributors

v0.12.1 release

23 Mar 17:31

Choose a tag to compare

Evolution summary:

part

fix

  • lattice,xilinx: fix uint64_t print format: lld -> PRIx64
  • gatemate: fix unintended gpio access with dirtyJtag cables
  • gatemate: remove flash reset, power_up and read_id duplicates
  • gatemate: fix CFG_MD typos
  • gatemate: fix passive spi segfaults and improve verbosity
  • gatemate: fix jtag-spi-bypass with dirtyJtag

spiFlash

new

  • MX25R6435F

fix

  • spiFlashdb: MX25R6435F: added missing bp bit 4
  • SPIFlash::bp_to_len

Contributors

v0.12.0 release

09 Mar 09:28

Choose a tag to compare

Evolution summary:

core

new

  • CMake: bump the minimal required version to 3.5
  • Add WebAssembly support.
  • ftdiJtagMPSSE,jtag,jtagInterface: allows to force read/write edge configuration (useful to mimic SPI through JTAG)
  • ftdiJtagMPSSE,jtagInterface: {set|get}{Read|Write}Edge signature
  • Add user device list for non-fpga JTAG devices

update

  • jtag: rework detectChain: try unmasked idcode first
  • jtag: update JTAG chain detect
  • jtag: move JTAG chain bit init to device_select()

fix

  • jtag: shiftDR: (fix daisy chain) when more than one FPGA, a sequence of '0' before and/or after must be sent instead of '1' (fix #189 and #133
  • jtag: fix state machine (issue introduce by commit 9e91c3)
  • make IDCODE unsigned
  • macos workflow
  • drop mingw w32

board

new

  • Gaisler gr740-mini
  • QMTECH cyclone10 LP starter kit (10CL016YU484C8G)
  • @lambdaconcept ecpix5_r03 (ft4232)
  • SiPEED tang Primer 25K
  • SiPEED tang Mega 138K
  • Digilent cmoda7_15t
  • ALINX AX7102 board.
  • ALINX AX7101 board.
  • Avnet Mini-ITX
  • pynq-z1 board
  • Cern VEC_V6 Board
  • Cern VMM3 board
  • Antmicro DDR4 Tester board
  • Antmicro DDR5 Tester board
  • Antmicro LPDDR4 Tester board
  • trion_t20_bga256_jtag support
  • Xilinx KCU105 (Kintex Ultrascale xcku040)
  • AMD Virtex UltraScale+ FPGA VCU1525 Acceleration Development Kit
  • Add GD32VF103 to misc devices
  • Trenz TE0712-8 Board (XC7A200TFBG484)
  • Trenz TEC0330 board
  • Olimex GateMate A1 EVB

update

  • Lattice: nexus boards: change from CABLE_DEFAULT (i.e. 6MHz) to CABLE_MHZ(1) (i.e. 1MHz) as at 6MHz the download of bitstreams is not stable.

files

new

  • fsParser: adding GW5A-25 IDCODE
  • latticeBitParser: add support for loading Lattice (Nexus) encrypted bitstreams, by adding key and preamble of encrypted bitstreams to if statements.
  • latticeBitParser: add ECP3 VERIFY ID support (avoid to fail with bitstream)

cable

new

  • FTDI FT4232HP mapping
  • efinix jtag ft2232 variant
  • Add faulty MPSEE cmd 8E workaround

update

  • drop div_by_5 to allow 2.5MHz clock
  • Make CH347 driver faster Speed up toggleClk
  • update CH347 (#424)
  • xvc client: ensure send() entire buffer
  • xvc client: handle failed ll_write()
  • all jtag cable: no more hardcoding tdi bit with writeTMS

fix

  • DFU: fix code to accept tinyDFU implementation (where not altsettings have an DFU descriptor)
  • svf_jtag: fix -Wmismatched-new-delete delete -> delete[]

part

new

  • main: allows mcufw only mode for gowin
  • Lattice: Add all MachXO[23] part IDs
  • Lattice: improve info about "BSE Error Code" from Device Status Register
  • Lattice: machXO3: re-add partially revision
  • Gowin: add known ID codes for GW5 series
  • Gowin: add preliminary support for GW5AST-138
  • Gowin: GW5A SPI flash support
  • Gowin: Fix status register parse for GW5AST
  • Gowin: avoid multiple status register access
  • Gowin: Fix clk cycle after sending a command, don't read status register programSRAM sequence
  • Gowin: mcufw may be written without fs (but this erase all memory)
  • Gowin: detectFamily new function
  • Xilinx: add jtag->flush before sleep
  • Xilinx: Add Kintex Ultrascale+ KU3P ID-Code.
  • Xilinx: xczu17eg. It's tested on xczu17eg board with Digilent HS3 at 30Mbps.
  • Xilinx: XADC and DNA for Xilinx FPGA (#407)
  • Xilinx: xcku115 to parts list (#394)
  • Xilinx: Add remaining ZynqMP IDs
  • Xilinx: Add xc7k70t and small fixes for xc7k160t
  • Xilinx: Virtex 7 xc7vx330t

update

  • part: Add separator for each chip family.
  • part: Reorder families (older first, smaller first) and minor alignment cleanups.
  • part: Add separator for each vendor.
  • Altera/Intel: update idcode (same idcode for III/IV/10 LP)
  • Lattice: 0x012bc043 is for LCMXO2-4000HC
  • Lattice: restore bypass instruction in clearSRAM()
  • Lattice: spi_put: avoid loop when tx == NULL
  • Lattice: programming and add nexus boards
  • Gowin: GW5A/SPI flash: adding delay after erase flash and after SPI mode instruction. Seems fixed write error.
  • Gowin: displayReadReg update. Now GW5A field are correctly displayed
  • Gowin: Rewrite algorithms
  • Xilinx: Fix XC2 ident.

fix

  • Altera,Efinix,Gowin,Xilinx: Fix 'Flash SRAM' -> 'Load SRAM'
  • Gowin: fix flash erase for GW1NSR-4C: during shiftDR sequence TDI MUST be 0x0000
  • Gowin: writeFLASH: increase delay before CRC check (required for 9K device)
  • Gowin: try second eraseSRAM before writeSRAM. Not always working but better...
  • Gowin: GW5AST work around
  • Gowin: programFlash/writeFlash: disable previous rewrite (fix write with tangnano4k)
  • Gowin: fix gw1n external flash access
  • CologneChip: gatemate: do not call ftdi-related routines when using alternative cables
  • CologneChip: gatemate: fix configuration in jtag chains
  • CologneChip: gatemate: use more suitable change to RUN_TEST_IDLE state
  • Lattice: nexus family: REFRESH (plus config logic reset) in case of fpga in error state and add capabilities to handle the whole 64-bits status register
  • Lattice: fix bscan width and other minor things for NEXUS family
  • Lattice: fix the warning "left shift count >= width of type" shown in win32/64 builds
  • Lattice: fix bscan register initialization inside clearSRAM()
  • Lattice: correct mask for sram erase for NEXUS_FAMILY, as it is 0x00
  • Fix SRAM loading on invalid flash

spiFlash

new

  • Macronix MX25L51245G (CertusPro Versa board and gr740-mini)
  • Micron MT25/N25Q128_1_8V (Lattice Certus Versa and CertusPro eval boards) and distinguish between N25Q128 1.8V and 3V memories
  • S25FL128L flash
  • Macronix MX25L3233F used on Cmod A7-35T
  • N25Q256A

fix

  • ftdispi: add missing status_pin
  • ftdipp_mpsse: fix format-zero-length snprintf -> memset

spiOverJtag

new

  • Xilinx : xcku3p_ffva676 support.
  • Xilinx : xc7a35tfgg484 support.
  • Xilinx: xc7a15tcpg236 support
  • Xilinx: xc7k70tfbg484 support
  • Xilinx: add constr_xc7k_fbg676.xdc
  • Xilinx: Virtex6: Add spiOverJtag for Virtex6, detect xc6vlx130 and provide bitfile for xc6vlx130tff784
  • Xilinx: Virtex 7 xc7vx330tffg1157
  • Intel/Altera: cyclone10 LP 10CL016YU484C8G

update

  • compress spiOverJtag for Darwin too
  • remove obsolete xc6 directory
  • Xilinx: Update code since Virtex Ultrascale has apparently been replaced with Xilinx Ultrascale.
  • Xilinx: Rearrange for better extensibility - Use ifdef ... elsif ... `endif for better seperation
  • Xilinx: XC6SLX...L may need other pin constraints as XC6SLX... - Checked and handled for XC6Sxxx(T)fgg484

fix

  • Xilinx: fix errors on xc6slx150tfgg484
  • Xilinx: add missing xc6s_tqg144 constraint

doc

new

  • board: Avnet Mini-ITX Base Kit
  • part: Gowin GW5A serie
  • part/board: certus boards/parts entries
  • cable: FT4232HP cable/interface.

update

  • data: adding an (unused for now) SPIFlash entry

fix

  • board: fix wrong constraints link
  • board: fix efinix naming / mode

Contributors

v0.11.0 release

02 Aug 09:23

Choose a tag to compare

Evolution summary:

core

new

  • CMakeLists: add an option to enable/disable -O3 optim (enabled by default)
  • option to use an extra GPIO as the status indicator

update

  • CMakeLists: when gzip is available spiOverJtag .bit and .rbf are compressed before installing
  • ftdipp_mpsse: adding bus_addr, device_addr getters
  • args: better --offset description (#319)
  • main: parse_opt: busdev-num: explicitly set hex base
  • jtag: adding getter to lowlevel transport driver
  • DATA_DIR override with environment variable (#333)
  • README,main: add remote bitbang for ip and port
  • Replace the string arguments usage with a bitfield
  • cleanup/lint/cppcheck
  • verbose: small rework

fix

  • scripts/msys2/PKGBUILD: try to fix previous commit (gzip)
  • workflows: removing ubuntu 18.04 (obsolete) adding 22.04
  • workflows: fix again ubuntu version
  • libusb_ll: fix typo in scan method
  • main: deduplicate messages about board's default cable/user's selection, display warn always instead of when verbose mode is set.
  • Tell USB bus and address when ftdi open fails.
  • Parse USB bus:dev as decimal integers, to be consistent with --scan-usb.

board

new

  • sipeed tang nano 20k
  • Added Lone Dynamics Schoko and Konfekt SBCs
  • colorlight-i9+ board
  • Trenz TEI0010 - AnalogMax
  • adding Opal Kelly XEM8320 board
  • Add Support for Xilinx KCU116 (#322)
  • added support for 14bits 125MHz redpitaya board (7010)
  • add Sitlinv STLV7325
  • add support for Trenz C10LP-RefKit
  • hseda-xc6slx16

files

update

  • bitparser: check bitstream length in the file
  • bitparser: replace _raw_data.size() with _file_size
  • fsParser: fix usercode/checksum size
  • latticeBitParser: add SPI_MODE missing instruction (issue #324)

cable

new

  • remoteBitbang_client: adding new protocol (client side)
  • WCH CH347T(mode #3) JTAG cable

update

  • usbBlaster: add option to fix firmware path at build time
  • Allow VID:PID override for JLink probe
  • jlink: suport writeTDI() with tx=NULL
  • jlink: report skipped devices with verbose
  • jlink: support J-Link BASE and J-Trace PRO
  • libgpiod: v2 api support

fix

  • fix: fix cmsisdap support for macOS
  • usbBlaster: change tx_len size (16 -> 32) to fix a potential overflow when log2(xfer_len) > 16 in toggleClk method
  • xvc_server: don't stop when connection close, rework read to return code for error and for disconnect
  • xvc_server: fix comm when Vivado acts as client
  • usbBlaster,ftdiJtagMPSSE: fix alignment for 1 bit len read transaction
  • dirtyJtag: throw exception when getVersion fails, use a #define for TIMEOUT value
  • cable: bus_addr, device_addr: int -> uint8_t
  • xvc_server: catch exception

part

new

  • Add Support for Xilinx Artix-7 a25t (xc7a25t)
  • Add support for XCVU9P IR length and codes
  • Add target-flash and secondary-bitstream CLI options for VCU118
  • Add ID code for part xa2c64a (Coolrunner-II).
  • Add initial support for VCU128
  • part: Add all cyclone V variant board: Add the Terasic C5G
  • Intel MAX10 (10M08)
  • add LCMXO2-256HC, update doc/FPGAs
  • Artix+ AU25P support for Opal Kelly Board
  • gowin: merge CRC check into one method, check usercode/checksum as fallback when usercode register doesn't match computed file's checksum (issue #279)
  • efinix: in JTAG mode keep bus_addr, device_addr between jtag and spi interfaces
  • efinix: in jtag mode fix access to the ll driver
  • parts: fix Efinix titanium irlen
  • Add initial support for VCU128
  • gowin: fix typo

update

  • Add support for flashing UFM on MachXO2 using JEDEC file. (#339)
  • efinix: support using JTAG interfaces
  • lattice: bypass refresh instruction for machXO2
  • xilinx: rework error message for zynqXX in SPI_MODE
  • lattice: when loadConfiguration fails -> check if external flash is blank
  • skip_load_bridge and skip_reset arguments also for Xilinx devices

fix

  • Fix off-by-one errors in calculating UFM start page.
  • Only delete bitstream objects if non-null
  • Fix VCU118 board part name and IR length
  • efinix: fix JTAG: detect family, fix irlen for titanium, add support for bit file, hex file can't be used with titanium
  • lattice: fix cast int vs uint8_t
  • lattice: UFM printf -> printInfo

spiFlash

new

  • MT25QU01 flash support
  • ST M25P16 flash support
  • ST M25P16 flash support
  • Macronix MX25L12833 flash support
  • Windbond w25q80bv flash support

update

  • Add support for 4-byte QSPI flash addressing (#295)
  • spiInterface: add read method

fix

  • temporary disable read extended

spiOverJtag

new

  • spiOverJtag_xc7a50tfgg484
  • spiOverJtag_xc7a200tfbg484
  • package xc7a (fbg484)
  • Spartan-6 lx9 CSG324 package.
  • Add XCVU9P spiOverJtag bitfile with SPIx8 support
  • Bitfile and constraints for xc6slx150tcsg484. (#312)
  • Add flash support for VCU128
  • efinix: - jtag mode: added spiOverJtag support; - spiOverJtag: added efinix support: verilog file and t8f81 bitstream - xyloni: part code for spiOverJtag flash access/load bridge
  • added efinix Titanium Ti60 support

update

  • spiOverJtag: ignore .bit and .rbf files

fix

  • fix missing spiOverJTAG for C10LP-RefKit

doc

new

  • Add documentation for Xilinx SPIx8 mode
  • xilinx: zynq limitation/requirement note
  • boards.yml: Add C5G

update

Contributors

v0.10.0 release

21 Dec 20:46

Choose a tag to compare

Evolution summary:

core

new

  • main: add busdev-num option to select a probe by his bus number / device address
  • libusb_ll: libusb wrapper (currently limited to scan device), src/main: add scan-usb option
  • libusb_ll: adding a libusb_open() return code check: when fails skip rest of the loop

update

  • src/main: simplify svf type search
  • svf: now is device independent and parsing is improved
  • pathHelper: Only compile on win builds

fix

  • removing test_sfl.svf
  • libusb_ll: typo (ft2232RL -> ft232RL). Fix #276
  • ftdispi: typo: replace holdn by wpn for spi_config.wpn_pi (fix issue #277).
  • ftdipp_mpsse: bus/addr: change type to uint8_t, default value to 0 and use cable_t bus_addr/device_addr$
  • msys2: Fix absolute windows paths
  • typo

board

new

  • LiteX-Acorn-Baseboards support
  • ALINX AX516 board.
  • Digilent CmodA7-35T fpga board
  • USRP X300 and X310
  • VCU118 board
  • Digilent nexys A7 (50/100) aka nexys 4 DDR
  • Alchitry Au+
  • Digilent CMOD S7 board.

cable

new

  • add cable jetson-nano-gpio

update

  • src/cable: rename bus/device to bus_addr/device_addr
  • cable implementation: rework to use cable_t directly
  • xvc_client: allows to select port
  • src/cable: rework cable list. move vid/pid from mpsse_bit_config to cable_t

part

new

  • Add support for Xc6slx9tqg144 FPGA

update

  • lattice: allows to use bit file for machxo2
  • altera,intel/Xilinx: adding an option to bypass spiOverJtag automatic bitstream selection by providing the bitstream file path

fix

  • xilinx: zynqXX: load only (#268)

files

new

  • pofParser: introducing intel/altera POF file parser

update

  • latticeBitParser: support machxo2 (check compress & fill vector)

spiFlash

new

  • microchip SST26VF064B flash

update

  • limit automatic read burst length to 64K
  • add --bulk-erase command line option

fix

  • Fix return value checking polarity and error reporting in protect_flash() and unprotect_flash()

spiOverJtag

new

  • spiOverJtag_xc7a50tcsg324
  • spiOverJtag_xc7s25csga225
  • spiOverJtag_xc7s_csga225

doc

update

  • Updated Troubleshooting

fix

  • Simplified troubleshooting .rst and removed media

Contributors

v0.9.1 release

19 Sep 19:03

Choose a tag to compare

Evolution summary:

core

update

  • add specific -D to enable/disable --device arg

cable

new

  • lpc-link2
  • Steppenprobe

update

  • cmsisDAP: allows to select interface number

fix

  • main,board,ftdiJtagBitbang: use pin ID instead of shift (issue #249)
  • libgpiodJtagBitbang: fix warning
  • ftdiJtagBitbang: fix int vs uint32_t

part

new

  • Xilinx: Kintex UltraScale KCU035
  • Gowin: add MSPI support when GW2A (issue #250)

fix

  • Xilinx: flow_program/xc95: increase delay and use getClkFreq (issue #104)
  • Xilinx: flow_program/xc95: verify write: replace hardcoded number of sections by nb_section
  • Gowin: better error message when mismatch between fs idcode and target's idcode (issue #252)

doc

update

  • doc/guide/install: add a note about Linux group right (issue #245)

fix

  • doc/guide/advanced: fix sphinx warning

Contributors

Maciej Nowak (@Novakov)
Diego Herranz (@diegoherranz)

v0.9.0 release

26 Jul 19:17

Choose a tag to compare

Evolution summary:

core:

new

  • main: always check if board is not null before access
  • add skip_load_bridge cmd-line parameter
  • ftdiJtagMPSSE: add writeTMSTDI method with full tms & tdi buffer. Always return TDO buffer
  • add means to set cable index from command line

update

  • ftdipp_mpsse: robustness: check all function return code / improve a bit error message
  • ftdipp_mpsse: change verbose level
  • ftdipp_mpsse: don't throw exception when iProduct is empty: display warn and use empty string
  • ftdiJtagxx: check lowlevel init return value
  • jtag: when verbose > 1: display unfiltered/raw IDCODE
  • add option to bypass reset in SPI write mode. Adapt altera accordingly
  • stop using get_state and promote the use of get_status

fix

  • Use uint32_t for misc_dev_list (fixes #196)
  • CMakeLists: fix general code styling, use dynamic linking on macOS
  • ftdipp_mpsse: don't display error when attach kernel driver, when the device hasn't been detach before or when driver isn't loaded.
  • spiInterface: unprotect_flash: fix return. Improve messages
  • ftdispi: add missing index param
  • fix(part.hpp): use uint32_t instead of int for fpga_list index

cable

new

  • xvc_client/xvc_server: Xilinx Virtual Cable
  • libgpiod JTAG driver

update

  • cmsisDAP: better error message if support is not enabled
  • anlogicCable: remove unused verbose, tdi, tms
  • jlink: write_data -> writeTMSTDI. Fix behaviour
  • DFU: check iProduct and iInterface -> set to a default string when empty
  • DFU: display error code

fix

  • cmsisDAP: fix crash in case hid device cannot be opened
  • DFU: fix detect -> bypass bitstream
  • DFU: fix potential leak
  • add missing mpsse_bit_config index
  • jlink: check usb_claim error

board

new

  • ORBTrace Mini support (DFU mode)
  • Add initial support for ZCU106 development board
  • Support for the Papilio One board
  • Sipeed Tang Primer 20K (GW2A)

fix

  • gatemate: fix failed signal polarity and update documentation

part

new

  • intel: cycloneV 5CEBA9 entry (issue #213)
  • intel: cycloneIV EP4CE115
  • Xilinx: Kintex XC7K410T
  • Xilinx: Kintex XC7K420T
  • Xilinx: ZynqMP Ultrascale Plus XCZU11EG
  • Xilinx: Kintex Ultrascale XCKU040
  • Xilinx: explictly add spartan3e and xc3s250e
  • Gowin: GW2A (GW2A(R)-18(C))

update

  • Gowin: GW1NSR-4C: Add MCU Firmware flashing support
  • xc3s500e IDCODE: revision set to zero.

fix

  • Correct part number for ZCU106 board

update

  • efinix: support loading a bitstream to memory using only JTAG pins (no GPIO).
  • --flash-sector CFG0 for MachXO3D and more information for its Breakout Board
  • colognechip: explicitly set spi or ftdi_jtag to null, drop useless else if -> if not spi it must be jtag
  • xilinx: adapts flow_disable/flow_enable for xc3s, adding custom method to load bitstream for xc3s

fix

  • colognechip: fix dumpFlash: add override, remove filename param and use filename from constructor
  • efinix: fix dumpFlash: add override, remove filename param and use filename from constructor
  • part: re-adding version nibble to remove ambiguities between U, UM and UM5G
  • xilinx: fix wait until done for spartan3e
  • lattice MACHXO3D: no exception when flash-sector is not provided in SRAM mode

files

fix

  • efinixHexParser: remove unused reverseOrder
  • configBitstreamParser: string::find return size_t not uint32_t
  • latticeBitParser: when .bit is encrypted use Part: from header to retrieve idcode
  • latticeBitParser: fix end header position with MACHOX3D .bit file
  • ihexParser: check buffer size, increase if required

spiFlash

new

  • N25Q64 part
  • S25FL512S part
  • Support for the Microchip SST25VF040B flash.

update

  • handle case where TB is not configurable
  • Removed TOP/BOTTOM settings from SST25VF040B
  • Removed must_relock part for the "SST25VF040B"

fix

  • bulk_erase: check bp before erase
  • stop if jedec_id == 0xffffff
  • fix display: when bp_len==0 -> set bp/tb = 0, otherwise parse reg

spiOverJtag

new

  • cycloneV 5CEBA9F27
  • cycloneV enable init done pin
  • cyclone IV EP4CE115F23
  • artix fgg676 constraints file
  • artix xc7a100tfgg676
  • kintex support xc7k420tffg901
  • kintex support xc7k160tffg676
  • Spartan3E (xc3s500evq100)

update

  • update spiOverJtag_5ce927.rbf.gz created with Lite 20.1.1

doc

  • FPGA: add 5CEBA9
  • README: add skip-load-bridge / skip-reset
  • guide: Add instructions for manual installation on macOS
  • Documentation for the xc3s500e part

update

  • FPGA: update/fix ECP5 list

fix

  • intel: fix svf generation command (issue #212)

Contributors