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

Gabriel L. Somlo gsomlo at gmail.com
Tue Apr 8 15:51:25 CEST 2014


On Mon, Apr 07, 2014 at 02:57:08PM -0400, Kevin O'Connor wrote:
> On Mon, Apr 07, 2014 at 02:05:21PM -0400, Gabriel L. Somlo wrote:
> > On Mon, Apr 07, 2014 at 11:23:44AM -0400, Kevin O'Connor wrote:
> > > So, I'm suggesting QEMU produce two new fw_cfg files: an anchor file
> > > with the valid anchor table (the address pointer can be just set to
> > > zero), and an smbios table file with the complete set of smbios tables
> > > formatted according to the smbios spec.  SeaBIOS can then use the
> > > existence of one of these new files to determine if it should deploy
> > > (and optionally modify) them or if it should use the old smbios
> > > generation code.
> > 
> > Oh, OK. Right now we have (in qemu):
> > 
> > #define SMBIOS_FIELD_ENTRY 0
> > #define SMBIOS_TABLE_ENTRY 1
> > 
> > I will be adding (actually, migrating to):
> > 
> > #define SMBIOS_ANCHOR_ENTRY 2 /* for the smbios entry point table */
> > #define SMBIOS_FULLTABLE_ENTRY 3 /* for the blob containing all types */
> 
> No - don't do that.  Lets leave the existing smbios fw_cfg entry
> (0x8001) unchanged.  Instead, introduce two new fw_cfg files using the
> fw_cfg_add_file() interface (eg, "etc/smbios/smbios-anchor" and
> "etc/smbios/smbios-tables").

OK.

> > I can add such a structure for the anchor/entrypoint table and for the
> > full blob-of-tables payload, in which I can tell you how big type 0 is,
> > so the BIOS (SeaBIOS/TianoCore) side surgery can be made that much
> > easier...
> 
> It's trivial for the firmware to calculate this on its own, so I
> recommend just putting the anchor table and main tables unmodified in
> their respective fw_cfg files.

Not sure why it never occurred to me before (lack of caffeine, or various
day-job related distractions :) ) but if the QEMU default dummy type 0
table is just that -- a dummy table -- there's *nothing* preventing me
from leaving all (three) of its strings *empty* :)

Then we'll know *exactly* what the size of type 0 is, when it's time
to surgically transplant a new one within the BIOS...

I remember neither Windows, Linux (F20 live) or OS X objecting to a
type 0 smbios table with all-undefined strings, during some previous
tests.

I'll try to send out an updated patch set later in the week.

Thanks again,
--Gabriel



More information about the SeaBIOS mailing list