The Booting Process of the PC
Version 1.00 January 23, 2002
The process begins when the power supply is switched on:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
- The Video adapter - It is initialized, the video card and video memory is tested, and configuration information or any errors are displayed.
- The RAM - A read/write test of each memory address is performed and a running sum of installed memory is displayed.
- The keyboard - PS/2 ports or USB ports are checked to verify whether the keyboard is connected or not.
- The Processor - The cache memory is checked and the CPU type and speed are displayed.
- CMOS - Read/write test.
- ROM BIOS checksum.
- 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.
- 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.
- 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.
- 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.
By: S. Ebrahim Shubbar
A downloadable text copy of this document: