openFPGALoader: tangprimer20k flash failure with "Error: ftdi_read_data in mpsse_read". When programming into SRAM is stuck on "pollFlag: a1"
Hello. Just got my new Tang Primer 20K, verified it is working with Gowin programmer on windows. Unfortunately with openFpgaLoader I am facing an issue consistently. The flashing is stopping at ~48% and then it starts showing an error: “Error: ftdi_read_data in mpsse_read” indefinitely. After the process is interrupted, the board is in some bad state and any subsequent attempts to program it fail even earlier, and in order to recover I need to use the Gowin programmer. I am using the build from commit b1c843acdb549c17c15525df649e02f88960d06b Here is the dump from the session:
write to flash
Jtag frequency : requested 6.00MHz -> real 6.00MHz
found 1 devices
index 0:
idcode 0x81b
manufacturer Gowin
family GW2A
model GW2A(R)-18(C)
irlength 8
File type : fs
Parse file Parse /redacted/TangPrimer-20K-example/DDR-test/LicheeTang20K_DDR_Test/impl/pnr/ddr3_ref_design.fs:
checksum 0xaf49
Done
DONE
bitstream header infos
CRCCheck: ON
Compress: OFF
ConfDataLength: 2110
ProgramDoneBypass: OFF
SPIAddr: 00000000
SecurityBit: ON
idcode: 0000081b
loading_rate: 0
Jtag frequency : requested 2.50MHz -> real 2.00MHz
Jtag frequency : requested 10.00MHz -> real 6.00MHz
pollFlag: 60a0
erase SRAM pollFlag: 4080
pollFlag: 4080
pollFlag: 4080
pollFlag: a0
Done
pollFlag: 20
b 40 16 b read b40160b
Detail:
Jedec ID : 0b
memory type : 40
memory capacity : 16
EDID + CFD length : 0b
EDID : 1640
CFD : 0f 40 16 0b 40 12 0b 60 16
9 40 6 b read 940060b
Detail:
Jedec ID : 0b
memory type : 40
memory capacity : 16
EDID + CFD length : 09
EDID : 0640
CFD : 0b 00 16 0b 40 16 0b 40 16
RDSR : 00
WIP : 0
WEL : 0
BP : 0
TB : 0
SRWD : 0
RDSR : 00
WIP : 0
WEL : 0
BP : 0
TB : 0
SRWD : 0
flash chip unknown: use basic protection detection
Erasing: [==================================================] 100.00%
Done
Writing: [======================= ] 45.51%Error: ftdi_Writing: [========================= ] 48.83%Error: ftdi_read_data in mpsse_readError: ftdi_read_data in mpsse_readError: ftdi_read_data in mpsse_readError: ftdi_read_data in mpsse_readError: ftdi_read_data in mpsse_readError: ftdi_read_data in mpsse_readError: ftdi_read_data in mpsse_readError: ftdi_read_data in mpsse_readError: ftdi_read_data in mpsse_readError: ftdi_read_data in mpsse_readError: ftdi_read_data in mpsse_readError: ftdi_read_data in mpsse_readError: ftdi_read_data in mpsse_readError: ftdi_read_data in mpsse_readError: ftdi_read_data in mpsse_read^C
When trying to program into SRAM instead, it will get stuck at about 76% with infinite “pollFlag: a1” message. This happens most of the time, but I got it successfully programmed once or twice:
write to ram
Jtag frequency : requested 6.00MHz -> real 6.00MHz
found 1 devices
index 0:
idcode 0x81b
manufacturer Gowin
family GW2A
model GW2A(R)-18(C)
irlength 8
File type : fs
Parse file Parse /redacted/TangPrimer-20K-example/DDR-test/LicheeTang20K_DDR_Test/impl/pnr/ddr3_ref_design.fs:
checksum 0xaf49
Done
DONE
bitstream header infos
CRCCheck: ON
Compress: OFF
ConfDataLength: 2110
ProgramDoneBypass: OFF
SPIAddr: 00000000
SecurityBit: ON
idcode: 0000081b
loading_rate: 0
Jtag frequency : requested 2.50MHz -> real 2.00MHz
displayReadReg 00000421
CRC Error
Memory Erase
Non-jtag is active
pollFlag: a1
erase SRAM pollFlag: 81
pollFlag: 81
pollFlag: 81
pollFlag: 81
pollFlag: a1
Done
pollFlag: 421
pollFlag: a1
Flash SRAM: [======================================= ] 76.85%pollFlag: a1
pollFlag: a1
pollFlag: a1
pollFlag: a1
pollFlag: a1
pollFlag: a1
pollFlag: a1
pollFlag: a1
pollFlag: a1
pollFlag: a1
....
About this issue
- Original URL
- State: open
- Created a year ago
- Comments: 16 (7 by maintainers)
I can reproduce this issue. Program to SRAM works most of the times, getting stuck at 76% in some occasions. Program to external FLASH, fails consistently stuck at 46%. Giving error Error: ftdi_read_data in mpsse_read in both cases.
Can be reproduced with this bitstream on the Sipeed Tang 20K https://github.com/sipeed/TangPrimer-20K-example/tree/main/DDR-test/LicheeTang20K_DDR_Test