[SeaBIOS] [PATCH v2] qemu: fast boot when linuxboot optionrom is used
Stefano Garzarella
sgarzare at redhat.com
Mon Dec 10 15:18:46 CET 2018
Hi Kevin,
On Wed, Dec 5, 2018 at 6:00 PM Kevin O'Connor <kevin at koconnor.net> wrote:
>
> On Fri, Nov 30, 2018 at 11:23:30AM +0100, Stefano Garzarella wrote:
> > On Thu, Nov 29, 2018 at 5:55 PM Kevin O'Connor <kevin at koconnor.net> wrote:
> > > Interesting. I tracked down this printf delay - it's due to the
> > > save/restore of cpu state when thunking to 16bit mode. (For every
> > > character displayed on the screen the code enters 16bit mode to invoke
> > > the vgabios and it saves/restores the cr0, gdt, fs, gs, a20, nmi
> > > states during that process.) It's trivial to eliminate the calls when
> > > there is no vgabios though (see patch below).
> >
> > Thanks, the patch works, but unfortunately, when I use qemu
> > -nographic, the /etc/sercon-port is set to PORT_SERIAL1 (in
> > src/fw/paravirt.c:623), bypassing the patch.
> > Maybe in QEMU is better to set /etc/sercom-port to 0 when there is no
> > serial port, or when we want a fast boot.
>
> You should be able to use "-device VGA,romfile=" instead.
My issue was releated to "-nographic" option. In this case if I
disable the VGA or if I use "-device VGA,romfile=", at the end of the
qemu_cfg_init() there are these lines that enable in any case the
sercom:
// serial console
u16 nogfx = 0;
qemu_cfg_read_entry(&nogfx, QEMU_CFG_NOGRAPHIC, sizeof(nogfx));
if (nogfx && !romfile_find("etc/sercon-port")
&& !romfile_find("vgaroms/sgabios.bin"))
const_romfile_add_int("etc/sercon-port", PORT_SERIAL1);
}
>
> > > --- a/src/output.c
> > > +++ b/src/output.c
> > > @@ -74,6 +74,9 @@ static struct putcinfo debuginfo = { debug_putc };
> > > static void
> > > screenc(char c)
> > > {
> > > + if (!MODESEGMENT && GET_IVT(0x10).segoff == FUNC16(entry_10).segoff)
> > > + // No need to thunk to 16bit mode if vgabios is not present
> > > + return;
> > > struct bregs br;
> > > memset(&br, 0, sizeof(br));
> > > br.flags = F_IF;
> >
> > Do you plan to commit this patch?
>
> Only if it's useful - does sercon make it not worthwhile?
Yes, I think it is useful. If I don't use "-nographic" it works as expected.
Thanks,
Stefano
>
> -Kevin
--
Stefano Garzarella
Red Hat
More information about the SeaBIOS
mailing list