Hello,
I am using Cyclone 10 LP and Altera Serial Flash Controller II IP core. I am using Quartus Prime standard edition, V17.1 In my case also, it hangs when erase function is called. In both of following functions,
alt_erase_flash_block and
alt_write_flash erase routine is called and hence when I call any of them, it hangs.
In
alt_epcq_controller2_erase_block function, I made following change. (
remember this is a manual change. Hence if you generate BSP again, this will get lost.)
Instead of following
/* write enable command */
mem_op_value |= ALTERA_EPCQ_CONTROLLER2_MEM_OP_WRITE_ENABLE_CMD;
I used following:
/* Unprotect flash. */
mem_op_value |= ALTERA_EPCQ_CONTROLLER2_MEM_OP_SECTOR_PROTECT_CMD;
Not sure how it works. But it works! With this, it no longer hangs. (P.S. I got this idea by looking at flash_qspi.c file.)
Perhaps somebody from Intel team might be able to give some insight into this.
Cheers,
Bhaumik