[Top][All Lists]
[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