[SeaBIOS] [Qemu-devel] [PATCH 2/2] Get system state configuration from QEMU and patcth DSDT with it.

Kevin O'Connor kevin at koconnor.net
Thu May 17 02:20:05 CEST 2012


On Wed, May 16, 2012 at 04:46:57PM +0300, Gleb Natapov wrote:
> On Tue, May 15, 2012 at 07:18:10PM -0400, Kevin O'Connor wrote:
> > As in the other recent discussion, a struct can be built by the BIOS
> > and a pointer passed in via a dynamic SSDT (eg, BDAT).  Whatever data
> > is needed can then be passed in via that struct.
> > 
> I saw that, but I don't get why doing it this way instead of defining
> the object in AML and patching it? I can define Name(S4VL, 0x2) and path
> 0x2 to whatever QEMU wants me to use, or I can patch Package directly
> like I did.

If it has to be patched anyway (eg, to remove _S3 definition) then,
yes, might as well do the whole thing via patching.

> > Why?  Just put the definitions in ssdp_pcihp.dsl instead of
> > acpi-dsdt.dsl - there's no real difference.
> Fine by me. I verified and Windows/Linux can cope with _Sx definitions
> being in SSDT. If we a going to move all the code that needs patching to
> this file may we should rename it to something like ssdp_dynamic.dsl?

Agreed.

BTW, what's the background to the requirement to configure the Sx
sleep levels?  As we've discussed some time back, I'm leery of
building custom QEMU->SeaBIOS interfaces just so SeaBIOS can then
reencode into ACPI for the OS.

> > The QEMU_CFG_FILE_DIR is just a list of "names" and "sizes" for each
> > "port".  There's no fundamental limitation to the interface.  If QEMU
> > has a limit, we should just fix that.
> >
> Each time Seabios wants to read a file it need to iterate over all/most
> existing files.

Yes.  I'd like to change this in SeaBIOS by caching the "romfile"
entries.  It would actually simplify the code.

>I can understand advantage of using files for code that
> is shared between coreboot and qemu since files is what real HW uses,
> but for QEMU internal code it is just overhead for the sake of it.

The real benefit to using QEMU_CFG_FILE_DIR is that we can get at the
size of the data in a standard way.  Without that, each new data item
has to have its own fw_cfg reading code which is just a waste.

>I do
> not have strong fillings about this issue. If you think that files is
> the only way forward may be you should communicate this to QEMU and put
> a comment in hw/fw_cfg.h explaining that and increasing FW_CFG_FILE_SLOTS
> to some ridiculously large value.

I've been meaning to build a qemu patch that puts all fw_cfg entries
in QEMU_CFG_FILE_DIR.  (There's no harm in making names for the
existing hard-coded fw_cfg "ports".)  Unfortunately, I haven't gotten
around to it.  :-(

-Kevin



More information about the SeaBIOS mailing list