xref: /openbmc/qemu/roms/Makefile (revision 95ca557d)
1b1c0d031SGerd Hoffmann
2b4566776SGerd Hoffmannvgabios_variants := stdvga cirrus vmware qxl
32397edd7SGerd Hoffmannpxerom_variants  := e1000 eepro100 ne2k_pci pcnet rtl8139 virtio
42397edd7SGerd Hoffmann
52f3f430dSGerd Hoffmannpxe-rom-e1000    efi-rom-e1000    : VID := 8086
62f3f430dSGerd Hoffmannpxe-rom-e1000    efi-rom-e1000    : DID := 100e
72f3f430dSGerd Hoffmannpxe-rom-eepro100 efi-rom-eepro100 : VID := 8086
82f3f430dSGerd Hoffmannpxe-rom-eepro100 efi-rom-eepro100 : DID := 1209
92f3f430dSGerd Hoffmannpxe-rom-ne2k_pci efi-rom-ne2k_pci : VID := 1050
102f3f430dSGerd Hoffmannpxe-rom-ne2k_pci efi-rom-ne2k_pci : DID := 0940
112f3f430dSGerd Hoffmannpxe-rom-pcnet    efi-rom-pcnet    : VID := 1022
122f3f430dSGerd Hoffmannpxe-rom-pcnet    efi-rom-pcnet    : DID := 2000
132f3f430dSGerd Hoffmannpxe-rom-rtl8139  efi-rom-rtl8139  : VID := 10ec
142f3f430dSGerd Hoffmannpxe-rom-rtl8139  efi-rom-rtl8139  : DID := 8139
152f3f430dSGerd Hoffmannpxe-rom-virtio   efi-rom-virtio   : VID := 1af4
162f3f430dSGerd Hoffmannpxe-rom-virtio   efi-rom-virtio   : DID := 1000
172f3f430dSGerd Hoffmann
182f3f430dSGerd Hoffmann#
192f3f430dSGerd Hoffmann# EfiRom utility is shipped with edk2 / tianocore, in BaseTools/
202f3f430dSGerd Hoffmann#
212f3f430dSGerd Hoffmann# We need that to combine multiple images (legacy bios,
222f3f430dSGerd Hoffmann# efi ia32, efi x64) into a single rom binary.
232f3f430dSGerd Hoffmann#
242f3f430dSGerd Hoffmann# We try to find it in the path.  You can also pass the location on
252f3f430dSGerd Hoffmann# the command line, i.e. "make EFIROM=/path/to/EfiRom efirom"
262f3f430dSGerd Hoffmann#
272f3f430dSGerd HoffmannEFIROM ?= $(shell which EfiRom 2>/dev/null)
28b4566776SGerd Hoffmann
29b1c0d031SGerd Hoffmanndefault:
30b1c0d031SGerd Hoffmann	@echo "nothing is build by default"
31b1c0d031SGerd Hoffmann	@echo "available build targets:"
32b1c0d031SGerd Hoffmann	@echo "  bios           -- update bios.bin (seabios)"
33b4566776SGerd Hoffmann	@echo "  seavgabios     -- update vgabios binaries (seabios)"
34b4566776SGerd Hoffmann	@echo "  lgplvgabios    -- update vgabios binaries (lgpl)"
352397edd7SGerd Hoffmann	@echo "  pxerom         -- update nic roms (bios only)"
362f3f430dSGerd Hoffmann	@echo "  efirom         -- update nic roms (bios+efi, this needs"
372f3f430dSGerd Hoffmann	@echo "                    the EfiRom utility from edk2 / tianocore)"
38b1c0d031SGerd Hoffmann
39b1c0d031SGerd Hoffmannbios: config.seabios
40b1c0d031SGerd Hoffmann	sh configure-seabios.sh $<
41b1c0d031SGerd Hoffmann	make -C seabios out/bios.bin
42b1c0d031SGerd Hoffmann	cp seabios/out/bios.bin ../pc-bios/bios.bin
437527bd85SGerd Hoffmann	cp seabios/out/*dsdt.aml ../pc-bios/
44b4566776SGerd Hoffmann
45b4566776SGerd Hoffmannseavgabios: $(patsubst %,seavgabios-%,$(vgabios_variants))
46b4566776SGerd Hoffmann
47b4566776SGerd Hoffmannseavgabios-%: config.vga.%
48b4566776SGerd Hoffmann	sh configure-seabios.sh $<
49b4566776SGerd Hoffmann	make -C seabios out/vgabios.bin
50b4566776SGerd Hoffmann	cp seabios/out/vgabios.bin ../pc-bios/vgabios-$*.bin
51b4566776SGerd Hoffmann
52b4566776SGerd Hoffmannlgplvgabios: $(patsubst %,lgplvgabios-%,$(vgabios_variants))
53b4566776SGerd Hoffmann
54b4566776SGerd Hoffmannlgplvgabios-%:
55b4566776SGerd Hoffmann	make -C vgabios vgabios-$*.bin
56b4566776SGerd Hoffmann	cp vgabios/VGABIOS-lgpl-latest.$*.bin ../pc-bios/vgabios-$*.bin
572397edd7SGerd Hoffmann
582397edd7SGerd Hoffmannpxerom: $(patsubst %,pxe-rom-%,$(pxerom_variants))
592397edd7SGerd Hoffmann
60*95ca557dSGerd Hoffmannpxe-rom-%: ipxe/src/config/local/general.h
612397edd7SGerd Hoffmann	make -C ipxe/src bin/$(VID)$(DID).rom
622397edd7SGerd Hoffmann	cp ipxe/src/bin/$(VID)$(DID).rom ../pc-bios/pxe-$*.rom
632f3f430dSGerd Hoffmann
642f3f430dSGerd Hoffmannefirom: $(patsubst %,efi-rom-%,$(pxerom_variants))
652f3f430dSGerd Hoffmann
66*95ca557dSGerd Hoffmannefi-rom-%: ipxe/src/config/local/general.h
672f3f430dSGerd Hoffmann	make -C ipxe/src bin/$(VID)$(DID).rom
682f3f430dSGerd Hoffmann	make -C ipxe/src bin-i386-efi/$(VID)$(DID).efidrv
692f3f430dSGerd Hoffmann	make -C ipxe/src bin-x86_64-efi/$(VID)$(DID).efidrv
702f3f430dSGerd Hoffmann	$(EFIROM) -f "0x$(VID)" -i "0x$(DID)" -l 0x02 \
712f3f430dSGerd Hoffmann		-b ipxe/src/bin/$(VID)$(DID).rom \
722f3f430dSGerd Hoffmann		-ec ipxe/src/bin-i386-efi/$(VID)$(DID).efidrv \
732f3f430dSGerd Hoffmann		-ec ipxe/src/bin-x86_64-efi/$(VID)$(DID).efidrv \
742f3f430dSGerd Hoffmann		-o ../pc-bios/efi-$*.rom
75*95ca557dSGerd Hoffmann
76*95ca557dSGerd Hoffmannipxe/src/config/local/%: config.ipxe.%
77*95ca557dSGerd Hoffmann	cp $< $@
78