[SeaBIOS] [Qemu-devel] E820 (Re: [v4 PATCH 00/12] SMBIOS: build full tables in QEMU)
kevin at koconnor.net
Sat Apr 5 02:34:11 CEST 2014
On Wed, Apr 02, 2014 at 05:04:57PM +0200, Gerd Hoffmann wrote:
> > > - therefore, the maximum granularity of QEMU-generated
> > > elements should be full tables of a given type, and
> > > not the full SMBIOS blob at once (other mechanisms to
> > > allow the BIOS to insert its own type 0 welcome, but
> > > so far this seems the most straightforward one).
> Just an idea: Is the table ordering important? I don't think so. If
> qemu supplies a blob with all tables except type0, can the firmware
> simply append a type0 record to the blob supplied by qemu?
I don't see anything in the spec that would prohibit it, but I don't
think it's done in practice. Given how many different OS parsers
there are and their dubious quality, I think we'd want to be as simple
as possible and continue to put table 0 at the start.
> > I don't agree - I think ultimately we want QEMU to generate the full
> > SMBIOS table and pass it to the firmware via the romfile_loader
> > mechanism.
> I still think the firmware (and *only* the firmware) should supply the
> type0 table. I also think seabios should fill in something more
> sensible in there, such as "Vendor: SeaBIOS" and "Version:
> > The only thing that has been raised as an issue with this
> > is one bit in the smbios table (UEFI support).
> IMO 'dmidecode -t0' should show what firmware you are running
> (seabios/ovmf/coreboot/whatever), not something made up by qemu.
Ultimately my preference would be to make a clean break from the
existing smbios fw_cfg system as it is too complex, too confusing, and
too inflexible. We could implement the above as you suggest, but I
fear it would require keeping much of the complexity of the current
fw_cfg interface. (It's also a new feature as SeaBIOS doesn't
currently put any useful info in type 0.)
The already existing romfile_loader interface seems to provide a
nearly complete solution to replace the smbios fw_cfg system. If
there is really demand for more firmware info in the type 0 table, why
don't we use romfile_loader, have qemu put together a dummy type 0
table, and then have seabios update it in place? Sure, that's ugly,
but I'm pretty sure it would be less ugly then keeping the existing
smbios fw_cfg system around.
More information about the SeaBIOS