FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6558 Discussions

Generic serial flash interface can't WR/RW past certain address limit

Jcole
New Contributor I
567 Views

I'm using a Cyclone 10LP and the flash is a Cypress S25FL256S. I've gotten familiar with reading and writing using the GSFI module but having a problem accessing the address past byte address 0x0001FFFF (Avalon memory address x07FFF). I'm using 4-byte addressing on all commands (Sector erase, write, and read) but when I try to read back the data written to 0x00020000 (Avalon memory 0x08000), I read back all 0's. Not sure if this is a limitation of the Cyclone 10LP or if I'm using the correct commands or not, both 3-byte and 4-byte commands result in the same behaviour.  If I use address 0x0 to 0x0001FFFF the read and write operations work fine. Worst case this may be a damaged flash device. 

0 Kudos
1 Solution
Jcole
New Contributor I
397 Views

Found the issue, the state machine was passing the 22-bit RSU addressing to the erase command instead of the 32-bit byte address, so the address that was being used to erase was pointed to almost half of where we needed it to be. 

View solution in original post

0 Kudos
3 Replies
Farabi
Employee
516 Views

"We sincerely apologize for the inconvenience caused by the delay in addressing your Forum queries. Due to an unexpected back-end issue in our system, your Forum cases, along with others, did not get through as intended. As a result, we have a backlog of cases that we are currently working through one by one.

Please be assured that we are doing everything we can to resolve this issue as quickly as possible. However, this process will take some time, and we kindly ask for your patience and understanding during this period. The cases will be attended by AE shortly.

We appreciate your patience and understanding, and we are committed to providing you with the best support possible.

Thank you for your understanding."


0 Kudos
Jcole
New Contributor I
398 Views

Found the issue, the state machine was passing the 22-bit RSU addressing to the erase command instead of the 32-bit byte address, so the address that was being used to erase was pointed to almost half of where we needed it to be. 

0 Kudos
Farabi
Employee
161 Views

Hello,


The S25FL256S supports both 3-byte (24-bit) and 4-byte (32-bit) addressing modes.

Addresses beyond 0x00FFFFFF require 4-byte addressing. If the memory is not properly set to 4-byte mode, any commands using 4-byte addresses will fail.


regards,

Farabi


0 Kudos
Reply