[SeaBIOS] "PCI: out of address space" with two video cards

Gerd Hoffmann kraxel at redhat.com
Fri Oct 14 08:16:36 CEST 2011


On 10/14/11 01:31, Kevin O'Connor wrote:
> On Thu, Oct 13, 2011 at 04:52:05PM -0500, marek dudek wrote:
>> I am trying to get a KVM guest to work with (up to) TWO video cards
>> assigned to it.
> [...]
>> 02:00.0 VGA compatible controller: nVidia Corporation G72 [GeForce
>> 7300 SE/7200 GS] (rev a1) (prog-if 00 [VGA controller])
>> 	Subsystem: eVga.com. Corp. Device c429
>> 	Flags: bus master, fast devsel, latency 0, IRQ 36
>> 	Memory at f8000000 (32-bit, non-prefetchable) [size=16M]
>> 	Memory at b0000000 (64-bit, prefetchable) [size=256M]
>
> As a guess, you've simply run out of virtual memory because the two
> cards need 512M of address space.

Indeed.

> I think Gerd had some experimental patches to make this more
> flexible.

That turned out to be quite tricky though because the ACPI tables must 
be updated accordingly.

Another possible option would be to map 64bit bars somewhere above 4G, 
so we don't have to squeeze them into the 512M pci memory hole.

> You could try modifying src/pciinit.c:
>
>      u32 start = BUILD_PCIMEM_START;
>
> to something like:
>
>      u32 start = 0xc0000000;
>
> but note that this isn't a real solution (due to possible conflicts at
> the 0xc0000000 - 0xe0000000 address range).

Works only if the virtual machine has less than 3G of memory, otherwise 
kvm will use the the 0xc0000000 -> 0xe0000000 range for RAM.

cheers,
   Gerd



More information about the SeaBIOS mailing list