qemu/roms/Makefile
Gerd Hoffmann 0221d73ce6 seabios: update to pre-1.13 snapshot
seabios 1.13 will be released later this month.  This patch updates the
seabios submodule and binaries in qemu to a snapshot of git master.
That will increase the test coverage of the upcoming seabios release and
will also make the number of changes smaller when we update to the final
1.13 release during qemu code freeze for 4.2.

v3: add ahci bugfix
v2: build binaries with gcc 4.8.5 instead of gcc 8.3.1 (rhel7).

git shortlog rel-1.12.1..
=========================

David Woodhouse (2):
      csm: Sanitise alignment constraint in Legacy16GetTableAddress
      csm: Fix boot priority translation

Denis Plotnikov (1):
      virtio: extend virtio queue size to 256

Gerd Hoffmann (21):
      vga: move modelist from bochsvga.c to new svgamodes.c
      vga: make memcpy_high() public
      vga: add atiext driver
      vga: add ati bios tables
      vbe: add edid support.
      ati: add edid support.
      bochsvga: add edid support.
      bochsdisplay: add edid support.
      bochsdisplay: parse resolution from edid.
      add get_keystroke_full() helper
      bootmenu: add support for more than 9 entries
      optionrom: disallow int19 redirect for pnp roms.
      ati-vga: make less verbose
      ati-vga: fix ati_read()
      ati-vga: make i2c register and bits configurable
      ati-vga: try vga ddc first
      ati-vga: add rage128 edid support
      bochsdisplay: add copyright and license to bochsdisplay.c
      ramfb: add copyright and license to ramfb.c
      cp437: add license to cp437.c
      ahci: zero-initialize port struct

Joseph Pacheco-Corwin (1):
      bootsplash: Added support for 16/24/32bpp in one function

Kevin O'Connor (10):
      output: Avoid thunking to 16bit mode in printf() if no vgabios
      docs: Update mailing list archive links
      docs: Fix cut-and-paste error in Mailinglist.md archive link
      usb-ehci: Clear pipe token on pipe reallocate
      pciinit: Use %pP shorthand for printing device ids in intel_igd_setup()
      virtio-pci: Use %pP format in dprintf() calls
      Makefile: Build with -Wno-address-of-packed-member
      svgamodes: Add copyright notice to vgasrc/svgamodes.c
      docs: Add developer-certificate-of-origin
      docs: Note release date for v1.12.1

Liran Alon (1):
      pvscsi: ring_desc do not have to be page aligned

Sam Eiderman (6):
      smbios: Add missing zero byte to Type 0
      geometry: Read LCHS from fw_cfg
      boot: Reorder functions in boot.c
      geometry: Add boot_lchs_find_*() utility functions
      config: Add toggle for bootdevice information
      geometry: Apply LCHS values for boot devices

Stefan Berger (2):
      tcgbios: Use table to convert hash to buffer size
      tcgbios: Implement TPM 2.0 menu item to activate and deactivate PCR banks

Stefano Garzarella (1):
      qemu: avoid debug prints if debugcon is not enabled

Stephen Douthit (1):
      tpm: Check for TPM related ACPI tables before attempting hw probe

Uwe Kleine-König (3):
      cbvga: reuse svga modes definitions from svgamodes.c
      Add additional resolutions for 16:9 displays: 1600x900 and 2560x1440
      Remove dos line endings introduced in the last two commits

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2019-11-13 15:02:21 +01:00

207 lines
7.2 KiB
Makefile

vgabios_variants := stdvga cirrus vmware qxl isavga virtio bochs-display ramfb ati
vgabios_targets := $(subst -isavga,,$(patsubst %,vgabios-%.bin,$(vgabios_variants)))
pxerom_variants := e1000 e1000e eepro100 ne2k_pci pcnet rtl8139 virtio vmxnet3
pxerom_targets := 8086100e 808610d3 80861209 10500940 10222000 10ec8139 1af41000 15ad07b0
pxe-rom-e1000 efi-rom-e1000 : VID := 8086
pxe-rom-e1000 efi-rom-e1000 : DID := 100e
pxe-rom-e1000e efi-rom-e1000e : VID := 8086
pxe-rom-e1000e efi-rom-e1000e : DID := 10d3
pxe-rom-eepro100 efi-rom-eepro100 : VID := 8086
pxe-rom-eepro100 efi-rom-eepro100 : DID := 1209
pxe-rom-ne2k_pci efi-rom-ne2k_pci : VID := 1050
pxe-rom-ne2k_pci efi-rom-ne2k_pci : DID := 0940
pxe-rom-pcnet efi-rom-pcnet : VID := 1022
pxe-rom-pcnet efi-rom-pcnet : DID := 2000
pxe-rom-rtl8139 efi-rom-rtl8139 : VID := 10ec
pxe-rom-rtl8139 efi-rom-rtl8139 : DID := 8139
pxe-rom-virtio efi-rom-virtio : VID := 1af4
pxe-rom-virtio efi-rom-virtio : DID := 1000
pxe-rom-vmxnet3 efi-rom-vmxnet3 : VID := 15ad
pxe-rom-vmxnet3 efi-rom-vmxnet3 : DID := 07b0
#
# cross compiler auto detection
#
path := $(subst :, ,$(PATH))
system := $(shell uname -s | tr "A-Z" "a-z")
# first find cross binutils in path
find-cross-ld = $(firstword $(wildcard $(patsubst %,%/$(1)-*$(system)*-ld,$(path))))
# then check we have cross gcc too
find-cross-gcc = $(firstword $(wildcard $(patsubst %ld,%gcc,$(call find-cross-ld,$(1)))))
# finally strip off path + toolname so we get the prefix
find-cross-prefix = $(subst gcc,,$(notdir $(call find-cross-gcc,$(1))))
powerpc64_cross_prefix := $(call find-cross-prefix,powerpc64)
powerpc_cross_prefix := $(call find-cross-prefix,powerpc)
x86_64_cross_prefix := $(call find-cross-prefix,x86_64)
riscv32_cross_prefix := $(call find-cross-prefix,riscv32)
riscv64_cross_prefix := $(call find-cross-prefix,riscv64)
# tag our seabios builds
SEABIOS_EXTRAVERSION="-prebuilt.qemu.org"
#
# EfiRom utility is shipped with edk2 / tianocore, in BaseTools/
#
# We need that to combine multiple images (legacy bios,
# efi ia32, efi x64) into a single rom binary.
#
EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom
default help:
@echo "nothing is build by default"
@echo "available build targets:"
@echo " bios -- update bios.bin (seabios)"
@echo " vgabios -- update vgabios binaries (seabios)"
@echo " sgabios -- update sgabios binaries"
@echo " pxerom -- update nic roms (bios only)"
@echo " efirom -- update nic roms (bios+efi)"
@echo " slof -- update slof.bin"
@echo " skiboot -- update skiboot.lid"
@echo " u-boot.e500 -- update u-boot.e500"
@echo " u-boot.sam460 -- update u-boot.sam460"
@echo " efi -- update UEFI (edk2) platform firmware"
@echo " opensbi32-virt -- update OpenSBI for 32-bit virt machine"
@echo " opensbi64-virt -- update OpenSBI for 64-bit virt machine"
@echo " opensbi64-sifive_u -- update OpenSBI for 64-bit sifive_u machine"
@echo " bios-microvm -- update bios-microvm.bin (qboot)"
@echo " clean -- delete the files generated by the previous" \
"build targets"
bios: build-seabios-config-seabios-128k build-seabios-config-seabios-256k
cp seabios/builds/seabios-128k/bios.bin ../pc-bios/bios.bin
cp seabios/builds/seabios-256k/bios.bin ../pc-bios/bios-256k.bin
vgabios seavgabios: $(patsubst %,seavgabios-%,$(vgabios_variants))
seavgabios-isavga: build-seabios-config-vga-isavga
cp seabios/builds/vga-isavga/vgabios.bin ../pc-bios/vgabios.bin
seavgabios-%: build-seabios-config-vga-%
cp seabios/builds/vga-$*/vgabios.bin ../pc-bios/vgabios-$*.bin
build-seabios-config-%: config.%
mkdir -p seabios/builds/$*
cp $< seabios/builds/$*/.config
$(MAKE) -C seabios \
EXTRAVERSION=$(SEABIOS_EXTRAVERSION) \
CROSS_PREFIX=$(x86_64_cross_prefix) \
KCONFIG_CONFIG=$(CURDIR)/seabios/builds/$*/.config \
OUT=$(CURDIR)/seabios/builds/$*/ oldnoconfig
$(MAKE) -C seabios \
EXTRAVERSION=$(SEABIOS_EXTRAVERSION) \
CROSS_PREFIX=$(x86_64_cross_prefix) \
KCONFIG_CONFIG=$(CURDIR)/seabios/builds/$*/.config \
OUT=$(CURDIR)/seabios/builds/$*/ all
.PHONY: sgabios skiboot
sgabios:
$(MAKE) -C sgabios
cp sgabios/sgabios.bin ../pc-bios
pxerom: $(patsubst %,pxe-rom-%,$(pxerom_variants))
pxe-rom-%: build-pxe-roms
cp ipxe/src/bin/$(VID)$(DID).rom ../pc-bios/pxe-$*.rom
efirom: $(patsubst %,efi-rom-%,$(pxerom_variants))
efi-rom-%: build-pxe-roms build-efi-roms edk2-basetools
$(EDK2_EFIROM) -f "0x$(VID)" -i "0x$(DID)" -l 0x02 \
-b ipxe/src/bin/$(VID)$(DID).rom \
-ec ipxe/src/bin-i386-efi/$(VID)$(DID).efidrv \
-ec ipxe/src/bin-x86_64-efi/$(VID)$(DID).efidrv \
-o ../pc-bios/efi-$*.rom
build-pxe-roms:
$(MAKE) -C ipxe/src CONFIG=qemu \
CROSS_COMPILE=$(x86_64_cross_prefix) \
$(patsubst %,bin/%.rom,$(pxerom_targets))
build-efi-roms: build-pxe-roms
$(MAKE) -C ipxe/src CONFIG=qemu \
CROSS_COMPILE=$(x86_64_cross_prefix) \
$(patsubst %,bin-i386-efi/%.efidrv,$(pxerom_targets)) \
$(patsubst %,bin-x86_64-efi/%.efidrv,$(pxerom_targets))
# Build scripts can pass compiler/linker flags to the EDK2
# build tools via the EDK2_BASETOOLS_OPTFLAGS (CFLAGS) and
# EDK2_BASETOOLS_LDFLAGS (LDFLAGS) environment variables.
#
# Example:
#
# make -C roms \
# EDK2_BASETOOLS_OPTFLAGS='...' \
# EDK2_BASETOOLS_LDFLAGS='...' \
# efirom
#
edk2-basetools:
$(MAKE) -C edk2/BaseTools \
PYTHON_COMMAND=$${EDK2_PYTHON_COMMAND:-python3} \
EXTRA_OPTFLAGS='$(EDK2_BASETOOLS_OPTFLAGS)' \
EXTRA_LDFLAGS='$(EDK2_BASETOOLS_LDFLAGS)'
slof:
$(MAKE) -C SLOF CROSS=$(powerpc64_cross_prefix) qemu
cp SLOF/boot_rom.bin ../pc-bios/slof.bin
u-boot.e500:
$(MAKE) -C u-boot O=build.e500 qemu-ppce500_config
$(MAKE) -C u-boot CROSS_COMPILE=$(powerpc_cross_prefix) \
O=build.e500
$(powerpc_cross_prefix)strip u-boot/build.e500/u-boot -o \
../pc-bios/u-boot.e500
u-boot.sam460:
$(MAKE) -C u-boot-sam460ex Sam460ex_config
$(MAKE) -C u-boot-sam460ex CROSS_COMPILE=$(powerpc_cross_prefix)
cp u-boot-sam460ex/u-boot.bin ../pc-bios/u-boot-sam460-20100605.bin
skiboot:
$(MAKE) -C skiboot CROSS=$(powerpc64_cross_prefix)
cp skiboot/skiboot.lid ../pc-bios/skiboot.lid
efi: edk2-basetools
$(MAKE) -f Makefile.edk2
opensbi32-virt:
$(MAKE) -C opensbi \
CROSS_COMPILE=$(riscv32_cross_prefix) \
PLATFORM="qemu/virt"
cp opensbi/build/platform/qemu/virt/firmware/fw_jump.bin ../pc-bios/opensbi-riscv32-virt-fw_jump.bin
opensbi64-virt:
$(MAKE) -C opensbi \
CROSS_COMPILE=$(riscv64_cross_prefix) \
PLATFORM="qemu/virt"
cp opensbi/build/platform/qemu/virt/firmware/fw_jump.bin ../pc-bios/opensbi-riscv64-virt-fw_jump.bin
opensbi64-sifive_u:
$(MAKE) -C opensbi \
CROSS_COMPILE=$(riscv64_cross_prefix) \
PLATFORM="sifive/fu540"
cp opensbi/build/platform/sifive/fu540/firmware/fw_jump.bin ../pc-bios/opensbi-riscv64-sifive_u-fw_jump.bin
bios-microvm:
$(MAKE) -C qboot
cp qboot/bios.bin ../pc-bios/bios-microvm.bin
clean:
rm -rf seabios/.config seabios/out seabios/builds
$(MAKE) -C sgabios clean
rm -f sgabios/.depend
$(MAKE) -C ipxe/src veryclean
$(MAKE) -C edk2/BaseTools clean
$(MAKE) -C SLOF clean
rm -rf u-boot/build.e500
$(MAKE) -C u-boot-sam460ex distclean
$(MAKE) -C skiboot clean
$(MAKE) -f Makefile.edk2 clean
$(MAKE) -C opensbi clean
$(MAKE) -C qboot clean