Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12589 Discussions

How to program QSPI on custom board

Dzar
New Contributor I
3,134 Views

I have a custom board with a Cyclone V (5VSEMA5U3117N) and a QSPI flash memory attached (256 Mbit) to the HPS. I've checked all of the wiring and it looks fine, but when I try to access this memory via quartus_hps. I see the FPGA and QPSI controller, but it always returns 0xffffffff for the chip ID (which indicates, to me, that it can't see the device).

 

I have BSEL set to 110 (QSPI, 1.8V) and CSEL set to 00. OSC1 is set to 50 MHz.

 

Is there anything else that needs to be configured (or changed) to allow quartus_hps to be able to program the QPSI?

 

Thanks,

Dave

 

0 Kudos
1 Solution
Dzar
New Contributor I
1,896 Views

Well, after much trying, and getting absolutely no support from Intel, we replaced our ISSI QSPI parts with Micron parts and everything works, now. This was a complete waste of time and Intel not being able to answer simple questions (like what parts are supported) is ridiculous. But we're moving on...

View solution in original post

8 Replies
Fawaz_Al-Jubori
Employee
1,896 Views

Hello,

May I know which QSPI flash device are you using?

Basically, no more configuration needed, just make sure the schematics are correct, and the flash model is based on the dev kit recommendation. Let me know which flash device are you using, and I will check for you if this flash is supported.

 

One more thing, which Quartus prime are you using?

Thanks

0 Kudos
Dzar
New Contributor I
1,896 Views

I've tried 18.0 and 18.1 with the same results. I figured not much else needs to happen, and the schematics look right...

 

We're using an IS25WP256D-RHLE part.

 

http://www.issi.com/WW/pdf/IS25LP(WP)256D.pdf

 

I did notice some "check JTAG chain" messages, however... here's my output when trying to read the ID (I do have two devices on the JTAG chain and I get the same result for -d 1 or -d 2):

 

Info: Command: quartus_hps -c 1 -d 1 -o S

Current hardware is: USB-BlasterII [USB-1]

  Successfully change hardware frequency to 16Mhz

Found HPS at device 2

  Double check JTAG chain

HPS Device IDCODE: 0x4BA00477

AHB Port is located at port 0

APB Port is located at port 1

  Double check device identification ...

Boot Info: 1.8V QSPI Flash

Clock Select: 0

Start HPS Quad SPI flash programming ...

Initialize QSPI peripheral and flash controller ...

  Assuming QSPI controller system clock is 50Mhz

  QSPI controller baudrate setting: 32 (15)

Read Silicon ID of Quad SPI flash ...

  Quad SPI Flash silicon ID is 0xFFFFFFFF

 

 Untitled presentation.jpg

 

0 Kudos
Dzar
New Contributor I
1,896 Views

Checking in to see if the above has any obvious issues.

0 Kudos
Dzar
New Contributor I
1,896 Views

I am making progress. I did find that the CE# pin (that's also BSEL1) was pulled up with a zero Ohm resistor. So I fixed that to be 1K and now I can see an ID.

 

But the ID is odd...

 

I see 9D19709D.

 

If the first 9D was not there, it would be what I expect, but my part says it repeats the sequence until CE# is brought high, again. But quartus_hps seems to read more than three bytes and then complains that this is not a valid ID and won't do anything more.

 

....

Clock Select: 0

Start HPS Quad SPI flash programming ...

Initialize QSPI peripheral and flash controller ...

  Assuming QSPI controller system clock is 50Mhz

  QSPI controller baudrate setting: 32 (15)

Read Silicon ID of Quad SPI flash ...

  Quad SPI Flash silicon ID is 0x9D19709D

Error: Not able to map flash ID from flash database

Error: Quartus Prime Programmer was unsuccessful. 0 errors, 0 warnings

  Error: Peak virtual memory: 4273 megabytes

  Error: Processing ended: Fri Nov 30 21:45:48 2018

  Error: Elapsed time: 00:00:02

  Error: Total CPU time (on all processors): 00:00:00

 

Is there anything else one could try, here?

 

Thanks

Dzar
New Contributor I
1,896 Views

I see this question has been abandoned.

 

I'll try one more time...

 

Is there any way to program a QSPI device that's not listed as supported in the very old Cyclone V supported parts list? None of the supported parts are even manufactured any more and there is no stock on any of them. There must be somebody who has used a modern QSPI part with a Cyclone V, right? What's being done to use them?

0 Kudos
Fawaz_Al-Jubori
Employee
1,896 Views

Hello sir,

We are still investigating about this issue.

Currently, there is no method to use non-supported QSPI flash. I understand your point, the Supported flash devices list requires an update.

I will send this request to our internal team for future improvement.

 

Thanks and apologize for the inconvenience

 

0 Kudos
Gizmotoy
Novice
1,896 Views

It's even a bit worse than just "requiring an update". The part Dzar is asking about here, IS25WP256D-RHLE, is the exact part Intel puts on the Cyclone 10 GX Development Kit board Intel sells. The devkit includes parts that aren't even supported by Quartus. This seems to be acknowledged in the Golden Top level, which includes notes like this:

 

 

//QSPI output c10_qspi_clk , // IP core is currently not available inout [3:0] c10_qspi_d , // IP core is currently not available output c10_qspi_csn , // IP core is currently not available output c10_qspi_resetn // IP core is currently not available

 

Is Intel planning to fix this?

Dzar
New Contributor I
1,897 Views

Well, after much trying, and getting absolutely no support from Intel, we replaced our ISSI QSPI parts with Micron parts and everything works, now. This was a complete waste of time and Intel not being able to answer simple questions (like what parts are supported) is ridiculous. But we're moving on...

Reply