# Estimating boot time ?

1. ## Estimating boot time ?

Is it possible to estimate boot time of an embedded system in any form of mathematical equations.Consensus is always to measure boot time and optimize it.However,I am curious can we estimate boot time based on processor architecture,boot mode device,bootloader,processor specifications,developement board,kernel configuration,init scripts,toolchains used etc.

•

2. ## Re: Estimating boot time ?

I would say no (but then I'm not a software engineer). I think the biggest variable is the software engineer coding the boot code. There are some that can write efficient code and others that should take up dish washing instead of software.

•

3. ## Re: Estimating boot time ?

Originally Posted by sudhanwaaa
Is it possible to estimate boot time of an embedded system in any form of mathematical equations.Consensus is always to measure boot time and optimize it.However,I am curious can we estimate boot time based on processor architecture,boot mode device,bootloader,processor specifications,developement board,kernel configuration,init scripts,toolchains used etc.

Hi,

To estimate the boot time of an embedded system, you have to define the condition which if true, renders the system fully booted. Time t_0 is obviously applying power to the system, from then on you can define various t_k, which define that a condition is met (true). Generally there are two times past t_0 to consider:

0) t_0: power is applied,
1) t_1: the core system is operational, and
2) t_3: the application specific system is up and operational, the device can perform ASIC functions.

You can make this list as fine grained as you'd like.

Booting the core system is mostly predicable and can be calculated: initialize the CPU, initialize the memory system, maybe initialize the peripheral system (UART, I2C, etc.), start the kernel, display a message out the UART to indicate the core system is up and running. The time to do this is largely predicable. It would mostly depend on BIST, setting parity to memory, mapping memory to virtual memory, etc. In my experience this can be anything from 0.1 to 1.3 seconds, depending on whether memory needs to be initialized and its parity set, whether there is memory to map, etc. Simple systems will give you a very small t_1 - t_0, and more complex systems will make this slightly larger. However larger than 2 seconds, for embedded systems for an ASIC is considered too slow--the system should be ready ASAP.

Booting the ASIC, involves starting IP hardware around the CPU+memory island. Depending on the functionality of said ASIC, this can take various times and may be predicable within reasonable operating parameters. This time can depend on present or missing external components, day of time, external temperature, previous boot or shutdown state of the system, etc. Generally, for embedded ASIC firmware this time should be no more than 3 seconds, thus bringing overall time to boot an embedded system to no more than 5 seconds.

Again, these times largely depend on the ASIC, its functionality, the requirements imposed by the client, market and physics.

Regards,
lightspeed

1 members found this post helpful.

•

4. ## Re: Estimating boot time ?

Hmmm, looks like lightspeed pretty much verified my premise.

A good embedded SW engineer will write efficient boot code that will have the system up and running ASAP. A dish washer well they write code that eventually gets refactored, i.e. thrown away and rewritten by a good embedded SW engineer

5. ## Re: Estimating boot time ?

I appreciate you for your input

--[[ ]]--