[SeaBIOS] [Qemu-devel] E820 (Re: [v4 PATCH 00/12] SMBIOS: build full tables in QEMU)

Laszlo Ersek lersek at redhat.com
Thu Apr 3 11:42:31 CEST 2014

On 04/03/14 03:57, Gabriel L. Somlo wrote:
> On Wed, Apr 02, 2014 at 01:01:28PM -0400, Gabriel L. Somlo wrote:
>> Speaking of, I *thought* I had a vague idea of how all this stuff fits
>> together, but it turns out I don't... There's
>> 	- OVMF
>> 	  http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=OVMF
>> 	- TianoCore
>> 	  http://www.coreboot.org/TianoCore
>> 	- coreboot
>> 	  http://www.coreboot.org/Download_coreboot
>> Apparently, TianoCore is a "coreboot payload", which in my mind is
>> somewhat analogous to bootloader "stages" chaining off each other,
>> but then what's OVMF (the only thing I actually tried, which only
>> works on piix) ? Is it a packaged bundle of coreboot+tianocore ?
>> or something else entirely ?
>> What if I want to send a patch against this whole "thing" to
>> facilitate integration with the new smbios table generator in qemu ?
>> Which git repos do I need to have around, and how to stitch them
>> together to obtain "the thing you use as an argument to -bios in lieu
>> of SeaBIOS", when it comes time to test ? :)

Unless you want to do OVMF development yourself (ie. as long as you'd
like to test only), you're best off with

(a) Gerd's packages:


(b) If you use a Fedora host, you can also try a (recently refreshed)
Copr build, thanks to Paolo:


Under (a) you find some short instructions, and a set of RPMs that is
automatically rebuilt twice a day (IIRC).

Both (a) and (b) include the downstream-only SMBIOS patches.

>> I'm guessing this is a FAQ, so if there's one place that explains it
>> all, please point me at it. Otherwise I'd be happy to write it up once
>> I get my head wrapped around it :)
> Nevermind, it seems it's all under git://git.code.sf.net/p/tianocore/edk2 :)
> Although the nomenclature is still a bit fuzzy to me, the "thing to build"
> within edk2 appears to be OvmfPkg (ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc,
> with TOOL_CHAIN_TAG = GCC48, in Conf/target.txt, at least on F20).
> I now have the latest and greatest "upstream" OVMF.fd, and I can use it
> (piix only) to boot Fedora 20 live x86_64. Guess I'm on my way :)

You can most certainly build OVMF yourself, yes; the OvmfPkg/build.sh
script is a convenience wrapper. See also OvmfPkg/README.

> I get "missing smbios entry point" when I do a dmidecode, BTW. QEMU is
> sending type 1, 3, 4, etc. blobs in fw_cfg, not sure yet what I need
> to do to get OVMF to add the entry point... Maybe I should try without
> my smbios-patched qemu ?

You don't see SMBIOS tables in the guest because you've built upstream
OVMF. As I said before, upstream OvmfPkg doesn't include my SMBIOS
patches. Both (a) and (b) do however.

One further note (also mentioned in OvmfPkg/README): don't use OVMF.fd
with -bios; use it with -pflash (you need a Linux 3.7+ host for this).
This will give your guest real runtime variable services -- non-volatile
variable data will be written back to the OVMF.fd file.


More information about the SeaBIOS mailing list