Nios® II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
12454 Discussions

Rebooting uClinux with custom bootloader

Altera_Forum
Honored Contributor II
800 Views

Hi guys, 

 

 

I'm here again to ask your precious help. I have a project in which I have a SoPC with a Nios2 processor, some peripherals, an on-chip RAM and a SDRAM. Within the on-chip RAM there is a custom bootloader whose role is to load a zImage from a SPI Flash and to place it into the SDRAM. 

 

 

When I turn on my board the system works properly, the bootloader copies the zImage into the SDRAM and then jumps to the first istruction to execute. But If I try to reboot the board by jumping on the reset vector contained in the on-chip RAM it stops while trying to uncompress the kernel. I don't have the same error message each time, I remember "Uncompressed format error" and "crc error", in both cases system is stopped. 

 

 

I have noticed that once the board is turned on, if I download the bootloader via JTAG the first time, the system can be always rebooted without any problems (obviously I'm not downloading bootloader each time via JTAG to make it working but just the first time). 

 

 

Any idea on how to solve this problem? 

 

 

Thanks in advance 

 

 

 

 

Marco
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
82 Views

Hi all, 

 

I solved this problem a few time ago, I'm sorry for the delay. It was simply a problem related to the link address offset value, previously it was 0x00A00000 and it worked well until the zImage has increased its dimension. With a zImage of about 3.5 MB I had to set this value to 0x00C00000 and this solved the problem. 

 

I hope this can help 

 

 

Marco
Reply