View Single Post
Old 05-19-09, 12:20 PM   #2
zander
NVIDIA Corporation
 
zander's Avatar
 
Join Date: Aug 2002
Posts: 3,740
Default Re: The infamous Error inserting nvidia No Such Device

It looks like two of the GPU's BARs have not been setup correctly and/or confuse the kernel:
01:00.0 VGA compatible controller: nVidia Corporation Device 0605 (rev a2)
Subsystem: eVga.com. Corp. Device c981
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at 12a000000 (32-bit, non-prefetchable) [size=16M]
Memory at d0000000 (64-bit, prefetchable) [size=256M]
Memory at 128000000 (64-bit, non-prefetchable) [size=32M]
I/O ports at dc80 [size=128]
Expansion ROM at 12b000000 [disabled] [size=128K]
Capabilities: [60] Power Management version 3
Capabilities: [68] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
Capabilities: [78] Express Endpoint, MSI 00
Capabilities: [100] Virtual Channel <?>
Capabilities: [128] Power Budgeting <?>
Capabilities: [600] Vendor Specific Information <?>
Kernel modules: nvidiafb, nvidia
00: de 10 05 06 07 00 10 00 a2 00 00 03 10 00 00 00
10: 00 00 00 2a 0c 00 00 d0 00 00 00 00 04 00 00 28
20: 01 00 00 00 81 dc 00 00 00 00 00 00 42 38 81 c9
(...)
BAR0, located @ 0x12a000000 according to the kernel, is located @ 0x2a000000, as far as the GPU is concerned (see the BAR0 register @ 0x10 in PCI configuration space). BAR2 is located @ 0x128000000, which is illegal since it's a non-prefetchable BAR (the non-prefetchable memory-behind-bridge registers of upstream bridges cannot support ranges above 4GB).

BAR0 and BAR2 (of current NVIDIA GPUs) need to be located below the 4GB boundary. The BAR1 placement above is fine, provided a 185.18.xx or more recent NVIDIA Linux graphics driver release is used.
zander is offline   Reply With Quote