Just like a real PC, Bochs needs a system BIOS and VGA BIOS to initialize the
machine when it powers on or after a hardware reset. Bochs needs to load them
from image file into the emulated memory. The Bochs package contains a set of
system BIOS and VGA BIOS images.
Table 1. System and VGA BIOS images
| File | Description |
|---|
| BIOS-bochs-latest | default ROM BIOS image for Bochs |
| BIOS-bochs-legacy | ROM BIOS image without 32-bit init code (for i386 and ISA graphics card emulation) |
| bios.bin-1.16.0 | SeaBIOS ROM image |
| VGABIOS-elpin-2.40 | legacy VGA BIOS image for Bochs |
| VGABIOS-lgpl-latest.bin | LGPL'd VGA BIOS image for Bochs |
| VGABIOS-lgpl-latest-debug.bin | LGPL'd VGA BIOS image for Bochs with debug output to the logfile |
| VGABIOS-lgpl-latest-cirrus.bin | LGPL'd VGA BIOS image for Bochs with the Cirrus extension enabled |
| VGABIOS-lgpl-latest-cirrus-debug.bin | LGPL'd VGA BIOS image for Bochs with the Cirrus extension enabled and debug output to the logfile |
| VGABIOS-lgpl-latest-banshee.bin | LGPL'd VGA BIOS image for Bochs with the Voodoo Banshee extension enabled |
| VGABIOS-lgpl-latest-banshee-debug.bin | LGPL'd VGA BIOS image for Bochs with the Voodoo Banshee extension enabled and debug output to the logfile |
| vgabios-cirrus.bin-1.13.0 | SeaVGABIOS ROM image (for Cirrus adapter) |
Bochs must be set up to use system and VGA BIOS like this:
romimage: file=BIOS-bochs-latest, address=0xfffe0000
vgaromimage: file=VGABIOS-lgpl-latest.bin |
We recommend to use the ROM images distributed with Bochs or one of the latest
SeaBIOS images. BIOS images designed
for real hardware mostly do not work properly. Please see the
the Section called romimageUEFI Firmware Support: Bochs supports UEFI boot using OVMF
(Open Virtual Machine Firmware) from the TianoCore EDK2 project. To use UEFI:
romimage: file=OVMF.fd, address=0xffc00000 |
UEFI boot requires the fw_cfg device which provides system configuration to the
firmware via I/O ports 0x510-0x51B. This includes the E820 memory map, ACPI tables,
RAM size, and CPU count. Enable it with:
For best results with OVMF graphics output, configure VGA as a PCI device:
pci: enabled=1, chipset=i440fx, slot1=pcivga |
The ACPI DSDT AML is built into Bochs and generated from the Bochs DSDT DSL
source using the ACPICA iasl compiler.
For developers, bochs/tools/gen_acpi_dsdt_aml.py can regenerate the embedded
AML header.
UEFI boot has been tested with Windows Server 2025 and modern Linux distributions.
Bochs supports optional ROM images to be loaded into the ISA ROM space,
typically between C8000 and EFFFF (see the Section called optromimage1, optromimage2, optromimage3 or optromimage4). The PCI
versions of the Bochs network adapter emulations support loading a boot ROM into
the PCI ROM space (see the Section called ne2k).