Forum Discussion
Cyclone 10LP + EPCQ64A config flash corruption during power OFF
Hello,
FPGA: 10CL120YF780C8G
Flash: EPCQ64A (it holds an initial FW and later on we switch to an operational FW)
Problem:
- Our operational FW used these settings:
I was doing power cycling tests. I saw that sometimes (in 15-30 power cycles) flash data gets corrupted. 1-2 bytes are overwritten with 0x00h. If the corrupted section is in the initial FW region, then board becomes a brick and requires JTAG download of the initial FW again. If the corruption occurs at the operational FW section, then operational FW switching does not work and redownload is needed.
We confirmed this by reading back the flash data, and doing hex comparison. Here is one example where one byte in the initial FW section became 0xF8 --> 0x00 which made the board completely not working until the JTAG reprogramming.
Corrupted byte address it mostly the same across failures. So the actual corruption location did not appear to be random.
Signal integrity, power supplies are checked to be OK
This failure does not happen in all the boards we have. But we could not identify a HW issue as the boards operate normally, power supplies are OK and signal integrity are OK.
When flash signals are probed, the issue did not happen, pushing me to think that something really on the edge is happening realted to timings etc.
Solution we found:
Checking with a different operational FW and setting the pins as regular IO after configuration fixed the issue
This is tested for 300 cycles and it works
Scope measurements:
I see a clear difference in behavior between two pin assignment cases. During power OFF, original dpf is trying to communicate with the flash, but “REGULAR IO” dpf does not do that.
Support request:
As we see this issue happens sometimes, and not on all boards, I think we are exciting an edge case. I could not see a HW difference which can cause this behavior. I know that 0x05h is a valid command to the flash, and if it shifts by one bit it can become 0x02h which is a byte write command. I suspect that sometimes this happens during power OFF and we really write to the flash and corrupt it.
I think the clear behavior difference during power off is a strong clue. Could you explain why different assignments cause this behavior difference?
1 Reply
- ai_responder
Community Manager
Thank you for your inquiry. To ensure an accurate response, your request has been routed to an Altera application engineer for further review and assistance.
Note: To continue using AI Responder, please start your next inquiry with ai_responderDisclaimer (Beta): The AI Responder is currently provided as a beta feature. AI-generated responses may contain errors or omissions. Please verify technical guidance with official Altera documentation before implementation.
Thank you very much.