Booting the Computer
When you first apply power to a PC type computer, it begins running a firmware program stored in non-volatile memory in a chip on the motherboard. Newer systems use UEFI or the Unified Extensible Firmware Interface, but older systems use the BIOS (or Basic Input/Output System) defined by IBM in the early 1980s. The firmware performs some power-on self-test operations and detects the processor and memory. It then initializes various programmable devices which may have their own firmware. If all that succeeds, a system with BIOS emits a single beep to indicate success. Any problems encountered along the way cause other audible codes. This page lists those possible error codes, which vary by manufacturer.
For much more on BIOS versus UEFI firmware and how the operating system boots and start services see my Linux booting page.
For multibooting Windows 7 versus OpenBSD or other operating systems, see my multiboot page.
Only after this testing and initialization are completed can the system progress to loading and starting the full operating system. The stages of this operation are described below.
The Power-On Self Test or POST first finds the CPU and then finds the memory.
Start-up values are placed in programmable devices in this order: system board devices, then the video controller, then the I/O controller.
One Beep is Good
A typical BIOS on a system other than a laptop emits one beep when the POST and Initialization stages complete successfully. Other audible codes indicate errors.
At this point the video card should be initialized and you should see the BIOS logo and some narrative output on the display as it tests the system memory that it detected.
You will be told how to get into the BIOS setup, typically
<F12> or some other key.
Read and act quickly, as you have a rather short time to
The output is visible for just a very short time, but you may be able to notice as it detected the I/O controllers, inventoried the PATA and SATA disks, and listed other hardware devices by IRQ and possibly address.
Booting the Operating System
The BIOS then inventories the bootable devices in order according to the list in its configuration. Some potentially bootable devices may have no media present, such as the CD/DVD drive or the USB ports.
For those bootable devices with media present — all the disks plus the populated removable media — it looks for the first one of those media with a valid boot block. This is the first 512-byte block on the media.
This boot block is the system-wide Master Boot Record. It carries out the first stage of loading the operating system from storage into RAM and starting it. See the description of the operating system boot process for more details.
A Phoenix BIOS chip is seen above and at right, near one corner of a system board next to the end of two unpopulated PCI bus slots.
BIOS POST Beep Error Codes
As mentioned above, one beep generally means that the POST and following stages found and initialized the CPU, memory, video and system board I/O interfaces. More than one beep means trouble, see the following tables.
No beep at all might mean that POST or the initialization failed. Or it might simply mean that no speaker is attached to the system board!
AMI / American Megatrends
American Megatrends was founded in 1985 and is headquartered near Norcross, Georgia, part of the Atlanta metropolitan area.
|1 short||All is good!|
|2 short||Parity error in the first 64 kbytes of RAM.|
|3 short||Memory error in the first 64 kbytes of RAM.|
|4 short||Memory error in the first 64 kbytes of RAM, plus a non-functional timer.|
|5 short||CPU error|
|6 short||Keyboard controller error.|
|7 short||CPU virtual mode exception error.|
|8 short||Read/write error on video controller memory.|
|1 long, 8 short||Video controller display/retrace error.|
|9 short||ROM BIOS checksum error. This may be caused by the CMOS battery running down.|
|10 short||CMOS shutdown read/write error. This is likely caused by the CMOS battery running down.|
|11 short||L2 cache error.|
Phoenix Technologies has been around since 1979, giving them plenty of time to add details. The BIOS goes through a series of tasks, writing a one-byte test-point error code to I/O port 0x80h at the start of each. For examples, 0x04 for the "Get CPU type" task, 0x0A for "Initialize CPU registers", 0x0B for "Enable CPU cache", and so on. Note that the tasks are not done in numerical order by error code.
If an error is encountered, the BIOS attempts to initialize the video display and write the current code at the upper left of the screen. It also generates a beep code from the test point error code by:
- Break 8-bit error code into four 2-bit groups.
- Add 1 to each 2-bit value, forming a sequence of four digits each in the range 1 through 4.
- Emit that sequence of numbers as a series of beeps.
For example, "Test 8742 Keyboard Controller" is task 0x22, so:
0x22 = 00100010 --> 00 10 00 10 --> 0 2 0 2 --> 1 3 1 3 convert to break into convert add 1 to each, binary 4 pieces to decimal that many beeps
The following are among the possible Phoenix BIOS beep error codes:
|1||All is good!|
|1-2-2-1||Keyboard controller failure|
|1-2-2-3||BIOS ROM checksum error|
|1-3-1-1||DRAM memory refresh error|
|1-3-1-3||Keyboard controller failure|
|2-1-2-2||POST device initialization failure|
|2-1-2-3||BIOS ROM copyright notice error|
Award Software International existed for just a couple of years, from its founding in 1996 until it was absorbed inthe Phoenix Technologies in mid 1998. On top of that, there were many versions of the Award BIOS and they were customized and supported by the system board manufacturers.
There were some codes that seemed to be fairly standard, shown below.
But seriously, if you have an Award BIOS then you have some old computing hardware. It's time to upgrade!
|1 long||All is good!|
|1 long, 2 short||Video controller could not be initialized.|
|Repeated beeping||CPU or memory error, excessive CPU heat or mis-seated CPU or memory.|
Speaking of antiquated hardware, IBM made PCs back in the early 1980s. Some early "PC compatible" hardware was designed by reverse-engineering, including the original IBM PC BIOS.
|Original IBM BIOS Codes|
|1 long||All is good!|
|No beep, or
continuous tone, or
repeating short beet
|Loose card, low voltage or other basic electrical problem.|
|2 short||Initialization error. The error code will be displayed on the screen:|
|Range||Error is in...|
|400—499||Monochrome display controller|
|500—599||Color display controller|
|600—699||Floppy disk drive or controller|
|1000—1099||Second parallel port|
|1100—1299||Asynchronous communication port|
|1500—1599||Synchronous communication port|
|1700—1799||Hard disk or controller|
|1800—1899||XT expansion unit|
|2000—2199||Bisynchronous communication port|
|2400—2599||EGA/MCA system board video|
|7000—7099||Phoenix BIOS chips|
|7300—7399||3.5" floppy disk drive|
|21000—21099||SCSI fixed disk and controller|
|1 long, 1 short||System board problem|
|1 long, 2 short, or
1 long, 3 short
|Video controller problem|
|3 long||3270 keyboard adapter problem|