The Booting Process of the PC
The process begins when the power supply is switched on:
1. The power supply performs a self-test:
* When
all voltages and current levels are acceptable (+5v, +3.0 through +6.0
is generally considered acceptable), the supply indicates that the
power is stable and sends the "Power Good" signal to the motherboard.
* The
"Power Good" signal is received by the microprocessor timer chip, which
controls the reset line to the microprocessor. The time between turning
on the switch to the generation of the "Power Good" signal is usually
between 0.1 and 0.5 seconds.
* In
the absence of the "Power Good" signal, the timer chip continuously
resets the microprocessor, which prevents the system from running under
bad or unstable power conditions.
1. The microprocessor timer chip receives the "Power Good" signal:
* After
the power supply is switched on, the microprocessor timer chip
generates a reset signal to the processor (the same as if you held the
reset button down for a while on your case) until it receives the
"Power Good" signal from the power supply.
* After
the reset signal turns off, the CPU begins to operate. Code in RAM
cannot be executed since the RAM is empty. The CPU manufacturers
pre-program the processor to always begin executing code at address
"FFFF:0000" (usually the ROM BIOS) of the ROM.
1. The CPU starts executing the ROM BIOS code:
* The
CPU loads and executes the ROM BIOS code starting at ROM memory address
"FFFF:0000" which is only 16 bytes from the top of ROM memory. As such,
it contains only a JMP (jump) instruction that points to the actual
address of the ROM BIOS code.
1. The BIOS searches for adapters (usually video adapters) that may need to load their own ROM BIOS routines:
* Video
adapters provide the most common source of adapter ROM BIOS. The
start-up BIOS routines scan memory addresses "C000:0000" through
"C780:0000" to find video ROM.
* An
error loading any adapter ROM generates an error such as:"XXXX ROM
Error" where XXXX represents the segment address of the failed module.
1. The ROM BIOS checks to see if this is a 'cold boot' or a 'warm boot':
To
determine whether this is a "cold boot" or a "warm boot" the ROM BIOS
startup routines check the value of the two bytes located at memory
location "0000:0472".
* Warm
boot - A word value of 1234h in this location is a flag that indicates
a "warm boot", which causes the memory test portion of the POST
(Power-On Self-Test) to be skipped.
* Cold boot - Any other word value in this location indicates a "cold boot" and full POST.
1. POST (Power-On Self-Test):
The
POST is a series of diagnostic tests that run automatically when you
turn your computer on. The actual tests can differ depending on how the
BIOS is configured, but usually the POST tests the following:
A. The
Video adapter - It is initialized, the video card and video memory is
tested, and configuration information or any errors are displayed.
B. The RAM - A read/write test of each memory address is performed and a running sum of installed memory is displayed.
C. The keyboard - PS/2 ports or USB ports are checked to verify whether the keyboard is connected or not.
D. The Processor - The cache memory is checked and the CPU type and speed are displayed.
E. CMOS - Read/write test.
F. ROM BIOS checksum.
G. RAM refresh verification.
-Note:"The POST operations are not the same for the all BIOS software"
Any
errors found during the POST are reported by a combination of beeps and
displayed error messages. The errors which occur during the POST can be
classified as either 'fatal' or 'non-fatal'. A non-fatal error (e.g.
problem in the extended memory) will typically display an error message
on the screen and allow the system to continue the boot process. A
fatal error (e.g. problem in the processor), on the other hand, stops
the process of booting the computer and is generally signaled by a
series of beep-codes. However, successful completion of the POST is
indicated by a single beep.
1. The BIOS locates and reads the configuration information stored in CMOS:
CMOS
(Complementary Metal-Oxide Semiconductor) is a small area of memory (64
bytes) which is maintained by the current of a small battery attached
to the motherboard. Most importantly, for the ROM BIOS startup routines
(boot sequence), CMOS determines the order in which drives should be
examined for an operating system (floppy disk first, CD-Rom first, or
fixed disk first). Furthermore, it holds some essential information
such as hard drive size, memory address location, and Date & Time.
1. Shadow RAM: (Optional, you can turn it off/on using the CMOS settings)
Shadow
RAM is where a copy of BIOS routines from ROM is stored a special area
of RAM, so that the BIOS routines can be accessed more quickly.
1. Loading the OS (Operating System):
The
BIOS will attempt booting using the boot sequence determined by the
CMOS settings, and examine the MBR (Master Boot Record) of the bootable
disk.
The MBR is the information in the first sector (512 bytes) of
any hard disk or diskette that identifies how and where an operating
system is located so that it can be loaded into the RAM (booted).
The
MBR is also sometimes called the "partition sector" or the "master
partition table" because it includes a table that locates each
partition that the hard disk has been formatted into. In addition to
this table, the MBR also includes a program that reads the boot sector
record of the partition containing the operating system to be booted
into RAM. In turn, that record contains a program that loads the rest
of the operating system into RAM.