Re: AGP mem resource is 64 bits, so no X ?
From: Petr Vandrovec
Date: Thu Jul 13 2006 - 18:03:48 EST
J.A. Magallón wrote:
Hi...
I have a box with a SuperMicro P4DCE+ mobo.
After an upgrade to the latest bios (v1.3, DC6P6273.zip), the kernel
(2.6.28-rc1-mm1) does not recognize the AGP card (an nvidia GeForce 6600 GT).
The propierary 'nvidia' driver does not load beacuse it says:
It is not 64bit AGP resource problem...
agpgart: Detected an Intel i860 Chipset.
agpgart: AGP aperture is 128M @ 0xe8000000
Hardware:
00:01.0 PCI bridge: Intel Corporation 82850 850 (Tehama) Chipset AGP Bridge (rev 04) (prog-if 00 [Normal decode])
Memory behind bridge: f0000000-f2ffffff
Prefetchable memory behind bridge: d8000000-e7ffffff
00:02.0 PCI bridge: Intel Corporation 82860 860 (Wombat) Chipset AGP Bridge (rev 04) (prog-if 00 [Normal decode])
Memory behind bridge: f3000000-f4ffffff
Prefetchable memory behind bridge: 50000000-501fffff
01:00.0 VGA compatible controller: nVidia Corporation NV43 [GeForce 6600/GeForce 6600 GT] (rev a2) (prog-if 00 [VGA])
Memory at f0000000 (32-bit, non-prefetchable) [size=16M]
Memory at <ignored> (32-bit, prefetchable)
Memory at f1000000 (32-bit, non-prefetchable) [size=16M]
[virtual] Expansion ROM at d8000000 [disabled] [size=128K]
Parts of dmesg:
PCI: Cannot allocate resource region 1 of device 0000:01:00.0
PCI: Failed to allocate mem resource #1:10000000@e0000000 for 0000:01:00.0
Any idea ?
Anyone has a previous BIOS ;) to share ?
It is just fatally confused BIOS. Your NVidia needs 256MB region for its
framebuffer apperture, but BIOS assigned 256MB for it at 0xE0000000, and later
it revoked second half of this assignment in favor of AGP aperture. Which on
electrical level means that only first 128MB of nvidia will be accessible from CPU.
While Windows will probably just complain loudly that from specified 256MB range
only 128MB is routed down to the adapter, and maybe even nvidia driver will cope
with it, using only 128MB of RAM, for Linux (rightly so) adapter is unusable, as
it wanted 256MB allocation for BAR1, but kernel could satisfy only 128MB without
redoing all PCI address space layout.
Besides going back to older BIOS I would recommend using different AGP aperture
size in the BIOS - with 256MB aperture I believe that you'll not trigger this
BIOS bug.
If it won't help, then you can try fiddling with pcibios_resource_survey() - if
you'll disable it, all resources should be assigned from scratch by
pci_assign_unassigned_resources. This way kernel should be able to find 256MB
chunk for adapter. To be able to use this aproach you definitely want to
disable legacy (or any...) support for USB in the BIOS, you do not want to use
vesa framebuffer, and maybe some other problems as well - it can break constants
encoded into ACPI tables :-(
Petr Vandrovec
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/