SeaBIOS Git Change Log

Age Message
6 days 12 minutes hw/pci: check if pci2pci bridges implement optional limit registers

<I/O Base Register, I/O Limit Register> pair and
<Prefetchable Memory Base Register, Prefetchable Memory Limit Register> pair
are both optional.
Do not reserve ranges if the above registers are not implemented.

Signed-off-by: Marcel Apfelbaum <>
Commit 0784d04cb6f6e5c893aaf368091f20326fb847fe, by Marcel Apfelbaum
6 days 12 minutes hw/pci: reserve IO and mem for pci-2-pci bridges with no devices attached

If a pci-2-pci bridge supports hot-plug functionality but there are no devices
connected to it, reserve IO/mem in order to be able to attach devices
later. Do not waste space, use minimum allowed.

Reviewed-by: Michael S. Tsirkin <>
Signed-off-by: Marcel Apfelbaum <>
Commit c6e298e1f12e0f4ca02b6da5e42919ae055f6830, by Marcel Apfelbaum
2 days 4 hours vgabios: Define PlatformRunningOn to make compile happy.

CONFIG_DEBUG_IO=y the compile would break because this variable was

Signed-off-by: Kevin O'Connor <>
4 days 3 hours Factor out smbios table walking from display_uuid to smbios_next().

Signed-off-by: Kevin O'Connor <>
5 days 2 hours Minor - replace some tab characters that slipped into the code.

Signed-off-by: Kevin O'Connor <>
2 months 4 days vgabios: Initial support for coreboot native vga vgabios.

Signed-off-by: Kevin O'Connor <>
2 months 4 days coreboot: Make coreboot table searching available to other code.

Make the coreboot table searching code available to code outside
coreboot.c, and make it runnable from 16bit mode.

Signed-off-by: Kevin O'Connor <>
9 days 20 hours vgabios: PMM scan was incorrectly depending on a zero %ds segment.

Make sure the PMM scanning code uses the GET_FARVAR macro. (The
existing code only worked because SeaBIOS happens to call the vgabios
in bigreal mode with %ds == %ss = 0.) Also, the scan doesn't require
bigreal mode - use accesses relative to the SEG_BIOS segment so that
the scan can work in regular real mode.

Signed-off-by: Kevin O'Connor <>
10 days 17 hours Set the color attribute when calling vgabios print character.

Set the color attribute in case the SeaBIOS console code is used while
the vgabios is in a graphics mode.

Signed-off-by: Kevin O'Connor <>
10 days 21 hours vgabios: Add support for manipulating framebuffers in high memory.

Add code for manipulating "direct" style linear RGB framebuffers that
may be in high memory.

Signed-off-by: Kevin O'Connor <>
10 days 16 hours vgabios: Introduce text_address().

Factor out code that calculates the text mode address of a given

Signed-off-by: Kevin O'Connor <>
23 days 3 hours vgabios: Rewrite vgafb.c graphics operations to set of 4 standard operators.

The vgabios graphics manipulations can all be implemented on top of 4
basic primitives: read 8 pixels, write 8 pixels, move pixels, and
clear pixels. Implement these four operators for all the graphics
modes and rewrite the graphics functions in vgafb.c to use them. This
simplifies the graphics code as the high level logic no longer needs
to be implemented for each graphical framebuffer type.

Signed-off-by: Kevin O'Connor <>
26 days 18 hours vgabios: Split vgafb_scroll() into separate move and clear functions.

Rewrite the low-level scroll code so that it is implemented using two
basic operations: move text and clear text. This simplifies the
low-level code as it no longer needs to handle up scrolling vs down
scrolling. Determining the direction of the scroll is now done in the
higher level (vgabios.c) code.

Signed-off-by: Kevin O'Connor <>
2 months 7 days vgabios: Add option to control use of standard VGA IO ports.

Add option CONFIG_VGA_STDVGA_PORTS. When this option is disabled, the
main BIOS code will not attempt to access any of the legacy VGA IO

Signed-off-by: Kevin O'Connor <>
8 days 18 hours Minor - remove unused includes from pci.c.

Signed-off-by: Kevin O'Connor <>
8 days 21 hours apm: Remove old Bochs mechanism for shutdown/suspend/standby.

Remove the old mechanism that used port 0x8900 to send apm signals.
Recent versions of QEMU no longer support this port. Bochs and QEMU
only ever supported shutdown anyway, and shutdown is already available
via an ACPI mechanism.

Signed-off-by: Kevin O'Connor <>
8 days 23 hours Document no new changes to pirtable.c, mptable.c, acpi.c, and smbios.c.

Add a note to the code that generates the pir, mptable, smbios, and
smbios tables that no new changes are expected. Going forward, it is
expected that if any changes are needed to these bios tables that
SeaBIOS will get the tables passed in from upstream.

Signed-off-by: Kevin O'Connor <>
8 days 22 hours Use biostables.c for copying bios tables even when generating them.

Use the biostables.c copy_pir(), copy_smbios(), copy_acpi_rsdp(), and
copy_mptable() code even when using the legacy bios table generation
code. This unifies the final bios table deployment code between qemu,
coreboot, and csm.

Signed-off-by: Kevin O'Connor <>
8 days 23 hours Move PirAddr definition from pirtable.c to biostables.c.

Signed-off-by: Kevin O'Connor <>
8 days 23 hours smbios: Move smbios parsing logic from smbios.c to biostables.c.

After this change, src/fw/smbios.c only contains the legacy code for
generating SMBIOS tables. This change only contains code movement -
no logic is changed.

Signed-off-by: Kevin O'Connor <>
8 days 23 hours acpi: Move acpi parsing logic from acpi.c to biostables.c / paravirt.c.

After this change, src/fw/acpi.c only contains the legacy code for
generating ACPI tables. This change only contains code movement - no
logic is changed.

Signed-off-by: Kevin O'Connor <>
9 days 2 hours Replace CONFIG_THREAD_OPTIONROMS with a runtime config setting.

Replace the CONFIG_THREAD_OPTIONROMS option with the CBFS (or fw_cfg)
file "etc/threads". This allows for the "threads during optionrom"
capability to be enabled/disabled without requiring SeaBIOS to be
recompiled. A value of "2" in this file will enable threads to run
during option rom execution.

This change also allows for all threads to be disabled via the same
runtime config file. Setting the file to a value of "0" will cause
SeaBIOS to perform all hardware initialization serially.

Signed-off-by: Kevin O'Connor <>
11 days 5 hours Minor - fix some typos in comments.

Signed-off-by: Kevin O'Connor <>
15 days 15 hours usb: Only disable HID devices if both USB_MOUSE and USB_KEYBOARD are off.

Fix typo in code causing both CONFIG_USB_MOUSE and CONFIG_USB_KEYBOARD
to be effectively disabled if either is disabled.

Signed-off-by: Kevin O'Connor <>
1 month 3 days vp_init_simple: enable PCI bus-mastering before relying on DMA.

An analogous change was made in the LSI scsi driver, commit
7d052575258ad2fc487ca3f9a6b62eff1b767900. Qemu works around guests that don't
correctly enable PCI bus mastering before using virtio queues' DMA (search for
better to be correct.

Signed-off-by: Eric Northup <>