x86 BIOS Boot Loader

Other versions of this page are also available for the following:

Windows Mobile Not SupportedWindows Embedded CE Supported

8/27/2008

The x86 BIOS boot loader (biosloader) is an alternative to the x86 ROM boot loader (romboot).

Unlike romboot, biosloader does not replace the system BIOS. Instead, it uses the BIOS services such as the Video Electronics Standard Association (VESA) BIOS for video display control, and Interrupt 13h services for disk I/O to load an image from a local storage device.

It loads a .bin image from any device for which the BIOS exposes Interrupt 13h support and views as a storage device. This includes floppy disk, hard disk, CompactFlash card, and Disk-on-Chip.

The boot loader resides on the bootable storage device and is found and loaded by a boot sector image.

BIOS Loader Process

The following list summarizes the BIOS boot loader boot process:

  1. At start or reset, the x86 CPU jumps to the CPU reset vector address and then executes the BIOS code.
    Typically, the BIOS will configure the hardware. This includes configuring the DRAM controller, configuring the host bridge, enumerating PCI devices, and then locating a boot drive.
  2. If the boot drive is a hard disk, for example, a CompactFlash card, or Disk-on-Chip, the first disk sector will be the master boot sector (MBR).
    If the boot drive is a floppy disk, it does not contain an MBR. Instead, the first sector on the disk is a boot sector.
    The MBR neatly fits in one disk sector and consists of code, 16-bit real mode code, and data. A partitioning tool, such as the MS-DOS fdisk command, writes the MBR to the disk.
    The BIOS loads the MBR from the disk into RAM. Then, the BIOS executes the MBR code. The BIOS looks for a two-byte signature at the end of the sector to locate the MBR on the boot drive. If the BIOS cannot locate the MBR on the boot drive, it displays an error message and stops.
  3. Primarily, the MBR code searches through the partition table to look for the active partition on the boot disk. The partition table is data that resides in the MBR. If the MBR code cannot locate an active partition, it displays an error message and stops. If the MBR code finds an active partition, it determines the disk address of that partition.
    The first sector in the partition is the boot sector. However, on a floppy disk, this is the first sector on the disk because there is no MBR on a floppy disk.
    The MBR code loads the boot sector into RAM and jumps to it.
  4. The boot sector, similar to the MBR, contains code and data and fits neatly within a single disk sector. The boot sector is the first piece of operating system-specific code.
    The boot sector finds and loads the BIOS boot loader. It does this by using the disk-resident properties of the native file system, together with BIOS services, to find and load the boot loader into RAM and then jump to it.
  5. After the BIOS loader starts, it performs many functions, such as loading the Windows Embedded CE runtime image. For more information about the recommended functionality of a BIOS boot loader, see Recommended Boot Loader Functionality.

To prepare a storage device for use with the BIOS boot loader, you must partition and format it.

For more information about the BIOS boot loader and its functionalities, see Boot Sector, Setting Up the BIOS Boot Loader, BIOS Boot Loader Limitations, and DiskPart Utility.

See Also

Concepts

Specialized Boot Loaders
What’s New in the x86 BIOS Boot Loader for Windows Embedded CE 6.0 R2