From c710c6a3c06a1c6182c783fecb84a35d463c402a Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Fri, 1 Sep 2017 15:48:52 +0200 Subject: Add build rules and configs for seabios Largely identical to roms/Makefile in qemu repo. Paths have been adapted to qemu-firmware repo layout. Signed-off-by: Gerd Hoffmann --- Makefile | 44 +++++++++++++++++++++++++++++++++++++++++++- configs/seabios-128k | 16 ++++++++++++++++ configs/seabios-256k | 3 +++ configs/vga-cirrus | 3 +++ configs/vga-isavga | 3 +++ configs/vga-qxl | 6 ++++++ configs/vga-stdvga | 3 +++ configs/vga-virtio | 6 ++++++ configs/vga-vmware | 6 ++++++ 9 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 configs/seabios-128k create mode 100644 configs/seabios-256k create mode 100644 configs/vga-cirrus create mode 100644 configs/vga-isavga create mode 100644 configs/vga-qxl create mode 100644 configs/vga-stdvga create mode 100644 configs/vga-virtio create mode 100644 configs/vga-vmware 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 -- cgit