From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52811) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bor3X-0005H5-ID for qemu-devel@nongnu.org; Tue, 27 Sep 2016 08:00:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bor3T-0001rm-Kg for qemu-devel@nongnu.org; Tue, 27 Sep 2016 08:00:15 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56516) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bor3T-0001rF-F0 for qemu-devel@nongnu.org; Tue, 27 Sep 2016 08:00:11 -0400 Message-ID: <1474977608.26376.22.camel@redhat.com> From: Gerd Hoffmann Date: Tue, 27 Sep 2016 14:00:08 +0200 In-Reply-To: <20160715143517.GA30705@morn.lan> References: <1468486382-21609-1-git-send-email-kraxel@redhat.com> <1468486382-21609-6-git-send-email-kraxel@redhat.com> <20160714161529.GA28523@morn.lan> <1468583389.22036.40.camel@redhat.com> <20160715143517.GA30705@morn.lan> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 Subject: Re: [Qemu-devel] [SeaBIOS] [PATCH 5/5] [wip] sercon: initial split-output implementation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin O'Connor Cc: seabios@seabios.org, qemu-devel@nongnu.org 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 numbe= r > > > 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 th= e > > > vgabios is compiled without -fomit-frame-pointer), and we know Window= s > > > Vista doesn't like the extra stack in high ram (the skifree bug). An= y > > > thoughts on what happens with these quirks if the main seabios code > > > hooks int10? > >=20 > > 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. >=20 > 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