From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:55542) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUl0h-0007vk-9f for qemu-devel@nongnu.org; Sat, 03 Nov 2012 17:12:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TUl0f-0001c2-HB for qemu-devel@nongnu.org; Sat, 03 Nov 2012 17:12:07 -0400 Received: from smtp1-g21.free.fr ([2a01:e0c:1:1599::10]:50310) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUl0e-0001bc-TE for qemu-devel@nongnu.org; Sat, 03 Nov 2012 17:12:05 -0400 Message-ID: <5095889E.9060301@reactos.org> Date: Sat, 03 Nov 2012 22:11:58 +0100 From: =?ISO-8859-1?Q?Herv=E9_Poussineau?= MIME-Version: 1.0 References: <5085A1F3.6040008@reactos.org> <508647C3.1030409@redhat.com> <50870669.1090605@reactos.org> <5087F646.8040605@redhat.com> In-Reply-To: <5087F646.8040605@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] Resource reporting for VGA cards List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: QEMU Developers Hi, Gerd Hoffmann a =E9crit : > On 10/23/12 23:04, Herv=E9 Poussineau wrote: >> Hi, >> Gerd Hoffmann a =E9crit : >>> On 10/22/12 21:43, Herv=E9 Poussineau wrote: >>>> Hello, >>>> >>>> I'm trying to add support for a S3 PCI VGA card to QEMU. It currentl= y >>>> works on some non-x86 systems. >>>> However, on x86, it seems that the card is correctly detected, but t= here >>>> is no display at all; I think it is due to bad framebuffer address >>>> detection. >>> I'd tend to suspect vgabios issues. >>> >>>> QEMU: >>>> Memory: 000A0000-000AFFFF >>>> Memory: 000B0000-000BFFFF >>>> I/O: 03B0-03BB >>>> I/O: 03C0-03DF >>>> Memory: FD000000-FDFFFFFF (BAR0) >>>> Memory: 000C0000-000CFFFF (rom file?) >>>> Memory: 04000000-04007FFF (???) >>> Can you try lspci in a linux guest? >>> Do you have a git tree somewhere? >> Git tree is available at git://repo.or.cz/qemu/hpoussin.git branch s3. >> Sorry, I don't have handy a lspci output, I will try to provide you on= e >> later. >=20 > 00:02.0 VGA compatible controller: S3 Inc. 86c764/765 [Trio32/64/64V+] > (prog-if 00 [VGA controller]) > Subsystem: Red Hat, Inc Device 1100 > Physical Slot: 2 > Flags: fast devsel > Memory at fd000000 (32-bit, prefetchable) [size=3D16M] > Expansion ROM at febd0000 [disabled] [size=3D64K] >=20 > Looks perfectly fine. I have no idea where the last two memory ranges > come from. OK. >>>> S3 card have a BAR0 of size 0x1000000 (16MB) for the framebuffer, an= d >>>> ROM is created with bochs vgabios. >>> I'd use seabios instead, but bochs vga should work too. Of course th= e >>> PCI IDs must be correct otherwise seabios ignores the rom. >>> >>>> QEMU is launched with -m pc -device s3-trio. >>> /me suggests to add '-vga none' so you don't end up with both cirrus = & s3 >> OK, tested with -vga none -device s3-trio, and I also tried with >> seavgabios. >> >> With seavgabios, BIOS is displayed, Windows starts to load, and then >> Windows 98 seems to stop loading at animated screen during load. >> >> With bochs vgabios, Windows 98 loads with fail-safe display driver, >> saying that the device doesn't work. >=20 > I'd suggest to ditch bochs vbe support from the s3 (cirrus hasn't it > too), i.e. not register vbe_ports and drop CONFIG_VGA_BOCHS from > roms/config.vga.s3 Done. >=20 > vgabios will support only standard vga modes then, but with a s3 driver > installed win98 should be able to drive the card with svga modes too. > It is possible to add s3 support to seavgabios simliar to cirrus for > VESA support. >=20 > Linux s3fb accepts the card: >=20 > [ 56.157842] fbcon: S3 Unknown (fb0) is primary device > [ 58.537524] Console: switching to colour frame buffer device 80x30 > [ 58.578909] fb0: S3 Unknown on 0000:00:02.0, 4 MB RAM, 7 MHz MCLK > [ 58.578969] fb0: unknown chip, CR2D=3D0, CR2E=3D0, CRT2F=3D0, CRT30=3D= 0 >=20 > screen looks a bit funky though, probably due to the incomplete emulati= on. >=20 > s3fb thinks the card has 4 MB whereas BAR0 is 16 MB. Something is fish= y > there. Maybe just the incomplete emulation too. >=20 Thanks for your help. I had to lower BAR0 size to 8 MB, which seems to=20 be the maximum allowed for the real card. Current state is that NT4 works in 640x480, Windows 98 doesn't work, and=20 Linux s3fb accepts the card but display is quite incorrect. [ 102.610239] Console: switching to colour framebuffer device 80x30 [ 102.622086] fb0: S3 Trio32 on 0000:00:03.0, 8 MB RAM, 7 MHz MCLK So, chip is recognized with the right name, and with the right RAM size. I need to continue my debugging... Regards, Herv=E9