[SeaBIOS] [PATCH 5/5] [wip] sercon: initial split-output implementation
Gerd Hoffmann
kraxel at redhat.com
Tue Sep 27 14:00:08 CEST 2016
On Fr, 2016-07-15 at 10:35 -0400, Kevin O'Connor wrote:
> On Fri, Jul 15, 2016 at 01:49:49PM +0200, Gerd Hoffmann wrote:
> > > Finally, one high level observation is that we know there are a number
> > > of quirks in various vgabios emulators. For example, we know some
> > > emulators don't handle certain 32bit instructions when in 16bit mode
> > > (hence scripts/vgafixup.py), we know some versions of Windows use an
> > > emulator that doesn't like some stack relative instructions (hence the
> > > vgabios is compiled without -fomit-frame-pointer), and we know Windows
> > > Vista doesn't like the extra stack in high ram (the skifree bug). Any
> > > thoughts on what happens with these quirks if the main seabios code
> > > hooks int10?
> >
> > Good question. Do the emulators (both win, xorg) use the int10 vector
> > set by seabios in the first place? Or go they load the vgabios and run
> > it, including the initialization, and use whatever entry point the init
> > code sets up? I suspect it is the latter. But needs investigation and
> > testing.
>
> I think they just call the existing int10 handler. In general, it's
> not safe to rerun the vga init code. Also, if they did run the init
> it would lead to extra copies of the SeaVGABIOS version banners in the
> debug logs, which I don't recall seeing.
Finally found the time to continue with this and ran a bunch of tests.
RHEL-5 (known to be affected by x86emu issue) continues to work fine.
Xorg server log looks like it goes scan memory for the vgabios instead
of depending on the int10 vector:
(II) VESA(0): initializing int10
(II) VESA(0): Primary V_BIOS segment is: 0xc000
(II) VESA(0): VESA BIOS detected
(II) VESA(0): VESA VBE Version 3.0
(II) VESA(0): VESA VBE Total Mem: 16384 kB
(II) VESA(0): VESA VBE OEM: SeaBIOS VBE(C) 2011
(II) VESA(0): VESA VBE OEM Software Rev: 0.0
(II) VESA(0): VESA VBE OEM Vendor: SeaBIOS Developers
(II) VESA(0): VESA VBE OEM Product: SeaBIOS VBE Adapter
(II) VESA(0): VESA VBE OEM Product Rev: Rev. 1
Running tests with win7 doesn't show any problems too, so I suspect they
are basically doing the same.
Given these results I think I'll stick to the current approach of
integrating this directly into seabios (instead of creating a
sgabios-like rom using the seavgabios sources).
cheers,
Gerd
More information about the SeaBIOS
mailing list