FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
5922 Discussions

Flash programming guide for DE0-NANO needed.

Altera_Forum
Honored Contributor II
1,836 Views

Hi. 

I have been searching around in the forum. 

I found a few discussions regarding the flash programmer issues. 

 

I have found the NiosII Flash Programmer Guide and the EPCS IP differs from the one in Quartus II V14.0. 

The one used in the user guide does not have either irq or conduit. ??? 

I suspect the conduit is an ISP programming interface. But do I need to use it? If so,, how?? 

 

My School project is a two core hardware. So there are two elf files to add in the configuration memory. 

 

Anyway, I followed the user guide and get an error 8 in the flash programmer. 

 

See the errors below. 

(Would be nice if somebody could share me a proper guide.) 

 

BR 

Terje. 

 

Info: 2015-maj-26 14:54:40 - (INFO) elf2flash: args = --input=C:/Users/Boss/Documents/Altera/DW12/software/main_core/main_core.elf --output=C:/Users/Boss/Documents/Altera/DW12/software/main_core_bsp/flash/main_core_epcs_flash_controller_0.flash --epcs --verbose 

Info: 2015-maj-26 14:54:40 - (FIN) elf2flash: Starting 

Info: 2015-maj-26 14:54:40 - (FINARE) elf2flash: Program Record: 64176 bytes destined for 0x0 

Info: 2015-maj-26 14:54:40 - (FINARE) elf2flash: Program Record: 7344 bytes destined for 0x11760 

Info: 2015-maj-26 14:54:40 - (FINARE) elf2flash: Start Record: 228 

Info: 2015-maj-26 14:54:40 - (FIN) elf2flash: Done 

Info: Using cable "USB-Blaster [USB-0]", device 1, instance 0x00 

Info: Resetting and pausing target processor: OK 

Info: Reading System ID at address 0x020021A0: verified 

Info: Processor data bus width is 32 bits 

Info: Looking for EPCS registers at address 0x02001000 (with 32bit alignment) 

Info: Initial values: 0001703A 04C00074 9801483A 9CFFF804 983FFD1E 0000203A 

Info: Not here: reserved fields are non-zero 

Info: Looking for EPCS registers at address 0x02001100 (with 32bit alignment) 

Info: Initial values: 93000237 6300080C 603FFD26 90000335 A8000C26 03010004 

Info: Not here: reserved fields are non-zero 

Info: Looking for EPCS registers at address 0x02001200 (with 32bit alignment) 

Info: Initial values: 02C02004 002EE03A 00000F06 90000335 4000683A 0017883A 

Info: Not here: reserved fields are non-zero 

Info: Looking for EPCS registers at address 0x02001300 (with 32bit alignment) 

Info: Initial values: 003FD006 5280040C 501496FA 701CD07A 729CB03A 843FFFC4 

Info: Not here: reserved fields are non-zero 

Info: Looking for EPCS registers at address 0x02001400 (with 32bit alignment) 

Info: Initial values: 00000000 00000000 00000260 00000000 00000000 00000001 

Info: Valid registers found 

Info: EPCS signature is 0x00 

Info: EPCS identifier is 0x000000 

Info: No EPCS layout data - looking for section [EPCS-000000] 

Info: Unable to use EPCS device 

Info: Leaving target processor paused 

Error: Error code: 8 for command: nios2-flash-programmer "C:/Users/Boss/Documents/Altera/DW12/software/main_core_bsp/flash/main_core_epcs_flash_controller_0.flash" --base=0x2001000 --epcs --sidp=0x20021A0 --id=0x1111 --timestamp=1432640681 --device=1 --instance=0 '--cable=USB-Blaster on localhost [USB-0]' --program --verbose
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
924 Views

Hi Experts. 

 

I Finally solved several of my problems. 

I found out what to do with the conduit. 

I can now flash program the software to the configuration memory. 

But the code will not start, and it looks like configuration memory looses the SOF data. 

Because the leds on the board starts to glow in the same way when the leds are unused. 

And I flash program two times because of the dual-core construction. 

I have one IP epcs-flash-programmer in the hardware construction connected to both CPU-cores. 

 

Am I missing something? What do I do wrong?
0 Kudos
Altera_Forum
Honored Contributor II
924 Views

Hi Experts. 

 

Altera Forums seems to be dead :) . 

 

Anyway I'll post my latest results.  

 

sof2flash --epcs --input=project.sof --output=project.flash 

elf2flash --epcs after=prokect.flash --input=firmware.elf --output=firmware.flash 

cat project.flash firmware.flash > hwsw.flash 

nios2-elf-objcopy -I srec -O ihex hwsw.flash hwsw.hex 

 

The firmware should be loaded to address 0x20000 in the onchip fpga memory in this test. 

It looks like the hardware works, but the software does not start.  

Shouldnt nios2-elf-objcopy fix this? Or am I missing something? 

I suspect the code ends up in the wrong place :-/
0 Kudos
Altera_Forum
Honored Contributor II
924 Views

I had a project which I wanted to run from flash and I have managed to come up with the following procedure. 

 

  1. Start Quartus and then Qsys. From Qsys menu start the NIOS II Shell. If you do it from the Windows start menu it will not work as there is a bug in version 13.1, which results in the process finishing without an indication that it did not actually work. 

  2. In the shell go to the location where the flash files are. 

  3. Execute the following command: 

    nios2-flash-programmer --debug --base=0x02011000 --epcs hw.flash 

  4. The command above will program the flash with the NIOS system and will also give you the exact address of the flash controller, note this down. Power cycle the board and try to stick some code on it to verify that the NIOS is starting up okay. 

  5. Execute the following command to flash the application software. 

    nios2-flash-programmer --epcs --debug --base=<base addr in hex that you wrote down> sw.flash 

  6. Have fun. 

0 Kudos
Reply