Imran Shah
Imran Shah
Contents
[hide]
1 General internal workings
2 Fundamental structure
3 Error reporting
3.1 Original IBM POST beep codes
3.2 POST AMI BIOS beep codes
3.3 POST beep codes on CompTIA A+ Hardware Core exam
3.4 IBM POST diagnostic code descriptions
4 Macintosh POST
4.1 Old World Macs (until 1998)
4.2 New World Macs (1998-1999)
4.3 New World Macs (1999 onward) and Intel-based Macs
5 Amiga POST
5.1 POST Sequence of Amiga
5.2 Sequence for all main Amiga models
5.3 Amiga Color Screens Scheme
5.4 Sequence for A4000
5.4.1 Failed Tests Color Scheme
5.5 Amiga Keyboard LED error signals
6 See also
7 External links
Error Reporting:
The original IBM BIOS reported errors detected during POST by outputting a number to a fixed I/O port address,
80. Using a logic analyzer or a dedicated POST card, an interface card that shows port 80 output on a small display,
a technician could determine the origin of the problem. (Note that once an operating system is running on the
computer, the code displayed by such a board is often meaningless, since some OSes, e.g. Linux, use port 80 for I/O
timing operations.) In later years, BIOS vendors used a sequence of beeps from the motherboard-attached
loudspeaker to signal error codes. Some vendors have developed proprietary variants or enhancements, such as
MSI's D-Bracket. POST beep codes vary from manufacturer to manufacturer.
[edit] Original IBM POST beep codes
1 short beep - Normal POST - system is OK
2 short beeps - POST error - error code shown on screen
No beep - Power supply, system board problem, disconnected CPU, or disconnected speaker,
Continuous beep - Power supply, system board, or keyboard problem
Repeating short beeps - Power supply or system board problem or keyboard
1 long, 1 short beep - System board problem
1 long, 2 short beeps - Display adapter problem (MDA, CGA)
1 long, 3 short beeps - Enhanced Graphics Adapter (EGA)
3 long beeps - 3270 keyboard card
[edit] POST AMI BIOS beep codes
1 - Memory refresh timer error
2 - Parity error in base memory (first 64 KiB block)
3 - Base memory read/write test error
4 - Mother board timer not operational (check all PSU to MB connectors seated)
5 - Processor failure
6 - 8042 Gate A20 test error (cannot switch to protected mode)
7 - General exception error (processor exception interrupt error)
8 - Display memory error (system video adapter)
9 - AMI BIOS ROM checksum error
10 - CMOS shutdown register read/write error
11 - Cache memory test failed
12 - Mother board does not detect a RAM module (continuous beeping)
Reference: AMIBIOS8 Check Point and Beep Code List, version 2.0, last updated 10 June 2008
[edit] POST beep codes on CompTIA A+ Hardware Core exam
These POST beep codes are covered specifically on the CompTIA A+ Core Hardware Exam:
Beeps Meaning
Steady, short
Power supply may be bad
beeps
Long continuous
Memory failure
beep tone
Steady, long
Power supply bad
beeps
No beep Power supply bad, system not plugged in, or power not turned on
If everything seems to be functioning correctly there may be a problem with the 'beeper' itself.
No beep
The system will normally beep one short beep.
BIOS
In IBM PC Compatible computers, the basic input/output system (BIOS), also known as the
System BIOS, is a de facto standard defining a firmware interface.[1]
The BIOS of a PC software is built into the PC, and is the first code run by a PC when powered
on ('boot firmware'). The primary function of the BIOS is to load and start an operating system.
When the PC starts up, the first job for the BIOS is to initialize and identify system devices such
as the video display card, keyboard and mouse, hard disk, CD/DVD drive and other hardware.
The BIOS then locates software held on a peripheral device (designated as a 'boot device'), such
as a hard disk or a CD, and loads and executes that software, giving it control of the PC.[2] This
process is known as booting, or booting up, which is short for bootstrapping.
BIOS software is stored on a non-volatile ROM chip built into the system on the mother board.
The BIOS software is specifically designed to work with the particular type of system in
question, including having a knowledge of the workings of various devices that make up the
complementary chipset of the system. In modern computer systems, the BIOS chip's contents can
be rewritten allowing BIOS software to be upgraded.
A BIOS will also have a user interface (or UI for short). Typically this is a menu system
accessed by pressing a certain key on the keyboard when the PC starts. In the BIOS UI, a user
can:
configure hardware
set the system clock
enable or disable system components
select which devices are eligible to be a potential boot device
set various password prompts, such as a password for securing access to the BIOS UI
functions itself and preventing malicious users from booting the system from
unauthorized peripheral devices.
The BIOS provides a small library of basic input/output functions used to operate and control the
peripherals such as the keyboard, text display functions and so forth, and these software library
functions are callable by external software. In the IBM PC and AT, certain peripheral cards such
as hard-drive controllers and video display adapters carried their own BIOS extension ROM,
which provided additional functionality. Operating systems and executive software, designed to
supersede this basic firmware functionality, will provide replacement software interfaces to
applications.
The role of the BIOS has changed over time; today BIOS is a legacy system, superseded by the
more complex Extensible Firmware Interface (EFI), but BIOS remains in widespread use, and
EFI booting has only been supported in x86 Windows since 2008. BIOS is primarily associated
with the 16-bit and 32-bit architecture eras (x86-32), while EFI is used for some 32-bit and most
64-bit architectures. Today BIOS is primarily used for booting a system, and for certain
additional features such as power management (ACPI) and video initialization (in X.org), but
otherwise is not used during the ordinary running of a system, while in early systems
(particularly in the 16-bit era), BIOS was used for hardware access – operating systems (notably
MS-DOS) would call the BIOS rather than directly accessing the hardware. In the 32-bit era and
later, operating systems instead generally directly accessed the hardware using their own device
drivers. However, the distinction between BIOS and EFI is rarely made in terminology by the
average computer user, making BIOS a catch-all term for both systems.
Contents
[hide]
1 Terminology
2 IBM PC-compatible BIOS chips
3 Flashing the BIOS
4 BIOS chip vulnerabilities
5 Overclocking
6 Virus attacks
o 6.1 CIH
o 6.2 Black Hat 2006
o 6.3 Persistent BIOS Infection
7 Firmware on adapter cards
8 BIOS boot specification
9 Changing role of the BIOS
10 The BIOS business
11 See also
12 References
13 Further reading
14 External links
o 14.1 Specifications
[edit] Terminology
The term first appeared in the CP/M operating system, describing the part of CP/M loaded during
boot time that interfaced directly with the hardware (CP/M machines usually had only a simple
boot loader in their ROM). Most versions of DOS have a file called "IBMBIO.COM" or
"IO.SYS" that is analogous to the CP/M BIOS.
Among other classes of computers, the generic terms boot monitor, boot loader or boot ROM
were commonly used. Some Sun and PowerPC-based computers use Open Firmware for this
purpose. There are a few alternatives for Legacy BIOS in the x86 world: Extensible Firmware
Interface, Open Firmware (used on the OLPC XO-1) and coreboot.
Boot Block
DMI Block
Main Block
PhoenixBIOS D686. This BIOS chip is housed in a PLCC package, which is, in turn, plugged
into a PLCC socket.
Prior to the early 1990s, BIOSes were stored in ROM or PROM chips, which could not be
altered by users. As its complexity and need for updates grew, and re-programmable parts
became more available, BIOS firmware was most commonly stored on EEPROM or flash
memory devices. According to Robert Braver, the president of the BIOS manufacturer Micro
Firmware, Flash BIOS chips became common around 1995 because the electrically erasable
PROM (EEPROM) chips are cheaper and easier to program than standard erasable PROM
(EPROM) chips. EPROM chips may be erased by prolonged exposure to ultraviolet light, which
accessed the chip via the window. Chip manufacturers use EPROM programmers (blasters) to
program EPROM chips. Electrically erasable (EEPROM) chips come with the additional feature
of allowing a BIOS reprogramming via higher-than-normal amounts of voltage.[3] BIOS versions
are upgraded to take advantage of newer versions of hardware and to correct bugs in previous
revisions of BIOSes.[4]
Beginning with the IBM AT, PCs supported a hardware clock settable through BIOS. It had a
century bit which allowed for manually changing the century when the year 2000 happened.
Most BIOS revisions created in 1995 and nearly all BIOS revisions in 1997 supported the year
2000 by setting the century bit automatically when the clock rolled past midnight, December 31,
1999.[5]
The first flash chips were attached to the ISA bus. Starting in 1997, the BIOS flash moved to the
LPC bus, a functional replacement for ISA, following a new standard implementation known as
"firmware hub" (FWH). In 2006, the first systems supporting a Serial Peripheral Interface (SPI)
appeared, and the BIOS flash moved again.
The size of the BIOS, and the capacities of the ROM, EEPROM and other media it may be
stored on, has increased over time as new features have been added to the code; BIOS versions
now exist with sizes up to 16 megabytes. Some modern motherboards are including even bigger
NAND Flash ROM ICs on board which are capable of storing whole compact operating system
distribution like some Linux distributions. For example, some recent ASUS motherboards
included SplashTop Linux embedded into their NAND Flash ROM ICs.
EEPROM chips are advantageous because they can be easily updated by the user; hardware
manufacturers frequently issue BIOS updates to upgrade their products, improve compatibility
and remove bugs. However, this advantage had the risk that an improperly executed or aborted
BIOS update could render the computer or device unusable. To avoid these situations, more
recent BIOSes use a "boot block"; a portion of the BIOS which runs first and must be updated
separately. This code verifies if the rest of the BIOS is intact (using hash checksums or other
methods) before transferring control to it. If the boot block detects any corruption in the main
BIOS, it will typically warn the user that a recovery process must be initiated by booting from
removable media (floppy, CD or USB memory) so the user can try flashing the BIOS again.
Some motherboards have a backup BIOS (sometimes referred to as DualBIOS boards) to recover
from BIOS corruptions.
[edit] Overclocking
Some BIOS chips allow overclocking, an action in which the CPU is adjusted to a higher clock
rate than its factory preset. Overclocking may, however, seriously compromise system reliability
in insufficiently cooled computers and generally shorten component lifespan.
[edit] CIH
The first was a virus which was able to erase Flash ROM BIOS content, rendering computer
systems unstable. CIH, also known as "Chernobyl Virus", appeared for the first time in mid-1998
and became active in April 1999. It affected systems' BIOS's and often they could not be fixed
on their own since they were no longer able to boot at all. To repair this, Flash ROM IC had to
be removed from the motherboard to be reprogrammed elsewhere. Damage from CIH was
possible since the virus was specifically targeted at the then widespread Intel i430TX
motherboard chipset, and the most common operating systems of the time were based on the
Windows 9x family allowing direct hardware access to all programs.
Modern systems are not vulnerable to CIH because of a variety of chipsets being used which are
incompatible with the Intel i430TX chipset, and also other Flash ROM IC types. There is also
extra protection from accidental BIOS rewrites in the form of boot blocks which are protected
from accidental overwrite or dual and quad BIOS equipped systems which may, in the event of a
crash, use a backup BIOS. Also, all modern operating systems like Linux, Mac OS X, Windows
NT-based Windows OS like Windows 2000, Windows XP and newer, do not allow user mode
programs to have direct hardware access. As a result, as of 2008, CIH has become essentially
harmless, at worst causing annoyance by infecting executable files and triggering alerts from
antivirus software. Other BIOS viruses remain possible, however[6]: since most Windows users
run all applications with administrative privileges, a modern CIH-like virus could in principle
still gain access to hardware.
The second one was a technique presented by John Heasman, principal security consultant for
UK based Next-Generation Security Software at the Black Hat Security Conference (2006),
where he showed how to elevate privileges and read physical memory, using malicious
procedures that replaced normal ACPI functions stored in flash memory.
The third one, known as "Persistent BIOS infection", was a method presented in CanSecWest
Security Conference (Vancouver, 2009) and SyScan Security Conference (Singapore, 2009)
where researchers Anibal Sacco [7] and Alfredo Ortega, from Core Security Technologies,
demonstrated insertion of malicious code into the decompression routines in the BIOS, allowing
for nearly full control of the PC at every start-up, even before the operating system is booted.
The proof-of-concept does not exploit a flaw in the BIOS implementation, but only involves the
normal BIOS flashing procedures. Thus, it requires physical access to the machine or for the user
on the operating system to be root. Despite this, however, researchers underline the profound
implications of their discovery: “We can patch a driver to drop a fully working rootkit. We even
have a little code that can remove or disable antivirus.”[8]
Older PC operating systems, such as MS-DOS (including all DOS-based versions of Microsoft
Windows), and early-stage bootloaders, may continue to use the BIOS for input and output.
However, the restrictions of the BIOS environment means that modern OSes will almost always
use their own device drivers to directly control the hardware. Generally, these device drivers
only use BIOS and option ROM calls for very specific (non-performance-critical) tasks, such as
preliminary device initialization.
In order to discover memory-mapped option ROMs during the boot process, PC BIOS
implementations scan real memory from 0xC0000 to 0xF0000 on 2 KiB boundaries, looking for a
ROM signature: 0xAA55 (0x55 followed by 0xAA, since the x86 architecture is little-endian). In
a valid expansion ROM, this signature is immediately followed by a single byte indicating the
number of 512-byte blocks it occupies in real memory. The next byte contains an offset
describing the option ROM's entry point, to which the BIOS immediately transfers control. At
this point, the expansion ROM code takes over, using BIOS services to register interrupt vectors
for use by post-boot applications, provide a user configuration interface, or display diagnostic
information.
There are many methods and utilities for examining the contents of various motherboard BIOS
and expansion ROMs, such as Microsoft DEBUG or the UNIX dd.
There was a similar transition for the Apple Macintosh, where the system software originally
relied heavily on the ToolBox—a set of drivers and other useful routines stored in ROM based
on Motorola's 680x0 CPUs. These Apple ROMs were replaced by Open Firmware in the
PowerPC Macintosh, then EFI in Intel Macintosh computers.
Later BIOS took on more complex functions, by way of interfaces such as ACPI; these functions
include power management, hot swapping and thermal management. However BIOS limitations
(16-bit processor mode, only 1 MiB addressable space, PC AT hardware dependencies, etc.)
were seen as clearly unacceptable for the newer computer platforms. Extensible Firmware
Interface (EFI) is a specification which replaces the runtime interface of the legacy BIOS.
Initially written for the Itanium architecture, EFI is now available for x86 and x86-64 platforms;
the specification development is driven by The Unified EFI Forum, an industry Special Interest
Group.
Linux has supported EFI via the elilo boot loader. The Open Source community increased their
effort to develop a replacement for proprietary BIOSes and their future incarnations with an open
sourced counterpart through the coreboot and OpenBIOS/Open Firmware projects. AMD
provided product specifications for some chipsets, and Google is sponsoring the project.
Motherboard manufacturer Tyan offers coreboot next to the standard BIOS with their Opteron
line of motherboards. MSI and Gigabyte Technology have followed suit with the MSI K9ND
MS-9282 and MSI K9SD MS-9185 resp. the M57SLI-S4 models.
Some BIOSes contain a "SLIC", a digital signature placed inside the BIOS by the manufacturer,
for example Dell. This SLIC is inserted in the ACPI table and contains no active code. Computer
manufacturers that distribute OEM versions of Microsoft Windows and Microsoft application
software can use the SLIC to authenticate licensing to the OEM Windows Installation disk
and/or system recovery disc containing Windows software. Systems having a SLIC can be
activated with an OEM Product Key, and they verify an XML formatted OEM certificate against
the SLIC in the BIOS as a means of self-activating. If a user performs a fresh install of Windows,
they will need to have possession of both the OEM key and the digital certificate for their SLIC
in order to bypass activation; in practice this is extremely unlikely and hence the only real way
this can be achieved is if the user performs a restore using a pre-customised image provided by
the OEM.
Major BIOS vendors include American Megatrends (AMI), Insyde Software, Phoenix
Technologies and Byosoft. Former vendors include Award Software and Microid Research
which were acquired by Phoenix Technologies in 1998. Phoenix has now phased out the Award
Brand name. General Software, which was also acquired by Phoenix in 2007, sold BIOS for Intel
processor based embedded systems.