[Bug 14437] Re: PCI IOMEM fix in latest kernel ?

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

 



Correct me if I'm wrong, but I think your complaint is that the nVidia
card works when you have only 2GB of memory, but stops working when you
have 4GB of memory.  (With 4GB, it probably still works in plain VGA
mode, but not in modes that use the 256MB frame buffer.)

The nVidia device is at 0000:01:00.0 and requires these resources:

  BAR 0 (0x10): mem  16MB (32-bit BAR)
  BAR 1 (0x14): mem 256MB (64-bit BAR, prefetchable (frame buffer))
  BAR 3 (0x1c): mem  16MB (64-bit BAR)
  BAR 5 (0x24): io  128 ports
  ROM   (0x30): mem 128KB (32-bit BAR)

With 2GB of RAM, you have memory from 0-0x80000000, and the 1.5GB region
from 0x80000000-0xE0000000 is available for PCI devices.  With 4GB of
RAM, you have memory from 0-0xC0000000, and only the 512MB region from
0xC0000000-0xE0000000 is left for PCI.

Even 512MB should be enough to accommodate the devices you have, but
the BIOS divided it up in such a way that only 32MB is actually routed
to bus 0000:01, and I don't think Linux is smart enough to redistribute
things and fix that.  The dynamic allocation work you mentioned might
be able to do it, but it is not in the mainline kernel, and I haven't
seen any discussion about it.

The frame buffer is a 64-bit BAR, and you seem to be running the
32-bit Ubuntu kernel.  I don't know whether the 64-bit kernel would
make a difference here or not.  It might be worth trying a live CD
or something.

Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux