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

Reducing Boot TIme

Altera_Forum
Honored Contributor II
1,092 Views

We are making a custom board that we need to boot as fast as possible. It'll have a Cyclone II chip and 16 MBytes of SDRAM and a Compact Flash (ext3 formatted). It'll have the SMSC91C9111 ethernet chip but I don't need the ENET up quickly.  

 

I need a custom device driver going and a user space program(s) to pull data that has been collected while booting and then continue pulling recorded data.  

 

To experiment reducing the boot time -- 

 

1. I'm using the Cyclone Dev Board and the uClinux OS (because of needing the Compact Flash) 

 

2. I've removed what I think I can with "make menuconfig" (but of course I'm not sure of some things). Went into ../vendors/Altera/nios2 and removed a bunch from "romfs_list" file.  

 

3. I wrote a user space program that turns on all the leds and I modified the '"rc" file to start this before I do anything with the ethernet. 

 

4. I've used a stop watch and obtained. 

 

DEFAULT SETTINGS - boot time approx. 12 seconds 

 

"Optimized" - boot time approx. 10.2 seconds 

 

QUESTION - Is there anything else I don't need or does anyone else have anything I can try. I will write a 'white paper' if people show interest. 

 

Thanks in Advance -
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
415 Views

I have done this before but it involves a lot of tries and a lot of compiles. I spent a lot of time working on LFS (Linux From Scratch) to understand a lot about how the system boots. 

 

Then, look at the output and see what the kernel is doing and where it hic cups. Some usual things that take time are discoveries (udev, network, ...) and things like dynamic mips calculation... 

 

Start with a minimal config and add the things you "know" you need. Then build the kernel and watch it not boot up :-). Start adding components until the system boots. 

 

If the result is still not fast enough for you, you will need to do some more digging and you may have to modify some code. 

 

I know this sounds like a horrible hack way of doing this, but there are way too many dependencies to make this and exact science -- if it were, they would have added a "Ludicrous Speed" boot option in the config. :-)
0 Kudos
Altera_Forum
Honored Contributor II
415 Views

Thanks - 

I did trial and error yesterday and am willing to do more with the final system.  

 

Really laughed at "Ludicrous Speed" By the way the combination to my suitcase is "12345" :-)
0 Kudos
Reply