SeaBIOS Git Change Log

Age Message
6 years 1 month Update version to

Signed-off-by: Kevin O'Connor <>
6 years 2 months Use "#!/bin/sh" instead of ":" in tools/

Signed-off-by: Kevin O'Connor <>
6 years 2 months Fix missing NULL pointer checks causing boot failure on 1meg machines.

Signed-off-by: Kevin O'Connor <>
6 years 3 months BCVs should inherrit the legacy harddrive priority.

A BCV will (almost assuredly) be a hard drive, so it makes sense to
prioritize them the same as builtin hard drives when only the legacy
priority system is used.

Signed-off-by: Kevin O'Connor <>
6 years 2 months Permit .rodata.__PRETTY_FUNCTION__. sections in roms.

Some versions of gcc appear to define these sections even though they
aren't used in the code.

Signed-off-by: Kevin O'Connor <>
(cherry picked from commit 805ede2bd35243a4298bc64bd81be6db7cf57f58)

Signed-off-by: Ian Campbell <>
6 years 2 months Add PYTHON definition to Makefile.

Add PYTHON definition to Makefile so users can override it. This
allows users to specify an exact python executable name to use during
the build.

Signed-off-by: Kevin O'Connor <>
Signed-off-by: Ian Campbell <>
(backported from 97f1ffcfac4ca382b5008a7aabfc2c300131f978)
6 years 5 months Update version to

Signed-off-by: Kevin O'Connor <>
6 years 5 months usb: fix boot paths

The fw paths for USB devices that SeaBIOS computes are off-by-one,
because QEMU builds those paths with a numbering that starts from one
(see usb_fill_port and usb_hub_initfn in QEMU). Fix that so that
the numbering agrees.
Commit a3fea015398d7c41db5b5d348fe3f6d76236b6be, by Paolo Bonzini
6 years 6 months Update version to 1.6.3
6 years 6 months Update README file.
6 years 6 months Fix alignment bug in pci_bios_init_root_regions().

If there are no memory allocations for a given type then the "max" bar
size is zero. However, ALIGN_DOWN does not handle an alignment of
zero properly. Catch and handle the zero case.

Signed-off-by: Kevin O'Connor <>
6 years 6 months Reorder build objects to work around gcc bug with -combine.

Some versions of gcc have difficulties with externally visible
variables that are used before they are declared. Now that pmm.c
contains only 32bit code and has a reference to CanPreempt, make sure
the declaration of CanPreempt (in stacks.c) is compiled first.

Signed-off-by: Kevin O'Connor <>
6 years 7 months Probe PCI existence

This prevents lockups when trying to allocate PCI resources on an
ISA-only system like QEMU can emulate.

Signed-off-by: Jan Kiszka <>
6 years 7 months Define handle_post as VISIBLE32FLAT as work around for QEmu memory layout.

QEmu only copies the top 128K of the BIOS image to low memory
(0xe0000-0xfffff). Images over 128K are only fully mapped in high
memory (0xfff00000). However, the SeaBIOS shadow functions
(make_bios_writable_intel) will copy up to 256K to low memory.

SeaBIOS generally works with 256K roms because they are automatically
copied to low memory during the BIOS init. However, this only works
if the shadow function code is itself part of the bios image that is
placed in low memory by QEmu.

Defining handle_post() as VISIBLE32FLAT will make the linker scripts
more likely to place the initial shadow code in the last 128K of the

Signed-off-by: Kevin O'Connor <>
6 years 7 months Minor - move ACPI_HPET_ADDRESS definition to config.h.

Move ACPI_HPET_ADDRESS to BUILD_HPET_ADDRESS in config.h so that it
is listed with similar hardcoded addresses.

Also, organize the BUILD_*_ADDRESS definitions in config.h.

Signed-off-by: Kevin O'Connor <>
6 years 7 months Minor formatting and comment updates to acpi.c.
6 years 7 months Probe HPET existence

QEMU does not provide a HPET block if it was configured with -no-hpet,
other machines SeaBIOS runs on may lack a HPET as well. Perform basic
checks the ID register for a reasonable vendor ID and a clock period
within the valid range, do not build the HPET table if that fails.

Signed-off-by: Jan Kiszka <>
6 years 7 months Use coreboot smbios table if found.

The coreboot init code now looks for an existing smbios table and will
use it. A locally generated smbios table will only be created if no
coreboot table is found.
6 years 8 months pci: re-add isa bridge setup

The switch to the two-pass pci initialization dropped the isa bridge
initialization by accident. That broke interrupts on FreeBSD 4.4 and
maybe also other older guests which don't use ACPI for IRQ routing
setup. Add the bits back in.

Signed-off-by: Gerd Hoffmann <>
Tested-by: Bjørn Mork <>
Commit 8e301472e324b6d6496d8b4ffc66863e99d7a505, by Gerd Hoffmann
6 years 8 months ahci: enable by default

Lack of real hardware testing was the main reason to turn it off by
default. The AHCI has been fixed to work on both qemu and real
hardware, so lets flip the switch now.

Signed-off-by: Gerd Hoffmann <>
Commit ceb8ed4ef2e45cc5cc2525aeebd255838f656b69, by Gerd Hoffmann
6 years 8 months ahci: use malloc_tmp memory for probing ports

Also allocate the ahci port struct itself from tmp memory for probing,
then copy to fseg memory in case we detected some device. This way we
don't waste fseg memory for unused ports.

Signed-off-by: Gerd Hoffmann <>
Commit ef8adc0220b6072289ac4640b168acfccaf19867, by Gerd Hoffmann
6 years 8 months ahci: move device registration

Stick description and boot priority into the port struct, so it
holds everything needed to register the device, so we can do
the registration after ahci_port_init returned.

Signed-off-by: Gerd Hoffmann <>
Commit 2dcbf7fafc15acb62adbceaae7ca3a6e3a06f0e3, by Gerd Hoffmann
6 years 8 months ahci: ignore atapi devices which are not cdroms

Also simplify the code a bit further down the road
as we know iscd must be true ;)

Signed-off-by: Gerd Hoffmann <>
Commit 263ea2f20507d7d30f6bfd80a8dc6fa16976d784, by Gerd Hoffmann
6 years 8 months ahci: probe each port in its own thread

Instead if creating a single thread which probes all ports one after
another kick one thread per port, so ports are probed in parallel.

Signed-off-by: Gerd Hoffmann <>
Commit 9713f2418f99f003876419f8c656fa9725d912c1, by Gerd Hoffmann
6 years 8 months ahci/cdrom: shared bounce buffer

This patch creates a common bounce buffer in block.c which
is shared by the cdrom and ahci drivers.

Signed-off-by: Gerd Hoffmann <>
Commit d7a7cf3a437faa6d56d5dbb060480601ef90799e, by Gerd Hoffmann