Power On Self Test
When IBM first began shipping the original PC in 1981, it included safety features that had never been seen in a personal computer. These features were the power on self test (POST) and parity-checked memory. Although parity-checked or even error correcting code (ECC) memory is no longer available in most low-end chipsets, every PC still executes a POST when you turn it on.
A series of program routines buried in the motherboard ROM-BIOS chip that tests all the main system components at power-on time. This series of routines is partially responsible for the delay when you turn on your PC; the computer executes the POST before loading the operating system.
What Is Tested?
Whenever you start up your computer, it automatically performs a series of tests that checks the primary components in your system, such as the CPU, ROM, motherboard support circuitry, memory, and major peripherals such as the expansion chassis. These tests are brief and are designed to catch hard (not intermittent) errors.
The POST procedures are not very thorough compared with available disk-based diagnostics. The POST process provides error or warning messages whenever it encounters a faulty component. Although the diagnostics performed by the system POST are not very thorough, they are the first line of defense, especially when it comes to detecting severe motherboard problems.
If the POST encounters a problem severe enough to keep the system from operating properly, it halts the system boot process and generates an error message that often identifies the cause of the problem. These POST-detected problems are sometimes called fatal errors because they prevent the system from booting.
How Are Errors Displayed?
The POST tests normally provide three types of output messages: audio codes, onscreen text messages, and hexadecimal numeric codes that are sent to an I/O port address. POST errors can be displayed in the following three ways:
-
Beep codes. Heard through the speaker attached to the motherboard.
-
POST checkpoint codes. Hexadecimal checkpoint codes sent to an I/O port address. A special card plugged into either an ISA or a PCI card slot is required to view these codes.
-
Onscreen messages. Error messages displayed onscreen after the video adapter is initialized.
BIOS POST Beep Codes
Beep codes are used for fatal errors only, which are errors that occur so early in the process that the video card and other devices are not yet functional. Because no display is available, these codes take the form of a series of beeps that identify the faulty component.
When your computer is functioning normally, you should hear one short beep when the system starts up at the completion of the POST, although some systems (such as Compaq's) beep twice at the end of a normal POST. If a problem is detected, a different number of beeps sounds, sometimes in a combination of short and long tones.
BIOS POST Checkpoint Codes
POST checkpoint codes are hexadecimal numeric codes written by POST routines to I/O port address 80h as each major step is begun. These are often simply called POST codes. These POST codes can be read by only a special adapter card plugged into one of the system slots. These cards originally were designed for system manufacturers to use for burn-in testing of the motherboard.
Several companies make these cards available to technicians. Micro 2000, JDR Microdevices, Data Depot, Ultra-X, and Trinitech are just a few manufacturers that market these POST cards. See the vendor list on the DVD for more information about these manufacturers.
POST checkpoint codes can be used to track the system's progress through the boot process from power-on right up to the point at which the bootstrap loader runs (when the operating system load begins). When you plug a POST code reader card into a slot, during the POST you will see two-digit hexadecimal numbers flash on the card's display.
If the system stops unexpectedly or hangs, you can identify the test that was in progress during the hang from the two-digit code. This step usually helps to identify the malfunctioning component. Most older POST reader cards plug into the 8-bit connector that is a part of the ISA or EISA bus.
Many systems—even those with PCI slots—still have ISA connectors. In that case, those cards are adequate. However, the motherboards found in most newer PCs have no ISA slots at all, so obviously an ISA POST card won't work. Virtually all the companies that make POST cards also make PCI versions.
Micro 2000 has a card called the Post-Probe, which has both ISA and PCI connectors on the same board. PCWiz has a similar card called the PCISA FlipPOST. Both companies also have separate Micro Channel Architecture (MCA) bus adapters that allow POST cards to work in older IBM PS/2 systems with the MCA bus.
No matter what, be sure your POST card works in a PCI slot if you are working on modern PCs. Most newer systems don't have ISA slots, and you will rarely encounter any MicroChannel slots. If you maintain older Compaq or EISA-based systems from any vendor, these systems might use an I/O port address other than port 80.
Simpler POST cards monitor only port 80, but more sophisticated cards have DIP switches or jumper blocks to configure the card to monitor the different I/O port addresses used by Compaq and EISA-based systems.
BIOS POST Onscreen Messages
Onscreen messages are brief messages that attempt to indicate a specific failure. These messages can be displayed only after the point at which the video adapter card and display have been initialized. These different types of error messages are BIOS dependent and vary among BIOS manufacturers, and even in some cases among different BIOSs from the same manufacturer.
POST Memory Count
On some PCs, the POST also displays the results of its system memory test on the monitor. The last number displayed is the amount of memory that tested successfully. For example, a system might display the following message: 32768 KB OK.
The number displayed by the memory test should agree with the total amount of memory installed on the system motherboard. Some older systems display a slightly lower total because they deduct part or all of the 384KB of UMA (upper memory area) from the count.
On old systems that use expanded memory cards, the memory on the card is not tested by the POST and does not count in the numbers reported. Also, this memory test is performed before any system software loads, so many memory managers or device drivers you might have installed do not affect the results of the test.
If the POST memory test stops short of the expected total, the number displayed can indicate how far into the system memory array a memory error lies. This number can help you identify the exact module that is at fault and can be a valuable troubleshooting aid in itself.