Quartus 13.0.1 Build 232, (EP2C20), Windows 10, 64BIT (working on legacy project..)
I'm struggling with a Flash Memory upgrade. I've been using EPCQ16 for a while now, and without issue. I've decided to upgrade to EPCQ32, and everything does what it's supposed to, apart from the firmware, I cannot get alt_flash_open_dev("/dev/epcs_controller") to return a handle so that I can perform alt_read_flash() successfully.
My firmware hangs at this point in the code.
I would like to know if anyone has any thoughts that will help me to fix this.
Everything else works. Quite frustrating.
Thank you for contacting Intel community.
Do you mean that Nios II Processor Flash controller not find the EPCS registers and fail when trying to program the flash?
If yes, please refer to our KDB below:
Thanks for answering my post.
Using a EPCQ/EPCS16, this works fine and has done for years. The handle returned from the function (alt_flash_open_dev("/dev/epcs_controller")) gives reference to a memory address in the SRAM (because I've instantiatied a variable in SDRAM); data sheet states that as long as the returned value isn't zero, then the operation has been successful.
Using the EPCQ32, (same footprint and pinout [using ASx1 mode and not ASx4]), the point where I can step the code to the line where alt_flash_open_dev("/dev/epcs_controller") is, returns '0x0', which is indicative of failure to open/read/communicate device. I'm going to scope it up to see if there is actually a bit stream fired off at this point to see if the NIOS II processor actually attempts a transaction.
In Quartus I've instructed the AS device to be EPCQ32, and not Auto.
I'm totally stumped! The device is brand new, I can upload the sof to it without issue, I can erase the IC though NIOS II flash programmer, so I know something is transacting, just when it comes to the firmware trying to interact with the Flash IC, I can't perform the instruction because it hangs..
Thank you for any help.
Good Morning SyafieqS_Intel,
The versions of Quartus/NIOS that I can use is pretty limited because of applicability to device - I have to work with Cyclone II compatible Quartus/NIOS, which ceases with Quartus/NIOS > v13.1.
I would have to try other versions to see what happens, but I'm a little concerend that this wouldn't work because support for the FPGA wouldn't be there.
Anything above the support level would mean that spurious behaviour may occur.
I've recently downloaded v21.1, so I ought to try that.
As yet, I've no managed to try the suggestion. I'll be revisiting this issue in the coming weeks. I have a feeling using the latest issue Quartus/NIOS won't help because of compatibility issues with Cyclone II.
From what I've come to understand, v21.1 has the the capability to drive legacy stuff, but as yet, haven't had the time to dedicate to this problem.
I'll feedback when I can, so hopefully I can post a resolution!
I will put this to close pending since you need more time to work on this. I now transition this thread to community support. If you have a new question, feel free to open a new thread to get the support from Intel experts. Otherwise, the community users will continue to help you on this thread. Thank you.