diff --git a/spiOverJtag/spiOverJtag_efinix_ti60f225.bit.gz b/spiOverJtag/spiOverJtag_efinix_ti60f225.bit.gz new file mode 100644 index 0000000..62e1bdc Binary files /dev/null and b/spiOverJtag/spiOverJtag_efinix_ti60f225.bit.gz differ diff --git a/src/board.hpp b/src/board.hpp index b40c5b0..be68d4d 100644 --- a/src/board.hpp +++ b/src/board.hpp @@ -193,7 +193,7 @@ static std::map board_list = { JTAG_BOARD("tec0117", "", "ft2232", 0, 0, CABLE_DEFAULT), SPI_BOARD("titanium_ti60_f225","efinix", "efinix_spi_ft4232", DBUS4, DBUS5, DBUS7, DBUS3, DBUS0, DBUS1, DBUS2, DBUS6, 0, CABLE_DEFAULT), - JTAG_BOARD("titanium_ti60_f225_jtag", "","efinix_jtag_ft4232", 0, 0, CABLE_DEFAULT), + JTAG_BOARD("titanium_ti60_f225_jtag", "ti60f225","efinix_jtag_ft4232", 0, 0, CABLE_DEFAULT), SPI_BOARD("trion_t120_bga576","efinix", "efinix_spi_ft2232", DBUS4, DBUS5, DBUS7, DBUS3, DBUS0, DBUS1, DBUS2, DBUS6, 0, CABLE_DEFAULT), JTAG_BOARD("trion_t120_bga576_jtag", "", "ft2232_b", 0, 0, CABLE_DEFAULT), diff --git a/src/efinix.cpp b/src/efinix.cpp index b7ceabf..6c6db3d 100644 --- a/src/efinix.cpp +++ b/src/efinix.cpp @@ -58,9 +58,12 @@ Efinix::Efinix(Jtag* jtag, const std::string &filename, const uint32_t idcode = _jtag->get_target_device_id(); const std::string family = fpga_list[idcode].family; if (family == "Titanium") { - if (_file_extension == "hex") { - throw std::runtime_error("Error: loading hex file is not allowed " - "for Titanium devices"); + if (_file_extension == "hex" && prg_type == Device::WR_SRAM) { + throw std::runtime_error("Error: loading (RAM) hex file is not " + "allowed for Titanium devices"); + } else if (_file_extension == "bit" && prg_type == Device::WR_FLASH) { + throw std::runtime_error("Error: writing bit (FLASH) file is not " + "allowed for Titanium devices"); } _fpga_family = TITANIUM_FAMILY; } else if (family == "Trion") {