From: "William Case" <billlinux@xxxxxxxxxx>
Hi;
I didn't want to steal a thread from someone who has a real problem, but
an issue was raised in the thread entitled 'Grub' by Marko Vojinovic
that has been bothering me for a long time.
"And to my surprise, there the question was repeated, more
specific: "what happens between the points of pushing the power
button and the point when OS starts to load?" ;-)
I was amazed !! The sequence of actions was explained in a way
that did not need any too technical background knowledge, while
at the same time it was extremely detailed. It started off along
the lines of "voltage on the circuitry rises, and the oscillator
starts ticking. The first few ticks activate a circuit that
sends a reset signal to the processor...".
The moral of the story: it was way more complicated than I
thought, while the author was stating that the answer is
somewhat oversimplified..."
I have been trying to find that answer for some time now.
What happens in the micro-seconds between hitting the power button until
BIOS is loaded from CMOS into RAM memory? There is lots of information
available about what happens next.
I have googled etc. for a source of this information. There is none
that I can find. As I said, lots of 'How BIOS works' none on 'How power
up/on works'. Any directions, recommended reading or explanations would
be warmly appreciated.
BIOS is not stored in CMOS. It is in an EEPROM (or similar) these days.
So power turns on and CPU execution begins at the "usual" address.
CMOS is at a fixed address known to the BIOS so it simply reads it as
needed. Between the time power is applied and the first video appears
on screen some basic CPU, EEPROM, various hardware features, minor amounts
of RAM, setup and checks are made. These are things like "Is the EEPROM
checksum OK?" "Is the CPU executing properly?" "Initialize the various
hardware features and test them." And so forth. Some tests require minor
amounts of ram. So setting up the path to the RAM is probably first. Then
a small bit, hundreds of bytes, is checked and used. Then, for example,
the onboard serial ports, parallel ports, and such can be initialized to
safe states and some quick checks performed on them.
But the first thing the CPU needs to do is find the EEPROM.
That's a rather brief description. I hope it gives the flavor of the
matter, though.
{^_^}