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

Update bitstream and kernel in flash from Linux : A clean way to generate binary file

Altera_Forum
Honored Contributor II
1,017 Views

Hi all, 

 

I wish to update my entire system from a running Linux by changing Flash content : changing bitstream and kernel. 

My flash is partitioned with 2 area : bitstream (4MB ) and kernel (4MB ). 

 

My main issue is that using altera tools to convert sof2flash and elf2flash I do not have intermediary files : raw binary files that I can write to my flash using  

cp <file> /dev/mtdXI only get srec files that are not usable from Linux to Flash my external memory (as far as I know, but maybe there is a tool to write srec files from nios2-linux) 

 

Ok I have already binary file : the .sof and my zImage but : 

 

  • sof2flash adds (or remove) some headers and configure bitstream loading mode : in my case active parallel 

  • elf2flash adds a bootloader before my zImage 

 

So I need to pass through sof2flash and elf2flash. Unfortunately those software does not provide binary format of the generated files .... 

 

So the most automated way I found is to : 

 

  1. Flash my board using Altera tools (elf2flash, sof2flash and nios2-flash-programmer) 

  2. Read back partitions from flash using nios2-flash-programmer -B <ADD>+<SIZE> -R zImage.tmp --base=0x08000000 

  3. use srec_cat srec_cat -output zImage.bin -binary zImage.tmp 

 

Doing this I have a zImage.bin adapted to my Flash with a bootloader inside. 

I can also dump the flash from linux and then transfer it using ftp but I cannot automate the process easily. 

 

Does someone has a better solution ?? 

 

Best regards
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
312 Views

You can use nios2-elf-objcopy on the SREC like so: 

elf2flash --base=0xc1000000 --end=0xc1FFFFFF --reset=0xc1540020 --input=zImage --output=zImage.flash --boot=/opt/altera/nios2eds/components/altera_nios2/boot_loader_cfi.srec && nios2-elf-objcopy -I srec -O binary zImage.flash /data/nios/nios2-linux/zImage.bin
0 Kudos
Reply