qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH][SEABIOS] Move qemu config port access functions


From: Kevin O'Connor
Subject: [Qemu-devel] Re: [PATCH][SEABIOS] Move qemu config port access functions into separate file.
Date: Thu, 1 Oct 2009 20:51:27 -0400
User-agent: Mutt/1.5.19 (2009-01-05)

On Thu, Oct 01, 2009 at 06:35:55PM +0200, Gleb Natapov wrote:
> > As an aside, it would be good to have a conversation on general BIOS
> > configuration options.  These types of settings are going to be useful
> > on real hardware also - it would be nice to come up with a scheme that
> > would work on qemu and coreboot.  Maybe something like
> > get_config_u32("ShowBootMenu") - where on qemu it would get the info
> > from the qemu port but on coreboot it would pull the setting from the
> > coreboot flash filesystem.
> > 
> I started to implement this approach, but found a serious disadvantage:
> What if config option is not known to qemu or coreboot? What is it
> present only in qemu and meaningful default behaviour is required
> for coreboot? Like ShowBootMenu for instance. We want to return qemu
> setting or coreboot setting or 1 if neither is present.

I think passing in a default parameter like:
get_config_u32("ShowBootMenu", 1) would work (return the config value
or "1" if not found).

[...]
> --- /dev/null
> +++ b/src/cbcfg.c
> @@ -0,0 +1,13 @@
> +#include "config.h"
> +#include "util.h"
> +#include "cfg.h"
> +
> +void cfg_get_uuid(u8 *uuid)
> +{
> +    memset(uuid, 0, 16);
> +}
> +
> +int cfg_show_boot_menu(void)
> +{
> +    return 1;
> +}

What this would end up looking like is:

int cfg_show_boot_menu(void)
{
    return get_cbfs_config_u32("ShowBootMenu", 1);
}

Having to write these wrapper functions is tedious, which is why it
would be nice if I could get a name/value pair directly from qemu.

If qemu can provide a "stream" with a text config file in it, that's
okay too.  Basically, that's what I'm thinking of doing on coreboot.
Something like:

===============================
ShowBootMenu=1
BootMenuDelayMS=5000
ATA1-0-translation=2
DefaultBootDevice=2
===============================

-Kevin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]