From: BALATON Zoltan <balaton@eik.bme.hu>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Machine specific option ROMs
Date: Tue, 20 Aug 2019 12:46:56 +0200 (CEST) [thread overview]
Message-ID: <alpine.BSF.2.21.9999.1908201235270.15352@zero.eik.bme.hu> (raw)
In-Reply-To: <20190820062552.ivu7o4rcroppkjje@sirius.home.kraxel.org>
On Tue, 20 Aug 2019, Gerd Hoffmann wrote:
>>> For example in qemu 1.5 the nic roms got EFI support and there is a
>>> compat property which switches the pc-i440fx-1.4 (and older) machine
>>> types to the non-efi versions. Grep for pxe-e1000.rom to find the code.
>
> Note that roms with a pci firmware standard header[1] can be chained
> together, then placed in the pci rom bar. This is how the efi-*.rom
> files are created, they are three-in-one images (bios, efi ia32, efi
> x64).
>
> # file pc-bios/qemu_vga.ndrv
> pc-bios/qemu_vga.ndrv: header for PowerPC PEF executable
>
> Hmm, so that is probably not going to work.
>
>> +static GlobalProperty compat[] = {
>> + { "VGA", "romfile", NDRV_VGA_FILENAME },
>> +};
>
>> + compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
>
> I wouldn't name the variable compat (in this specific case it's not for
> backward compatibility), but yes, this is the idea.
>
>> manually. (In the future this same way can also be used to pass proper
>> FCode ROMs to OpenBIOS.)
>
> The image type (pci rom header) can be:
>
> Type Description
> 0 Intel x86, PC-AT compatible
> 1 Open Firmware standard for PCI
> 2 Hewlett-Packard PA RISC
> 3 Extensible Firmware Interface (EFI)
> 4-FF Reserved
>
> So having a single pci rom image with both classic vgabios (type 0) and
> open firmware fcode (type 1) should be possible.
>
> cheers,
> Gerd
>
> [1] http://read.pudn.com/downloads211/doc/comm/994029/pcifw_r3_0_updated.pdf, section 5.1
Thanks for investigating it. However there are at least two problems with
that idea:
1. OpenBIOS does not yet understand standard PCI ROM headers, it can only
handle NDRV and PEF ROMs yet so first support for that (and FCode ROMs)
should be added to OpenBIOS.
2. Building rom images from different sources (in this case your vgabios
and QemuMacDrivers for the NDRV) might not be straightforward (maybe some
clever make rules would take care of these without too much hassle but I'm
not sure, this would mean rebuilding binary if any of the two sources
change).
Plus I don't know if other firmwares such as sam460ex U-Boot can handle
such multiplatform ROMs, especially because it can use x86 ROM just not
the QEMU vgabios due to not emulating i386 specific opcodes that gcc puts
in real mode code so it needs something compiled with bcc such as
Plex86/Bochs VGABios so then we can't put those in one binary because we
had two x86 images in it. Therefore I think setting this based on machine
like above is probably the easiest way for now.
I'll wait for Mark's comments before going further with this.
Regards,
BALATON Zoltan
next prev parent reply other threads:[~2019-08-20 10:47 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-19 0:38 [Qemu-devel] Machine specific option ROMs BALATON Zoltan
2019-08-19 6:15 ` Gerd Hoffmann
2019-08-19 23:42 ` BALATON Zoltan
2019-08-20 6:25 ` Gerd Hoffmann
2019-08-20 10:46 ` BALATON Zoltan [this message]
2019-08-20 12:28 ` Gerd Hoffmann
2019-08-20 14:01 ` BALATON Zoltan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.BSF.2.21.9999.1908201235270.15352@zero.eik.bme.hu \
--to=balaton@eik.bme.hu \
--cc=kraxel@redhat.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).