qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Resource reporting for VGA cards


From: Gerd Hoffmann
Subject: Re: [Qemu-devel] Resource reporting for VGA cards
Date: Wed, 24 Oct 2012 16:08:06 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.8) Gecko/20121012 Thunderbird/10.0.8

On 10/23/12 23:04, Hervé Poussineau wrote:
> Hi,
> Gerd Hoffmann a écrit :
>> On 10/22/12 21:43, Hervé Poussineau wrote:
>>> Hello,
>>>
>>> I'm trying to add support for a S3 PCI VGA card to QEMU. It currently
>>> works on some non-x86 systems.
>>> However, on x86, it seems that the card is correctly detected, but there
>>> 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 one
> later.

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=16M]
        Expansion ROM at febd0000 [disabled] [size=64K]

Looks perfectly fine.  I have no idea where the last two memory ranges
come from.

>>> S3 card have a BAR0 of size 0x1000000 (16MB) for the framebuffer, and
>>> ROM is created with bochs vgabios.
>>
>> I'd use seabios instead, but bochs vga should work too.  Of course the
>> 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.

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

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.

Linux s3fb accepts the card:

[   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=0, CR2E=0, CRT2F=0, CRT30=0

screen looks a bit funky though, probably due to the incomplete emulation.

s3fb thinks the card has 4 MB whereas BAR0 is 16 MB.  Something is fishy
there.  Maybe just the incomplete emulation too.

HTH,
  Gerd



reply via email to

[Prev in Thread] Current Thread [Next in Thread]