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 4-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.binWe 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 Section 4.3.7
UEFI 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=0xffc00000UEFI 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:
fw_cfg: enabled=1For best results with OVMF graphics output, configure VGA as a PCI device:
pci: enabled=1, chipset=i440fx, slot1=pcivgaThe 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 Section 4.3.9). The PCI versions of the Bochs network adapter emulations support loading a boot ROM into the PCI ROM space (see Section 4.3.34).