Hi folks,
There is a vgabios sitting implementation in the seabios repository for a while. Recently it got a huge overhaul and should be on-par with the lgpl vgabios implementation. I'd like to see qemu switch to that implementation, for very simliar reasons which made us switch from bochs bios to seabios. The vgabios is written almost completely in C, thus it is easier to modify and maintain. We have a very responsitive upstream.
This patch series adds some build magic to roms/, for two reasons: It simplifies updates and documents the build process. Covers seabios and vgabios for now. Anyone who is familier with the build process for other roms (ipxe, openbios, slof, ...) is welcome to add more bits there.
seabios submodule is updated to latest master (mirroring @ qemu.org seems to be broken btw, had to pull from seabios.org directly), vgabios and seabios binaries are updated.
Tests, comments etc, are welcome.
cheers, Gerd
The following changes since commit cf4dc461a4cfc3e056ee24edb26154f4d34a6278:
Restore consistent formatting (2012-02-07 22:11:04 +0400)
are available in the git repository at: git://git.kraxel.org/qemu bios.1
Gerd Hoffmann (5): update seabios to latest master [feb 9th] Add vgabios build scripts to roms/ Update vgabios binaries Add seabios build scripts to roms/ Update seabios binary
pc-bios/bios.bin | Bin 131072 -> 131072 bytes pc-bios/vgabios-cirrus.bin | Bin 35840 -> 37376 bytes pc-bios/vgabios-qxl.bin | Bin 40448 -> 37376 bytes pc-bios/vgabios-stdvga.bin | Bin 40448 -> 37376 bytes pc-bios/vgabios-vmware.bin | Bin 40448 -> 37376 bytes roms/Makefile | 23 +++++++++++++++++++++++ roms/config.seabios | 1 + roms/config.vga.cirrus | 3 +++ roms/config.vga.isavga | 3 +++ roms/config.vga.qxl | 6 ++++++ roms/config.vga.stdvga | 3 +++ roms/config.vga.vmware | 6 ++++++ roms/configure-seabios.sh | 5 +++++ roms/seabios | 2 +- 14 files changed, 51 insertions(+), 1 deletions(-) create mode 100644 roms/Makefile create mode 100644 roms/config.seabios create mode 100644 roms/config.vga.cirrus create mode 100644 roms/config.vga.isavga create mode 100644 roms/config.vga.qxl create mode 100644 roms/config.vga.stdvga create mode 100644 roms/config.vga.vmware create mode 100755 roms/configure-seabios.sh
Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- pc-bios/vgabios-cirrus.bin | Bin 35840 -> 35328 bytes roms/seabios | 2 +- 2 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/pc-bios/vgabios-cirrus.bin b/pc-bios/vgabios-cirrus.bin index 424dd0c70c4a52e1a98d8a64ebf4aa382b85d5cf..487f64be23013589487194fa82d694325fbad4cc 100644 GIT binary patch literal 35328 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 E0cyKBqyPW_
literal 35840 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 WO-1*utywEx!ZiN>um2Vato^?Xl)&!*
diff --git a/roms/seabios b/roms/seabios index 80d11e8..091dd17 160000 --- a/roms/seabios +++ b/roms/seabios @@ -1 +1 @@ -Subproject commit 80d11e8577bf03e98f2eb1b0cb3a281ab2879c9e +Subproject commit 091dd17e8dc2ca242ae6839a6699dbc0ed52a3ed
Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- roms/Makefile | 17 +++++++++++++++++ roms/config.vga.cirrus | 3 +++ roms/config.vga.isavga | 3 +++ roms/config.vga.qxl | 6 ++++++ roms/config.vga.stdvga | 3 +++ roms/config.vga.vmware | 6 ++++++ roms/configure-seabios.sh | 5 +++++ 7 files changed, 43 insertions(+), 0 deletions(-) create mode 100644 roms/Makefile create mode 100644 roms/config.vga.cirrus create mode 100644 roms/config.vga.isavga create mode 100644 roms/config.vga.qxl create mode 100644 roms/config.vga.stdvga create mode 100644 roms/config.vga.vmware create mode 100755 roms/configure-seabios.sh
diff --git a/roms/Makefile b/roms/Makefile new file mode 100644 index 0000000..5c3d5f4 --- /dev/null +++ b/roms/Makefile @@ -0,0 +1,17 @@ + +targets_vgabios := vgabios-cirrus vgabios-stdvga +targets_vgabios += vgabios-vmware vgabios-qxl +#targets_vgabios += vgabios-isavga + +default: + @echo "nothing is build by default" + @echo "available build targets:" + @echo " vgabios-<name> -- update vgabios-<name>.bin" + @echo " vgabios -- update all vgabios binaries" + +vgabios: $(targets_vgabios) + +vgabios-%: config.vga.% + sh configure-seabios.sh $< + make -C seabios out/vgabios.bin + cp seabios/out/vgabios.bin ../pc-bios/vgabios-$*.bin diff --git a/roms/config.vga.cirrus b/roms/config.vga.cirrus new file mode 100644 index 0000000..c8fe582 --- /dev/null +++ b/roms/config.vga.cirrus @@ -0,0 +1,3 @@ +CONFIG_BUILD_VGABIOS=y +CONFIG_VGA_CIRRUS=y +CONFIG_VGA_PCI=y diff --git a/roms/config.vga.isavga b/roms/config.vga.isavga new file mode 100644 index 0000000..e55e294 --- /dev/null +++ b/roms/config.vga.isavga @@ -0,0 +1,3 @@ +CONFIG_BUILD_VGABIOS=y +CONFIG_VGA_BOCHS=y +CONFIG_VGA_PCI=n diff --git a/roms/config.vga.qxl b/roms/config.vga.qxl new file mode 100644 index 0000000..d393f0c --- /dev/null +++ b/roms/config.vga.qxl @@ -0,0 +1,6 @@ +CONFIG_BUILD_VGABIOS=y +CONFIG_VGA_BOCHS=y +CONFIG_VGA_PCI=y +CONFIG_OVERRIDE_PCI_ID=y +CONFIG_VGA_VID=0x1b36 +CONFIG_VGA_DID=0x0100 diff --git a/roms/config.vga.stdvga b/roms/config.vga.stdvga new file mode 100644 index 0000000..7d063b7 --- /dev/null +++ b/roms/config.vga.stdvga @@ -0,0 +1,3 @@ +CONFIG_BUILD_VGABIOS=y +CONFIG_VGA_BOCHS=y +CONFIG_VGA_PCI=y diff --git a/roms/config.vga.vmware b/roms/config.vga.vmware new file mode 100644 index 0000000..eb10427 --- /dev/null +++ b/roms/config.vga.vmware @@ -0,0 +1,6 @@ +CONFIG_BUILD_VGABIOS=y +CONFIG_VGA_BOCHS=y +CONFIG_VGA_PCI=y +CONFIG_OVERRIDE_PCI_ID=y +CONFIG_VGA_VID=0x15ad +CONFIG_VGA_DID=0x0405 diff --git a/roms/configure-seabios.sh b/roms/configure-seabios.sh new file mode 100755 index 0000000..98f59a2 --- /dev/null +++ b/roms/configure-seabios.sh @@ -0,0 +1,5 @@ +#!/bin/sh +config="$1" +make -C seabios clean distclean +cp "$config" seabios/.config +make -C seabios oldnoconfig
Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- roms/Makefile | 6 ++++++ roms/config.seabios | 1 + 2 files changed, 7 insertions(+), 0 deletions(-) create mode 100644 roms/config.seabios
diff --git a/roms/Makefile b/roms/Makefile index 5c3d5f4..b24c728 100644 --- a/roms/Makefile +++ b/roms/Makefile @@ -8,6 +8,7 @@ default: @echo "available build targets:" @echo " vgabios-<name> -- update vgabios-<name>.bin" @echo " vgabios -- update all vgabios binaries" + @echo " bios -- update bios.bin (seabios)"
vgabios: $(targets_vgabios)
@@ -15,3 +16,8 @@ vgabios-%: config.vga.% sh configure-seabios.sh $< make -C seabios out/vgabios.bin cp seabios/out/vgabios.bin ../pc-bios/vgabios-$*.bin + +bios: config.seabios + sh configure-seabios.sh $< + make -C seabios out/bios.bin + cp seabios/out/bios.bin ../pc-bios/bios.bin diff --git a/roms/config.seabios b/roms/config.seabios new file mode 100644 index 0000000..c373b87 --- /dev/null +++ b/roms/config.seabios @@ -0,0 +1 @@ +# empty, default config works for us