All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Gabriel L. Somlo" <gsomlo@gmail.com>
To: Kevin O'Connor <kevin@koconnor.net>
Cc: seabios@seabios.org, Laszlo Ersek <lersek@redhat.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] E820 (Re: [v4 PATCH 00/12] SMBIOS: build full tables in QEMU)
Date: Mon, 7 Apr 2014 10:49:54 -0400	[thread overview]
Message-ID: <20140407144953.GG1602@ERROL.INI.CMU.EDU> (raw)
In-Reply-To: <20140407141435.GA22185@morn.localdomain>

On Mon, Apr 07, 2014 at 10:14:36AM -0400, Kevin O'Connor wrote:
> How about having QEMU produce the smbios table with a dummy type0
> table and then both seabios and ovmf can replace the type0 table if
> desired.  After all, if OVMF is splitting the blob into tables, it can
> just as easily replace type0 as append it.
> 
> This way, the QEMU output is technically complete.  And if someone
> wishes to code up SeaBIOS to do the type0 replace (I'm not convinced
> it's even necessary) then at least that SeaBIOS code could be used on
> coreboot as well.

OK, so as far as I'm concerned, it's down to two alternatives:

1. I create a full blob, starting with the anchor/entrypoint, and
followed by a (dummy) type 0, type 1, etc, etc. all the way to
the type 127 end marker. Pass that in via fw_cfg, and each BIOS
is then responsible for editing type 0, overwriting it with
appropriate values.

I like this very much :) except for a serious discomfort with the idea
of imposing an additional "convention" on the size (and choice of)
strings included with the type0 table, beyond the smbios spec.


2. I create a third fw_cfg smbios "type" for the entry point
structure.

The BIOS (e.g. smbios_setup() in SeaBIOS) checks for the presence of
this blob *first*. If present, it simply grabs all table blobs from
fw_cfg and assembles them (e.g. via get_external()). Create its own
type 0 if not already included in fw_cfg, and recompute the checksum for
the entry point.

If the entry point blob is not found, smbios_setup() proceeds with its
current logic (looking for table or field blobs in fw_cfg, and
creating its own entry point structure).


Now, 2 would be uglier, hands down, but has the advantage of not
adding arbitrary restrictions on what the type0 structure can look
like.



If we go with 1 (all I need is you all to say "go for it, we're OK
with arbitrary restrictions on type0" :) ), I'll add prominent
comments in the qemu smbios source about what the restrictions are.

We have vendor, version, and date, currently. Date can be "YYYY-MM-DD"
or somesuch (for a total strlen of 10, not including \0).

Any idea what the longest "vendor" and "version" string might look
like ?

What do we do if we have *shorter* strings than that, fill with
spaces to keep the hardcoded strlen intact across the qemu/bios
demarc ?


Thanks,
--Gabriel

  parent reply	other threads:[~2014-04-07 14:50 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-18 23:23 [Qemu-devel] [v4 PATCH 00/12] SMBIOS: build full tables in QEMU Gabriel L. Somlo
2014-03-18 23:23 ` [Qemu-devel] [v4 PATCH 01/12] SMBIOS: Rename smbios_set_type1_defaults() for more general use Gabriel L. Somlo
2014-03-18 23:23 ` [Qemu-devel] [v4 PATCH 02/12] SMBIOS: Use macro to set smbios defaults Gabriel L. Somlo
2014-03-18 23:23 ` [Qemu-devel] [v4 PATCH 03/12] SMBIOS: Use bitmaps to check for smbios table collisions Gabriel L. Somlo
2014-03-18 23:23 ` [Qemu-devel] [v4 PATCH 04/12] SMBIOS: Add code to build full smbios tables; build type 2 table Gabriel L. Somlo
2014-03-18 23:23 ` [Qemu-devel] [v4 PATCH 05/12] SMBIOS: Build full tables for types 0 and 1 Gabriel L. Somlo
2014-03-18 23:23 ` [Qemu-devel] [v4 PATCH 06/12] SMBIOS: Remove unused code for passing individual fields to bios Gabriel L. Somlo
2014-03-18 23:23 ` [Qemu-devel] [v4 PATCH 07/12] SMBIOS: Build full type 3 table Gabriel L. Somlo
2014-03-18 23:23 ` [Qemu-devel] [v4 PATCH 08/12] SMBIOS: Build full type 4 tables Gabriel L. Somlo
2014-03-18 23:23 ` [Qemu-devel] [v4 PATCH 09/12] SMBIOS: Build full smbios memory tables (type 16, 17, 19, and 20) Gabriel L. Somlo
2014-03-18 23:23 ` [Qemu-devel] [v4 PATCH 10/12] SMBIOS: Build full tables for type 32 and 127 Gabriel L. Somlo
2014-03-18 23:23 ` [Qemu-devel] [v4 PATCH 11/12] SMBIOS: Update all table definitions to smbios spec v2.3 Gabriel L. Somlo
2014-03-18 23:23 ` [Qemu-devel] [v4 PATCH 12/12] SMBIOS: Remove SeaBIOS compatibility quirks Gabriel L. Somlo
2014-03-26 19:58 ` [Qemu-devel] E820 (Re: [v4 PATCH 00/12] SMBIOS: build full tables in QEMU) Gabriel L. Somlo
2014-03-26 22:36   ` Kevin O'Connor
2014-03-31 20:18     ` Gabriel L. Somlo
2014-04-01  8:40       ` Laszlo Ersek
2014-04-01 14:39         ` Kevin O'Connor
2014-04-01 15:47           ` Laszlo Ersek
2014-04-01 18:47             ` Gabriel L. Somlo
2014-04-01 20:28               ` Kevin O'Connor
2014-04-01 21:28                 ` Gabriel L. Somlo
2014-04-01 21:44                   ` Laszlo Ersek
2014-04-01 22:00                     ` Kevin O'Connor
2014-04-01 22:35                       ` Laszlo Ersek
2014-04-02 12:38                         ` Gabriel L. Somlo
2014-04-02 13:39                           ` Laszlo Ersek
2014-04-05  2:48                         ` Kevin O'Connor
2014-04-02 15:07                     ` Gerd Hoffmann
2014-04-02 17:01                       ` Gabriel L. Somlo
2014-04-03  1:57                         ` Gabriel L. Somlo
2014-04-03  9:42                           ` Laszlo Ersek
2014-04-03 13:32                             ` Gabriel L. Somlo
2014-04-03 13:56                               ` Laszlo Ersek
2014-04-07  6:50                               ` Gerd Hoffmann
2014-04-07  6:47                             ` Gerd Hoffmann
2014-04-01 21:48                   ` Kevin O'Connor
2014-04-02 15:04                 ` Gerd Hoffmann
2014-04-05  0:34                   ` Kevin O'Connor
2014-04-05  1:15                     ` Gabriel L. Somlo
2014-04-05  2:26                       ` Kevin O'Connor
2014-04-07  7:09                         ` Gerd Hoffmann
2014-04-07 14:14                           ` Kevin O'Connor
2014-04-07 14:33                             ` Laszlo Ersek
2014-04-07 14:49                             ` Gabriel L. Somlo [this message]
2014-04-07 15:23                               ` Kevin O'Connor
2014-04-07 18:05                                 ` Gabriel L. Somlo
2014-04-07 18:57                                   ` Kevin O'Connor
2014-04-08 13:51                                     ` Gabriel L. Somlo
2014-03-27  2:45   ` Gabriel L. Somlo

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=20140407144953.GG1602@ERROL.INI.CMU.EDU \
    --to=gsomlo@gmail.com \
    --cc=kevin@koconnor.net \
    --cc=kraxel@redhat.com \
    --cc=lersek@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=seabios@seabios.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.