[ipxe-devel] [Qemu-devel] [PATCH ipxe] build: Enable IPv6 for qemu

Laszlo Ersek lersek at redhat.com
Thu Jan 28 17:49:06 UTC 2016


On 01/28/16 11:19, Gerd Hoffmann wrote:
>   Hi,
> 
>> How common is it to build EFI roms, compared to building ipxe.efi or
>> snponly.efi?
> 
> No idea.  qemu is a very specific case, ipxe has drivers for the qemu
> nics (both virtual such as virtio-net and emulated such as rtl8139), and
> right now we actually build ipxe tree times (bios, efi-ia32,
> efi-x86_64), then combine them into a single image, using EfiRom
> (shipped with edk2).  That image is populated to the guest via pci rom
> bar.  That way both seabios and ovmf (edk2 firmware for qemu) have
> drivers available.
> 
> How much bios vs. efi is used -- I don't know.  seabios is the default
> and has been for years, so it is pretty clear that seabios takes the
> lead.  But whenever uefi share is at 1% or 10% -- no idea.
> 
> Probably we'll go add efi-aarch64 roms to the mix once ipxe support is
> there, or maybe drop efi-ia32 in favor of efi-aarch64.
> 
>> On IRC, roms is quite rare topic compared to non rom builds, but maybe
>> that's because those that build roms don't have that many questions.
> 
> I suspect it is because it rarely happens.  For onboard nics there
> simply is no rom you can easily populate.  Instead the nic rom is stored
> in the firmware flash, together with bios/uefi.  Chainloading ipxe.efi
> is *alot* simpler than hacking your firmware flash.
> 
> Add-on cards are a different story of course, but I suspect >90% of the
> use cases are with onboard nics.
> 
> The only case where I personally had a ipxe rom running on physical
> hardware was when I flashed a T60 Thinkpad (hardware broke meanwhile)
> with coreboot.
> 
> qemu has a defined set of hardware and prebuilt roms are shipped with
> both qemu and distros.  So people rarely have to build qemu roms
> themself -> no irc questions either ;)

I think that enabling IPv6 for the CONFIG=qemu build of iPXE will have
no effect for OVMF guests.

With CONFIG=qemu we only request SNP interfaces (low level NIC drivers)
from iPXE. Internet protocols are at a higher level, and with
CONFIG=qemu, the edk2 network stack is used on top of iPXE's SNP
interface. The iPXE feature test macro NET_PROTO_IPV6 will have no effect.

OVMF can pull in the IPv6 parts of edk2, but it needs

  -D NETWORK_IP6_ENABLE

for that (<https://github.com/tianocore/edk2/commit/36c6413f76e5>).

Thanks
Laszlo



More information about the ipxe-devel mailing list