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++
12669 Discussions

Stratix 10 Nios II Fails to boot .sof / .jic

michaelheartsintl
1,223 Views

I've got a Stratix 10 on the 10TX Signal Integrity Dev kit and can't seem the get the NIOS to run at boot without manually pushing it down via JTAG through Eclipse.

 

I'm running Quartus Prime Pro 20.04 and it loads the FPGA at boot from the EPCQL properly.

 

I'm following the instructions here for loading to OCRAM and embed in the sof/jic.

https://www.intel.com/content/www/us/en/docs/programmable/683689/current/processor-booting-from-on-chip-memory-ocram.html

 

I can load the NIOS and run the application via JTAG.

 

When I attempt to embed the hex file generate by the run_mem_init via platform designer, and flash the .sof down via JTAG, the NIOS II is present on the JTAG chain, but doesn't appear to be loading the application from the embedded hex file.

 

It also doesn't work when I build the programming file through the generator and create a .jic to flash down to the EPCQL.

 

It just comes up with what seems to be an "empty" NIOS.


What steps can I take to validate the .hex file being embedded properly and debug the NIOS?

 

Attached are screenshots of the BSP settings, vector for reset, and .hex file

 

 

0 Kudos
6 Replies
KellyJialin_Goh
Employee
1,178 Views

Hi,

Greetings and welcome to Intel's forum.


The Stratix 10 TX uses EPCQ flash to store non volatile memory.

With the OCRAM method, it does not support using the EPCQL flash as the application and runtime location will be on the OCRAM, and not EPCQL flash.


Here is the link for your reference on the booting methods and supported flash memory: https://www.intel.com/content/www/us/en/docs/programmable/683689/current/processor-booting-methods.html


You may need to try booting using the EPCQ booting method with the link here: https://www.intel.com/content/www/us/en/docs/programmable/683689/current/processor-design-configuration-and-boot-flow-05953.html


Hope this clarify your doubts.


Thank you.

Regards,

Kelly


0 Kudos
michaelheartsintl
1,165 Views

Thanks for your response.

 

The FPGA is configured from the EPCQL WITH the .hex file embedded in the .jic, so the NIOS boots from the OCRAM after the config file is downloaded to the FPGA from the EPCQL. If you look at the images I linked in the first picture, I think you will understand what I am doing.

 

Again, EPCQL is used for CONFIGURATION, but the NIOS does not boot from it. This is indicated here in figure 165:

 

https://www.intel.com/content/www/us/en/docs/programmable/683689/current/processor-application-executes-in-place-60969.html

 

It sounds like you are talking about storing the .sof and .hex SEPARATELY on the EPCQL which is not the flow I am using.

 

Additionally - should NIOS work if this is pushed down via JTAG, without a full FPGA reconfiguration?

 

 

 

0 Kudos
KellyJialin_Goh
Employee
1,147 Views

Hi,

Thank you for your response. Apologies for causing confusion.

I checked on your memory initialization screenshot you attached, you have chosen both 'Initialize memory content' and 'enable non-defult initialization file' . You do not have to do so, but only enable non-default initialization file. Here are the summary of steps for you to check whether you have done it correctly:


1. Build your SOPC system with onchip ROM and enable the "Enable non-default initialization file" option. 

2. Generate your SOPC system. 

3. Create a Nios II IDE project based on the just generated SOPC system. 

4. Build your Nios II IDE project and make sure that the *.hex file according to your "User-created initialization file"-name was created. 

5. Go back to SOPC and regenerate the system that now includes your *.hex. 

6. Implement your SOPC sytsem in a Quartus project and compile this to get your *.sof and *.pof files. 

 


You have to make sure that the Nios II IDE creates a *.hex file named according to the field "User-created initialization file". If all your settings in SOPC are okay (reset vector, etc.) then it should work after you re-generated your SOPC system and recompiled your Quartus project. 

After recompilation of your Quartus project, the Nios program should be also in your *.sof file. 


Thank you.

Regards,

Kelly



0 Kudos
KellyJialin_Goh
Employee
1,114 Views

Hi,

Any updates from your end on whether you have successfully tried out the methods I suggested?

Hope to hear on your findings.


Thank you.

Regards,

Kelly


0 Kudos
KellyJialin_Goh
Employee
1,075 Views


Hi,

Any updates from your end on whether you have successfully tried out the methods I suggested?

Hope to hear on your findings.


Thank you.

Regards,

Kelly


0 Kudos
KellyJialin_Goh
Employee
1,045 Views

Hi,

As we do not receive any response from you on the previous question/reply/answer that we have provided. Please login to ‘https://supporttickets.intel.com’, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you on your follow-up questions.


p/s: If any answer from the community or Intel Support are helpful, please feel free to give best answer or rate 4/5 survey.


Thank you.

Regards,

Kelly Jialin, GOH


0 Kudos
Reply