A power-on self-test (POST)
A power-on self-test (POST) is a process performed
by firmware or software routines immediately after a computer
or other digital electronic device is powered on.
This
article mainly deals with personal computers, but many other embedded
systems such as those
in major appliances, avionics,
communications, or medical equipment also have self-test routines which are
automatically invoked at power-on.
The
results of the POST may be displayed on a panel that is part of the device,
output to an external device, or stored for future retrieval by a diagnostic
tool. Since a self-test might detect that the system's usual human-readable
display is non-functional, an indicator lamp or a speaker may be provided to show error codes as
a sequence of flashes or beeps. In addition to running tests, the POST process
may also set the initial state of the device from firmware.
In
the case of a computer, the POST routines are part of a device's pre-boot sequence and only once they complete
successfully is the bootstrap
loader code invoked to
load an operating
system.
In IBM PCcompatible computers,
the main duties of POST are handled by the BIOS, which may hand some
of these duties to other programs designed to initialize very specific peripheral
devices, notably for video and SCSI initialization. These other
duty-specific programs are generally known collectively as option ROMs or individually as the video BIOS,
SCSI BIOS, etc.
The
principal duties of the main BIOS during POST are as follows:
·
verify CPU registers
·
verify the integrity of the BIOS code
itself
·
verify some basic components like DMA,
timer, interrupt controller
·
find, size, and verify system main memory
·
initialize BIOS
·
pass control to other specialized
extension BIOSes (if installed)
·
identify, organize, and select which
devices are available for booting
The
functions above are served by the POST in all BIOS versions back to the very
first. In later BIOS versions, POST will also:
·
discover, initialize, and catalog all system buses and devices
·
provide a user
interface for system's
configuration
·
construct whatever system environment
is required by the target operatingsystem
Comments
Post a Comment