Direct Xilinx Platform Flash programming¶
openFPGALoader can program Xilinx XCF Platform Flash PROMs directly through their own JTAG interface. An FPGA is not required in the chain.
Supported devices:
- XCF01S, XCF02S and XCF04S
- XCF08P, XCF16P and XCF32P
The XCF-P implementation uses the native 16-bit IEEE 1532 instruction set, 24-bit array addressing and 32-byte programming frames. It also writes and verifies the BTC, CCB, SUCR and DONE configuration registers.
Wiring¶
Connect the programmer directly to the PROM JTAG pins:
- TCK
- TMS
- TDI
- TDO
- GND
- the cable reference-voltage pin, when the cable provides one
Power the PROM from the target board and make sure the JTAG cable I/O voltage matches the PROM's JTAG bank voltage. The PROM must not be back-powered through the cable.
Detect the chain¶
openFPGALoader -c xilinxPlatformCableUsb_alt --detect
For a Digilent cable:
openFPGALoader -c digilent_hs3 --detect
An XCF32P is identified by IDCODE 0x05059093 with a 16-bit instruction
register. The four-bit silicon revision field is ignored.
Program an MCS file¶
When the PROM is the only device in the chain:
openFPGALoader -c xilinxPlatformCableUsb_alt -f --verify image.mcs
When other devices are present, select the PROM's zero-based JTAG index:
openFPGALoader -c xilinxPlatformCableUsb_alt --index-chain 1 \
-f --verify image.mcs
The MCS image must fit the selected PROM. XCF32P capacity is 4 MiB. Unused
bytes in the final 32-byte frame are programmed as 0xff. The implementation
uses revision 0 and the standard slave-serial PROM configuration mode, intended
for an FPGA configured as master serial.
Read the complete PROM¶
openFPGALoader -c xilinxPlatformCableUsb_alt --index-chain 0 \
--dump-flash xcf32p-dump.bin
The dump operation reads the complete physical capacity: 1 MiB for XCF08P, 2 MiB for XCF16P and 4 MiB for XCF32P.
Notes¶
- XCF-P devices must not enter Pause-IR or Pause-DR during ISC operations.
- Full-chip erase can take more than one minute.
- The erase sequence unlocks every physical array in the selected PROM.
- Multiple stored revisions and custom CCB configuration modes are not yet exposed as command-line options.