From 31ffeb8290343948be1ae213dbee359e88d87e32 Mon Sep 17 00:00:00 2001 From: blurbdust Date: Mon, 9 Feb 2026 14:07:07 -0600 Subject: [PATCH] Adding ability to configure https://theretroweb.com/expansioncards/s/celestica-fpga-accelerator-du-pcb-001-003 with hint from https://fpga.com.ua/index.php?product_id=329&route=product%2Fproduct --- .../bpiOverJtag_xc7k480tffg1156.bit.gz | Bin 132452 -> 132631 bytes bpiOverJtag/constr_xc7k480t_bpi_ffg1156.xdc | 1 + src/bpiFlash.cpp | 4 +++- src/xilinx.cpp | 4 ++-- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/bpiOverJtag/bpiOverJtag_xc7k480tffg1156.bit.gz b/bpiOverJtag/bpiOverJtag_xc7k480tffg1156.bit.gz index ad9bf930e6306f472b236026b4625463ac67e46d..5e8c91fe6de60c81e0cd23f8e07be79cbdf2b06a 100644 GIT binary patch literal 132631 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

1iSY`gD;U%Jc?-6bwnXN>pr! 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 literal 132452 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 F`+v;HytV)U diff --git a/bpiOverJtag/constr_xc7k480t_bpi_ffg1156.xdc b/bpiOverJtag/constr_xc7k480t_bpi_ffg1156.xdc index 5f7ebef..3dd8bc4 100644 --- a/bpiOverJtag/constr_xc7k480t_bpi_ffg1156.xdc +++ b/bpiOverJtag/constr_xc7k480t_bpi_ffg1156.xdc @@ -4,6 +4,7 @@ set_property CFGBVS GND [current_design] set_property CONFIG_VOLTAGE 1.8 [current_design] set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design] +set_property BITSTREAM.CONFIG.UNUSEDPIN PULLNONE [current_design] ## Address bus [25:1] set_property -dict {PACKAGE_PIN AD26 IOSTANDARD LVCMOS18} [get_ports {bpi_addr[1]}] diff --git a/src/bpiFlash.cpp b/src/bpiFlash.cpp index 063bd01..95926c0 100644 --- a/src/bpiFlash.cpp +++ b/src/bpiFlash.cpp @@ -357,7 +357,9 @@ bool BPIFlash::erase_block(uint32_t addr) /* Verify erase by reading first few words */ if (_verbose) { - bpi_write(0, FLASH_CMD_READ_ARRAY); + /* Send READ_ARRAY to the erased block's address (not addr 0), + * because multi-bank flash requires per-bank mode commands */ + bpi_write(word_addr, FLASH_CMD_READ_ARRAY); usleep(100); char buf[128]; snprintf(buf, sizeof(buf), "Verify erase at 0x%06x:", addr); diff --git a/src/xilinx.cpp b/src/xilinx.cpp index 2cce842..308d636 100644 --- a/src/xilinx.cpp +++ b/src/xilinx.cpp @@ -880,11 +880,11 @@ void Xilinx::program_mem(ConfigBitstreamParser *bitfile) * the TLR (Test-Logic-Reset) state. */ _jtag->shiftIR(get_ircode(_ircode_map, "JPROGRAM"), NULL, _irlen); - /* test */ + /* Poll INIT_B (bit 4 of IR capture) until config memory is cleared */ tx_buf = get_ircode(_ircode_map, "BYPASS"); do { _jtag->shiftIR(tx_buf, rx_buf, _irlen); - } while (!(rx_buf[0] &0x01)); + } while (!(rx_buf[0] & 0x10)); /* * 8: Move into the RTI state. X 0 10,000(1) */