Forum Discussion
Arria 10 ASDATA Flash interface
- 3 years ago
Issue resolved, flash problem due to failed/stuck bit in volatile configuration register.
Solution to accessing Arria 10 ASDATA/DCLK pins, without using Intel IP, during user mode is to use Arria 10 primitives.
Hi,
After some research and playing around I've managed to gain access to the pins in user mode using the Arria 10 primitives.
I am having issues trying to read/write the flash memory. The Micron device keeps returning all FF for every read of memory locations.
I can read device ID okay.
I can read flag status register okay.
I can read status register okay.
I can change between 4 byte address mode and 3 byte address mode and read back these flags from flag status register so I know I have some comms with the flash device and Arria 10.
When writing the flash this is the sequence I am using:
- Command code write enable.
- Read status register to check wr en latch bit set.
- Command code 4-byte page program with data sent to flash in this step being x"12"(cmd code) & x"0000_0000"(4-byte address) & x"0123_5678"(4 bytes of data). Using extended(normal) SPI mode, with DQ0 being SPI in and DQ1 being SPI out.
- Read status register to check wr en latch bit cleared and no error bits set.
- Read location in memory but data still x"FFFF_FFFF". Data sent to flash for read is x"13"(cmd code)& x"0000_0000"(4-byte address)& x"0000_0000"(clocks for read data return).
I have also tried these steps with an erase first, but seeing as the memory is already FF an erase should not be required and the same issue of FFFF persists?
I have also observed that sometimes the wr en latch bit is not able to be set with the wr en command unless I first read the flag status register. Is this normal?
I realise this might not be the correct forum for this as Micron flash issues might be outside of scope of Intel support but any help/suggestions will be greatly appreciated.
- FvM3 years ago
Super Contributor
Hello,
Arria 10 primitives means twentynm_asmiblock? I guess that flash write fails in your test. You can use JTAG indirect programming to init the flash different from FF.