Generic Serial Flash Interface (GSFI) automatic polling on write operation
Hello everyone,
I'm successfully using the Generic Serial Flash Interface (GSFI) to write/read from a MT25QL256 flash in Quad mode, 4-byte addressing (1-4-4 protocol).
The firmware bootcopier also use it successfully and I'm able to load the FW in RAM at power up. I'm using the default bootcopier from Intel (boot_loader_cfi.srec).
I followed this very useful example to configure the GSFI: https://community.intel.com/t5/FPGA-Wiki/Generic-Serial-Flash-Interface-GSFI-and-Nios-II-Booting-Quick/ta-p/1201053
The only issue happen in the firmware for user data read/write: I need to manually poll the flash Flag Status Register to know when the flash is busy during a write operation!
On the GSFI User Guide I see that I can set a "polling opcode" in the Write Instruction Register of GSFI in order to make the GSFI do the polling automatically. Unfortunately this doesn't work.
I set the register = 0x00007038 since 0x70 = Read Flag Status Register opcode and 0x38 = 4-byte write opcode.
I'm using flag status register instead of status register since it's recommended for Micron's flash devices.
Am I doing something wrong? How can I use the integrated polling mechanism?
GSFI User Guide: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug-gen-sfi.pdf