Intel Generic Flash Controller Erase and Block Protect
This wiki page is dedicated towards users that are using the Intel Generic Serial Flash controller with EPCQ flash or other flash and are looking to erase the entire flash and protect blocks of memory. There are some example designs, but none seemed to adequately cover erasing parts of the flash or the entire flash. Similarly, no examples were found to do block protection or protect the entire flash.
This example was created using Cyclone V, EPCQ256, and the Intel Generic Serial Flash controller. The example was compiled and programmed to a TerASIC Cyclone V development kit and then proven using System Console. The example should allow for embedded developers to leverage the sequence of read and write commands using system console into their NIOSII or other CPU complex.
The following qar file contains the design example which was compiled and archived using Quartus version 18.1 build 625.
Intel Generic Flash Erase Protect.qar - see attached at the bottom of this article
The example design contains a Platform Designer (Qsys) design that looks as follows:
The design uses a known good external clock running at 50Mhz on the TerASIC Cyclone V board at PIN_R20.
This example runs on the TerasIC Cyclone V GX Starter board.