diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2017-09-01 15:48:52 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2017-11-14 16:03:19 +0100 |
commit | c710c6a3c06a1c6182c783fecb84a35d463c402a (patch) | |
tree | c8e58d601c9be8ace22fd8a05ab7457968fea729 | |
parent | 1e256aecb0ef8a5cbddf521473476378dd16a319 (diff) | |
download | qemu-firmware-c710c6a3c06a1c6182c783fecb84a35d463c402a.tar.gz |
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 <kraxel@redhat.com>
-rw-r--r-- | Makefile | 44 | ||||
-rw-r--r-- | configs/seabios-128k | 16 | ||||
-rw-r--r-- | configs/seabios-256k | 3 | ||||
-rw-r--r-- | configs/vga-cirrus | 3 | ||||
-rw-r--r-- | configs/vga-isavga | 3 | ||||
-rw-r--r-- | configs/vga-qxl | 6 | ||||
-rw-r--r-- | configs/vga-stdvga | 3 | ||||
-rw-r--r-- | configs/vga-virtio | 6 | ||||
-rw-r--r-- | configs/vga-vmware | 6 |
9 files changed, 89 insertions, 1 deletions
@@ -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 |