aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile44
-rw-r--r--configs/seabios-128k16
-rw-r--r--configs/seabios-256k3
-rw-r--r--configs/vga-cirrus3
-rw-r--r--configs/vga-isavga3
-rw-r--r--configs/vga-qxl6
-rw-r--r--configs/vga-stdvga3
-rw-r--r--configs/vga-virtio6
-rw-r--r--configs/vga-vmware6
9 files changed, 89 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index a6a4e1a..5e2eb21 100644
--- a/Makefile
+++ b/Makefile
@@ -33,6 +33,8 @@ default help:
@echo
@echo "build targets:"
@echo " edk2 -- build UEFI firmware"
+ @echo " seabios -- build BIOS firmware"
+ @echo " vgabios -- build VGABIOS firmware"
@echo
@echo "other targets:"
@echo " clean -- cleanup"
@@ -46,8 +48,9 @@ default help:
install:
mkdir -p $(datadir)
cp -avr blobs/edk2-* $(datadir)
+ cp -av blobs/*.bin $(datadir)
-clean: edk2-clean
+clean: edk2-clean seabios-clean
submodule-%:
git submodule update --init repos/$*
@@ -80,3 +83,42 @@ edk2-clean:
rm -rf repos/edk2/Conf/build_rule.txt
rm -rf repos/edk2/Conf/target.txt
rm -rf repos/edk2/Conf/tools_def.txt
+
+
+#############################################################################
+# seabios build rules
+
+# tag our seabios builds
+SEABIOS_EXTRAVERSION="-prebuilt.qemu.org"
+
+vgabios_variants := stdvga cirrus vmware qxl isavga virtio
+vgabios_targets := $(subst -isavga,,$(patsubst %,vgabios-%.bin,$(vgabios_variants)))
+
+seabios bios: build-seabios-config-seabios-128k build-seabios-config-seabios-256k
+ cp repos/seabios/builds/seabios-128k/bios.bin blobs/bios.bin
+ cp repos/seabios/builds/seabios-256k/bios.bin blobs/bios-256k.bin
+
+vgabios: $(patsubst %,vgabios-%,$(vgabios_variants))
+
+vgabios-isavga: build-seabios-config-vga-isavga
+ cp repos/seabios/builds/vga-isavga/vgabios.bin blobs/vgabios.bin
+
+vgabios-%: build-seabios-config-vga-%
+ cp repos/seabios/builds/vga-$*/vgabios.bin blobs/vgabios-$*.bin
+
+build-seabios-config-%: configs/% submodule-seabios
+ mkdir -p repos/seabios/builds/$*
+ cp $< repos/seabios/builds/$*/.config
+ $(MAKE) -C repos/seabios \
+ EXTRAVERSION=$(SEABIOS_EXTRAVERSION) \
+ CROSS_COMPILE=$(x86_64_cross_prefix) \
+ KCONFIG_CONFIG=$(CURDIR)/repos/seabios/builds/$*/.config \
+ OUT=$(CURDIR)/repos/seabios/builds/$*/ oldnoconfig
+ $(MAKE) -C repos/seabios \
+ EXTRAVERSION=$(SEABIOS_EXTRAVERSION) \
+ CROSS_COMPILE=$(x86_64_cross_prefix) \
+ KCONFIG_CONFIG=$(CURDIR)/repos/seabios/builds/$*/.config \
+ OUT=$(CURDIR)/repos/seabios/builds/$*/ all
+
+seabios-clean:
+ rm -rf repos/seabios/.config repos/seabios/out repos/seabios/builds
diff --git a/configs/seabios-128k b/configs/seabios-128k
new file mode 100644
index 0000000..486ef0e
--- /dev/null
+++ b/configs/seabios-128k
@@ -0,0 +1,16 @@
+# for qemu machine types 1.7 + older
+# need to turn off features (xhci,uas) to make it fit into 128k
+CONFIG_QEMU=y
+CONFIG_ROM_SIZE=128
+CONFIG_BOOTSPLASH=n
+CONFIG_XEN=n
+CONFIG_USB_OHCI=n
+CONFIG_USB_XHCI=n
+CONFIG_USB_UAS=n
+CONFIG_SDCARD=n
+CONFIG_TCGBIOS=n
+CONFIG_MPT_SCSI=n
+CONFIG_PVSCSI=n
+CONFIG_NVME=n
+CONFIG_USE_SMM=n
+CONFIG_VGAHOOKS=n
diff --git a/configs/seabios-256k b/configs/seabios-256k
new file mode 100644
index 0000000..65e5015
--- /dev/null
+++ b/configs/seabios-256k
@@ -0,0 +1,3 @@
+# for qemu machine types 2.0 + newer
+CONFIG_QEMU=y
+CONFIG_ROM_SIZE=256
diff --git a/configs/vga-cirrus b/configs/vga-cirrus
new file mode 100644
index 0000000..c8fe582
--- /dev/null
+++ b/configs/vga-cirrus
@@ -0,0 +1,3 @@
+CONFIG_BUILD_VGABIOS=y
+CONFIG_VGA_CIRRUS=y
+CONFIG_VGA_PCI=y
diff --git a/configs/vga-isavga b/configs/vga-isavga
new file mode 100644
index 0000000..e55e294
--- /dev/null
+++ b/configs/vga-isavga
@@ -0,0 +1,3 @@
+CONFIG_BUILD_VGABIOS=y
+CONFIG_VGA_BOCHS=y
+CONFIG_VGA_PCI=n
diff --git a/configs/vga-qxl b/configs/vga-qxl
new file mode 100644
index 0000000..d393f0c
--- /dev/null
+++ b/configs/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/configs/vga-stdvga b/configs/vga-stdvga
new file mode 100644
index 0000000..7d063b7
--- /dev/null
+++ b/configs/vga-stdvga
@@ -0,0 +1,3 @@
+CONFIG_BUILD_VGABIOS=y
+CONFIG_VGA_BOCHS=y
+CONFIG_VGA_PCI=y
diff --git a/configs/vga-virtio b/configs/vga-virtio
new file mode 100644
index 0000000..aa7a15b
--- /dev/null
+++ b/configs/vga-virtio
@@ -0,0 +1,6 @@
+CONFIG_BUILD_VGABIOS=y
+CONFIG_VGA_BOCHS=y
+CONFIG_VGA_PCI=y
+CONFIG_OVERRIDE_PCI_ID=y
+CONFIG_VGA_VID=0x1af4
+CONFIG_VGA_DID=0x1050
diff --git a/configs/vga-vmware b/configs/vga-vmware
new file mode 100644
index 0000000..eb10427
--- /dev/null
+++ b/configs/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