BIOS Basics - BIOS Central
BIOS Basics - BIOS Central
BIOS
UPDATES
Click to scan for
Bios Updates
Faraday A- Inside every PC out there is BIOS, which stands for Basic Input Output System. In a nutshell, BIOS is software that interacts between a computers Debug Routines
Tease hardware and the operating system and software applications. There are several types of BIOS', ranging from the motherboard ROM BIOS to adapter Interrupts
HP BIOS' such as video BIOS, drive controller BIOS, network adapter BIOS, SCSI adapter BIOS, etc... These BIOS' are the lowest level of software in a
IBM computer providing a set of small programs or software routines that allow the hardware of a computer to interact with the operating system by a set
BIOS Beep Codes:
When power is applied to the system and all output voltages from the power supply are good, the power supply will generate a power good signal
which is received by the motherboard timer. When the timer receives this signal, it stops forcing a reset signal to the CPU and the CPU begins
processing instructions.
2. Actual boot
The very first instruction performed by a CPU is to read the contents of a specific memory address that is preprogrammed into the CPU. In the case
of x86 based processors, this address is FFFF:0000h. This is the last 16 bytes of memory at the end of the first megabyte of memory. The code that
the processor reads is actually a jump command (JMP) telling the processor where to go in memory to read the BIOS ROM. This process is
traditionally referred to as the bootstrap, but now commonly referred to as boot and has been broadened to include the entire initialization process
from applying power to the final stages of loading the operating system.
http://www.bioscentral.com/misc/biosbasics.htm 1/3
8/18/2015 BIOS Basics - BIOS Central
3. POST
POST stands for Power On Self Test. It's a series of individual functions or routines that perform various initialization and tests of the computers
hardware. BIOS starts with a series of tests of the motherboard hardware. The CPU, math coprocessor, timer IC's, DMA controllers, and IRQ
controllers. The order in which these tests are performed varies from mottherboard to motherboard. Next, the BIOS will look for the presence of video
ROM between memory locations C000:000h and C780:000h. If a video BIOS is found, It's contents will be tested with a checksum test. If this test is
successful, the BIOS will initialize the video adapter. It will pass controller to the video BIOS, which will inturn initialize itself and then assume
controller once it's complete. At this point, you should see things like a manufacturers logo from the video card manufacturer video card description or
the video card BIOS information. Next, the BIOS will scan memory from C800:000h to DF800:000h in 2KB increments. It's searching for any other
ROM's that might be installed in the computer, such as network adapter cards or SCSI adapter cards. If a adapter ROM is found, it's contents are
tested with a checksum test. If the tests pass, the card is initialized. Controller will be passed to each ROM for initialization then the system BIOS will
resume controller after each BIOS found is done initializing. If these tests fail, you should see a error message displayed telling you "XXXX ROM
Error". The XXXX indicates the segment address where the faulty ROM was detected. Next, BIOS will begin checking memory at 0000:0472h. This
address contains a flag which will tell the BIOS if the system is booting from a cold boot or warm boot. A value of 1234h at this address tells the BIOS
that the system was started from a warm boot. This signature value appears in Intel little endian format , that is, the least significant byte comes first,
they appear in memory as the sequence 3412. In the event of a warm boot, the BIOS will will skip the POST routines remaining. If a cold start is
indicated, the remaining POST routines will be run. During the POST test, a single hexadecimal code will be written to port 80h. Some other PC's
send these codes to other ports however. Compaq sends them to port 84h, IBM PS/2 model 25 and 30 send them to port 90h, model 20-286 send
them to port 190h. Some EISA machines with an Award BIOS send them to port 300h and system with the MCA architecture send them to port 680h.
Some early AT&T, Olivetti, NCR and other AT Clones send them to the printer port at 3BC, 278h or 378h. This code will signify what is being tested at
any given moment. Typically, when the BIOS fails at some point, this code will tell you what is failing.
Once POST is complete and no errors found, the BIOS will begin searching for an operating system. Typically, the BIOS will look for a DOS Volume
Boot Sector on the floppy drive. If no operating system is found, it will search the next location, the hard drive C. If the floppy drive (A), has a
bootable floppy in it, the BIOS will load sector 1, head 0, cylinder 0 from the disk into memory starting at location 0000:7C00h. The first program to
load will be IO.SYS, then MSDOS.SYS. If the floppy does not contain a DOS volume boot sector, then BIOS will next search the computers hard drive
for a master partition boot sector and load it into memory at 0000:7C00h. There are some occasions in which you will encounter problems with the
proper loading of the Volume Boot Sector. Below are some of those:
A. If the first byte of the Volume Boot Sector is less than 6h, then you will receive a message similar to "Diskette boot record error".
B. If the IO.SYS or MSDOS.SYS are not the first two files in the Volume Boot Sector, then you will see a message similar to "Non-system disk
or disk error".
C. If the Volume Boot Sector is corrupt or missing, you will get a message similar to "Disk boot failure"
Once the BIOS has searched for a bootable floppy device, it should turn it's attention to the next boot device it's programmed to look for. The next
device is typically the hard drive, or C. Like a floppy drive, the BIOS will attempt to load the Volume Boot Sector from sector 1, head 0, cylinder 0
from the Master Boot Sector, or MBS, into memory starting at 0000:7C00h. The BIOS will check the last two bytes of the MBS. They should be 55h
and AAh respectively. If they are not, then you will receive an error message similar to "No boot device available" and "System initialization will halt".
If they are correct, then the BIOS will continue the loading process. At this point, the BIOS will scan the MBR in search of any extended partitions. If
any extended partitions are identified, the original boot sector will search for a boot indicator byte which indicates a active and bootable partition. If it
cannot find one, you will receive a message similar to "Invalid partition table".
At this, once a active partition is found, the BIOS will search for a Volume Boot Sector on the bootable partition and load the VBS into memory and test
it. If the VBS is not readable or corrupt, you will see a message similar to "Error loading operating system". At the point, the BIOS will read the last
two bytes of the VBS. These bytes should be 55h and AAh respectively. If they are not, then you will see a message similar to "Missing operating
system" It is at this point that the BIOS will begin loading of the operating system.
Intel and Microsoft took the first stab at Plug and Play with the specification for ISA on May 28, 1993. Later, Compaq, Phoenix and Intel developed the
BIOS specification for Plug and Play, first released on November 1, 1993. Plug and Play requires three elements of the system be written to it's
standards. The motherboard BIOS, the operating system, and the boards and peripherals attached to the PC. Devices that don't conform are
considered legacy devices.
The basic procedure for plug and play is a three step process. First, the system checks what resources are needed for each expansion device. Next,
the system coordinates assignments to IRQ's, DMA's and I/O Ports to avoid conflicts and finally, the system tells the software what choices it has
made. In order to do this, the BIOS calls upon specific features of a plug and play expansion board. To achieve this, the expansion board must be able
to deactivate itself from normal control signals to avoid conflicts with other devices. In addition to this, each expansion board has registers that are
accessed through standard I/O port addresses so the BIOS and operating system can configure the board. These ports are Address, Write Data and
Read Data.
The Address port functions like a pointer the expands the control registers accessible to your system without stealing more system resources. The plug
and play specification defines eight card control registers and two large ranges. One range of 24 registers for future expansion of the standard and
another 16 registers for board makers for their own purposes. The Address port allows the Write Data port to choose which logical devices reactive
and the resources used by them. Some boards, such as video adapters and disk controller cards, start up active because they are needed at bootup.
Other devices, such as sound cards, modems and such come up inactive during boot and wait to be configured for use by the operating system.
Typically, any board that starts up inactive, stays this way until specifically activated by the operating system. Every plug and play board has specific
circuitry that handles this configuration process, always monitoring the signals of the bus. Every plug and play devices operates in four states. Wait for
Key, Isolation, Configuration and Sleep.
http://www.bioscentral.com/misc/biosbasics.htm 2/3
8/18/2015 BIOS Basics - BIOS Central
All plug and play devices, whether inactive or active, bootup in their Wait for Key state. In this state, each board will refuse to respond until they
receive the Initialization Key. This Initialization key is a 32-step process between the host system and each expansion board. In order for the
initialization to be successful, this 32-step must be correct. Once this is successful, the expansion board shifts itself into Sleep.
BIOS Manufacturers
There are a number of BIOS manufacturers, but the three leader's are Phoenix Software, American Megatrends and Award Software. Each of these
BIOS manufacturers produce BIOS's for PC's and each has it's strong points and weaknesses. It is not my goal or intention to lean towards one
manufacturer over the other. One of my PC's has an Award BIOS and the other has a AMI BIOS, so these are the BIOS's in which I will be using for
most of this discussion.
The BIOS is comprised of several independent functions or routines that are distinct from one another. Even though these routines are separate and
distinct from one another, they get stored in the same memory location. The BIOS is way to refer to each of these separate functions as a entire
group. There are functions that test the computer, routines to let software take control, and PnP (in some) to determine which peripherals are
installed and that these components do not conflict with one another in I/O activities and memory allocation.
(Under construction)
Copyright © 1988 - 2015 by Bob Hurt. All rights reserved. Bios Central is a trademark of Bob Hurt.
http://www.bioscentral.com/misc/biosbasics.htm 3/3