[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] Add Makefile rules to build pxe rom binaries (w
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH] Add Makefile rules to build pxe rom binaries (with/without EFI support) |
Date: |
Mon, 11 Feb 2013 15:15:19 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130105 Thunderbird/17.0.2 |
Am 11.02.2013 11:36, schrieb Gerd Hoffmann:
> This patch adds two new targets to roms/Makefile.
>
> "make -C roms ipxerom" will build the ipxe roms and update
> the binaries in pc-bios/, i.e. it basically documents how
> the build process of our current pxe roms works.
>
> "make -C rpms epxerom" will build rom binaries with EFI support.
roms
> They are composed from three images: legacy bios, efi ia32
> and efi x86. So netbooting via SeaBIOS will continue to work
Makefile comment says x64.
Cheers,
Andreas
> like it does today, and additionally we get network support
> for EFI. This target needs the EfiRom utility (shipped with
> edk2) somewhere in the $PATH.
>
> Note that adding EFI support makes the pxe rom bar size jump
> from 64k to 256k, so before actually committing binaries with
> EFI support to the master branch we have to figure how to handle
> rom size changes on live migration. But we must do that anyway
> as seabios bios size is pretty close to 128k and we likely will
> have to jump to 256k in near future.
>
> Signed-off-by: Gerd Hoffmann <address@hidden>
> ---
> roms/Makefile | 46 ++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 46 insertions(+)
>
> diff --git a/roms/Makefile b/roms/Makefile
> index 5e645bc..18c7ae2 100644
> --- a/roms/Makefile
> +++ b/roms/Makefile
> @@ -1,5 +1,30 @@
>
> vgabios_variants := stdvga cirrus vmware qxl
> +pxerom_variants := e1000 eepro100 ne2k_pci pcnet rtl8139 virtio
> +
> +ipxerom-e1000 epxerom-e1000 : VID := 8086
> +ipxerom-e1000 epxerom-e1000 : DID := 100e
> +ipxerom-eepro100 epxerom-eepro100 : VID := 8086
> +ipxerom-eepro100 epxerom-eepro100 : DID := 1209
> +ipxerom-ne2k_pci epxerom-ne2k_pci : VID := 1050
> +ipxerom-ne2k_pci epxerom-ne2k_pci : DID := 0940
> +ipxerom-pcnet epxerom-pcnet : VID := 1022
> +ipxerom-pcnet epxerom-pcnet : DID := 2000
> +ipxerom-rtl8139 epxerom-rtl8139 : VID := 10ec
> +ipxerom-rtl8139 epxerom-rtl8139 : DID := 8139
> +ipxerom-virtio epxerom-virtio : VID := 1af4
> +ipxerom-virtio epxerom-virtio : DID := 1000
> +
> +#
> +# 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.
> +#
> +# We try to find it in the path. You can also pass the location on
> +# the command line, i.e. "make EFIROM=/path/to/EfiRom epxerom"
> +#
> +EFIROM ?= $(shell which EfiRom 2>/dev/null)
>
> default:
> @echo "nothing is build by default"
> @@ -7,6 +32,9 @@ default:
> @echo " bios -- update bios.bin (seabios)"
> @echo " seavgabios -- update vgabios binaries (seabios)"
> @echo " lgplvgabios -- update vgabios binaries (lgpl)"
> + @echo " ipxerom -- update pxe roms (bios only)"
> + @echo " epxerom -- update pxe roms (bios+efi, this needs"
> + @echo " the EfiRom utility from edk2 / tianocore)"
>
> bios: config.seabios
> sh configure-seabios.sh $<
> @@ -26,3 +54,21 @@ lgplvgabios: $(patsubst
> %,lgplvgabios-%,$(vgabios_variants))
> lgplvgabios-%:
> make -C vgabios vgabios-$*.bin
> cp vgabios/VGABIOS-lgpl-latest.$*.bin ../pc-bios/vgabios-$*.bin
> +
> +ipxerom: $(patsubst %,ipxerom-%,$(pxerom_variants))
> +
> +ipxerom-%:
> + make -C ipxe/src bin/$(VID)$(DID).rom
> + cp ipxe/src/bin/$(VID)$(DID).rom ../pc-bios/pxe-$*.rom
> +
> +epxerom: $(patsubst %,epxerom-%,$(pxerom_variants))
> +
> +epxerom-%:
> + make -C ipxe/src bin/$(VID)$(DID).rom
> + make -C ipxe/src bin-i386-efi/$(VID)$(DID).efidrv
> + make -C ipxe/src bin-x86_64-efi/$(VID)$(DID).efidrv
> + $(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/pxe-$*.rom
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg