ROM images

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

FileDescription
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 romimage

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=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:
  fw_cfg: enabled=1
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).