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

sof in CFI and zImage in CFI

Altera_Forum
Honored Contributor II
1,142 Views

Hello all, 

 

I have DSP Development board Stratix II Proffesional Edition (DK-DSP-2S180N) and try to save the sof and the zImage to Flash memory.  

I want to run the system after power on automaticly. 

 

I use: 

/>nios2-configure-sof standard.sof 

create flash file: 

/>sof2flash --offset=0x000000 --input=standard.sof --output=standard.flash 

programming flash with fpga configuration: 

/>nios2-flash-programmer --base=0x05000000 standard.flash 

 

now, when i switch on the board, the sof is loading to fpga and bitstream is ok loaded. 

 

But when i creating flash from project: 

/>elf2flash --base=0x02000000 --end=0x02ffffff --reset=0x02000000 --input=zImage --output=ext_flash.flash --boot=boot_loader_cfi_srec.srec 

 

and programming flash: 

 

/>nios2-flash-programmer --base=0x05000000 ext_flash.flash 

 

and turn off and turn on the board, the led is blinking but it finished with error and no sof and no zImage is loaded. 

 

Where is the error ? 

 

I have:  

nios2 cpu - reset vector sdram = 0x02000000 

sdram controller (sdram) = 0x02000000 

flash memory interface CFI (ext_flash) = 0x05000000 

 

Thank you for your answer. 

 

Jan Naceradsky, Czech Republic
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
366 Views

If you want to load the zImage from flash, the reset vector has to be in flash. Also the base and offset for elf2flash have to be in flash. 

 

You also have to leave enough room for the sof in flash. 

 

For elf2flash: 

--base = The base address of flash, + 0xc0000000 if using an MMU 

--end = The end address of flash, + 0xc0000000 if using an MMU 

--reset = The reset address, which should be in flash, and must be high enough so that the sof fits in flash below it. Do NOT subtract the base from this value. +0xc0000000 if using an MMU. 

 

for nios2-flash-programmer: 

--base = The base address of flash. If using an MMU, add the --mmu option, but do NOT add an offset to this address.
0 Kudos
Altera_Forum
Honored Contributor II
366 Views

I dont use MMU.  

Okay, i will change the reset vector to the flash memory. 

Exception vector should be in sdram ?  

And in menuconfig i choose a device to execute kernel from sdram or ext_flash ? 

 

Is somewhere descripe, how it should be and the mechanism, how the system boot the sof and how boot the program (zImage). I read something in nioswiki, but it works me only for niosIIcycloneII board. 

 

I have sof with 6081 kB and zImage 1920 kB. The sof should be from 0x0000-0x5F0400 and zImage from 0x600000 up ? Or the zImage should be from 0x00000-0x1E0000 and sof upper ??? (0x200000 - ....). 

 

Thank you very much for answer. 

 

Jan
0 Kudos
Reply