A method and apparatus to provide accurate and automated timing of firmware
routines, such as initialization tasks at boot time, is provided. Since
each task sends a progress indicator code to a display buffer when it
starts to run, by saving processor time stamps at the time these codes
change, it is possible to calculate and store the time duration for each
routine. In the case of system initialization, these time durations can be
an indication of problems if they are much longer than normal or an
indication of excessive, inefficient, or ineffective processing that might
be speed up in order to reduce the total boot time.