Version 1.4 A-1
A
System BIOS
Programming Guidelines
Depending on the MP components in a multiprocessor system, the system BIOS may have the
following additional responsibilities:
1. Put the APs to sleep, so that they do not all try to execute the same BIOS code as the BSP.
This is necessary, because BIOS code is not typically multithreaded for multiprocessing.
2. Initialize the APICs and other MP components (if any).
3. Build the MP configuration table to communicate information to the operating system about
the APICs and APs.
Note that the above activities can be implemented by the hardware. The BIOS is not required to
perform these activities if the hardware makes them unnecessary. For example, the system BIOS
for one of the default configurations defined in Chapter 5 needs to ensure only that the MP feature
information bytes identify the configuration. In all other respects, the BIOS can be the same as a
standard PC/AT BIOS.
Support for the shutdown status byte (0Fh) of the PC/AT CMOS RAM is required. The startup of
APs by the operating system depends on the jump to warm reset vector (40:67h) capability, as
defined by the shutdown status byte. Appendix B explains this in more detail.
A.1 BIOS Post Initialization
Once system power is applied or the reset button is pressed (if the system is so equipped), a
hardware circuit generates a system RESET sequence to put all the system hardware into an initial
state. All active processors start to execute instructions and enter the POST (power-on self test)
procedure of the BIOS, which is responsible for initializing all components in a system to a known
state and for constructing various system tables in the BIOS data area (400h-4FFh) for the
operating system to use.
For compliant systems that match one of the default configurations listed in Chapter 5, the work
performed by the BIOS POST is minimal. The MP feature information bytes must identify the
default configuration type and determine whether PIC Mode or Virtual Wire Mode is implemented.
During the system INIT or soft reset cycle, both local and I/O APICs must be reinitialized by the
INIT signal and by the BIOS. This is required because the operating system will always assume
that all components in the system are initialized to a known state. For the APIC, this means that
all APIC registers are cleared and the local APIC ID register is initialized by the BIOS or the
hardware.
Upon warm reset, the BIOS must initialize all APICs to the power on state if the warm reset signal
does not physically reset the APICs.