qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [SeaBIOS] Graphics card pass-through working with two p


From: Avi Kivity
Subject: Re: [Qemu-devel] [SeaBIOS] Graphics card pass-through working with two pass pci-initialization
Date: Wed, 01 Jun 2011 14:13:08 +0300
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc15 Lightning/1.0b3pre Thunderbird/3.1.10

On 06/01/2011 12:56 PM, Alexander Graf wrote:
On 01.06.2011, at 09:30, Gerd Hoffmann wrote:

>   Hi,
>
>>  0xE0000000 is hard-coded in the DSDT for both piix and q35 as below.
>>  If the range is determined dynamically, the area also needs to be
>>  updated somehow dynamically.
>>
>>  ...
>>              Name (_CRS, ResourceTemplate ()
>>  ...
>>                  DWordMemory (ResourceProducer, PosDecode, MinFixed, 
MaxFixed, NonCacheable, ReadWrite,
>>                      0x00000000,         // Address Space Granularity
>>                      0xE0000000,         // Address Range Minimum
>>                      0xFEBFFFFF,         // Address Range Maximum
>>                      0x00000000,         // Address Translation Offset
>>                      0x1EC00000,         // Address Length
>>                      ,, , AddressRangeMemory, TypeStatic)
>
>  Uhm, indeed.  I know next to nothing about ACPI though.  Ideas anyone how 
this could be done?

We're facing similar issues on PPC. The equivalent of the DSDT there is the 
device tree, which is currently passed in as binary blob and slightly appended 
for dynamic configuration. I'd much rather like to see it fully generated 
inside of Qemu from all the information we have available there, so we don't 
run into consistency issues.

This will be even more required when we pass through SoC devices to the guest, 
which are not on a PCI bus. Without specifying them in the DT, the guest 
doesn't know about them. X86 has a similar issue. Take a look at the HPET for 
example. If you don't want an HPET inside the guest, the DSDT needs to be 
modified. So you need to change things at 2 places - the DSDT and Qemu.

I don't know how much work it would be to generate the DSDT dynamically from 
Qemu, but IMHO that's the sanest way to make things flexible. We could probably 
even extract most information from the Qdev tree.


Generating the DSDT dynamically is hard, but the DSDT itself is dynamic. You can make any function talk to the firmware configuration interface and return results that depend on the information there.

--
error compiling committee.c: too many arguments to function




reply via email to

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