Merge the pciid work.

Add getparams for AGP and FB physical adresses.
Fix the MEM_ALLOC issue properly.
Fix context switches for nv44.
Change the DRM version to 0.0.1.
main
Stephane Marchesin 2006-12-03 10:02:54 +01:00
parent 80d75cf695
commit 30acb90a60
6 changed files with 262 additions and 203 deletions

View File

@ -464,63 +464,167 @@
0x10DE 0x009E NV40 "NVidia 0x009E"
[nouveau]
0x12d2 0x0008 NV_01 "NV1"
0x12d2 0x0009 NV_01 "DAC64"
0x12d2 0x0018 NV_03 "Riva128"
0x12d2 0x0019 NV_03 "Riva128ZX"
0x12d2 0x0020 NV_04 "TNT"
0x12d2 0x0028 NV_05 "TNT2"
0x12d2 0x0029 NV_05 "UTNT2"
0x12d2 0x002c NV_05 "VTNT2"
0x12d2 0x00a0 NV_05 "ITNT2"
0x10de 0x0008 NV_03 "EDGE 3D"
0x10de 0x0009 NV_03 "EDGE 3D"
0x10de 0x0010 NV_03 "Mutara V08"
0x10de 0x0020 NV_04 "RIVA TNT"
0x10de 0x0028 NV_05 "RIVA TNT2/TNT2 Pro"
0x10de 0x00a0 NV_05 "Aladdin TNT2"
0x10de 0x002c NV_05 "Vanta/Vanta LT"
0x10de 0x0029 NV_05 "RIVA TNT2 Ultra"
0x10de 0x002d NV_05 "RIVA TNT2 Model 64/Model 64 Pro"
0x10de 0x0100 NV_10 "GeForce 256"
0x10de 0x0101 NV_10 "GeForce DDR"
0x10de 0x0028 NV_04 "RIVA TNT2/TNT2 Pro"
0x10de 0x0029 NV_04 "RIVA TNT2 Ultra"
0x10de 0x002a NV_04 "Riva TnT2"
0x10de 0x002b NV_04 "Riva TnT2"
0x10de 0x002c NV_04 "Vanta/Vanta LT"
0x10de 0x002d NV_04 "RIVA TNT2 Model 64/Model 64 Pro"
0x10de 0x002e NV_04 "Vanta"
0x10de 0x002f NV_04 "Vanta"
0x10de 0x0040 NV_40 "GeForce 6800 Ultra"
0x10de 0x0041 NV_40 "GeForce 6800"
0x10de 0x0042 NV_40 "GeForce 6800 LE"
0x10de 0x0043 NV_40 "NV40.3"
0x10de 0x0044 NV_40 "GeForce 6800 XT"
0x10de 0x0045 NV_40 "GeForce 6800 GT"
0x10de 0x0046 NV_40 "GeForce 6800 GT"
0x10de 0x0047 NV_40 "GeForce 6800 GS"
0x10de 0x0048 NV_40 "GeForce 6800 XT"
0x10de 0x0049 NV_40 "NV40GL"
0x10de 0x004d NV_40 "Quadro FX 4000"
0x10de 0x004e NV_40 "Quadro FX 4000"
0x10de 0x0090 NV_40 "GeForce 7800 GTX"
0x10de 0x0091 NV_40 "GeForce 7800 GTX"
0x10de 0x0092 NV_40 "GeForce 7800 GT"
0x10de 0x0093 NV_40 "GeForce 7800 GS"
0x10de 0x0098 NV_40 "GeForce Go 7800"
0x10de 0x0099 NV_40 "GE Force Go 7800 GTX"
0x10de 0x009d NV_40 "Quadro FX4500"
0x10de 0x00a0 NV_04 "Aladdin TNT2"
0x10de 0x00c0 NV_40 "GeForce 6800 GS"
0x10de 0x00c1 NV_40 "GeForce 6800"
0x10de 0x00c2 NV_40 "GeForce 6800 LE"
0x10de 0x00c3 NV_40 "Geforce 6800 XT"
0x10de 0x00c8 NV_40 "GeForce Go 6800"
0x10de 0x00c9 NV_40 "GeForce Go 6800 Ultra"
0x10de 0x00cc NV_40 "Quadro FX Go1400"
0x10de 0x00cd NV_40 "Quadro FX 3450/4000 SDI"
0x10de 0x00ce NV_40 "Quadro FX 1400"
0x10de 0x00f0 NV_40 "GeForce 6800/GeForce 6800 Ultra"
0x10de 0x00f1 NV_40 "GeForce 6600/GeForce 6600 GT"
0x10de 0x00f2 NV_40 "GeForce 6600/GeForce 6600 GT"
0x10de 0x00f3 NV_40 "GeForce 6200"
0x10de 0x00f4 NV_40 "GeForce 6600 LE"
0x10de 0x00f5 NV_40 "GeForce 7800 GS"
0x10de 0x00f6 NV_40 "GeForce 6600 GS"
0x10de 0x00f8 NV_40 "Quadro FX 3400/4400"
0x10de 0x00f9 NV_40 "GeForce 6800 Ultra/GeForce 6800 GT"
0x10de 0x00fa NV_30 "GeForce PCX 5750"
0x10de 0x00fb NV_30 "GeForce PCX 5900"
0x10de 0x00fc NV_30 "Quadro FX 330/GeForce PCX 5300"
0x10de 0x00fd NV_30 "Quadro FX 330/Quadro NVS280"
0x10de 0x00fe NV_30 "Quadro FX 1300"
0x10de 0x00ff NV_17 "GeForce PCX 4300"
0x10de 0x0100 NV_10 "GeForce 256 SDR"
0x10de 0x0101 NV_10 "GeForce 256 DDR"
0x10de 0x0103 NV_10 "Quadro"
0x10de 0x0110 NV_10 "GeForce2 MX/MX 400"
0x10de 0x0111 NV_10 "GeForce2 MX 100/200"
0x10de 0x0113 NV_10 "Quadro2 MXR/EX/Go"
0x10de 0x01a0 NV_10|NV_NFORCE "GeForce2 Integrated GPU"
0x10de 0x0150 NV_10 "GeForce2 GTS/GeForce2 Pro"
0x10de 0x0151 NV_10 "GeForce2 Ti"
0x10de 0x0152 NV_10 "GeForce2 Ultra"
0x10de 0x0153 NV_10 "Quadro2 Pro"
0x10de 0x0170 NV_10 "GeForce4 MX 460"
0x10de 0x0171 NV_10 "GeForce4 MX 440"
0x10de 0x0172 NV_10 "GeForce4 MX 420"
0x10de 0x0173 NV_10 "GeForce4 MX 440-SE"
0x10de 0x0178 NV_10 "Quadro4 550 XGL"
0x10de 0x017a NV_10 "Quadro NVS"
0x10de 0x0181 NV_10 "GeForce4 MX 440 with AGP8X"
0x10de 0x0182 NV_10 "GeForce4 MX 440SE with AGP8X"
0x10de 0x0183 NV_10 "GeForce4 MX 420 with AGP8X"
0x10de 0x0185 NV_10 "GeForce4 MX 4000"
0x10de 0x0188 NV_10 "Quadro4 580 XGL"
0x10de 0x018a NV_10 "Quadro NVS with AGP8X"
0x10de 0x018b NV_10 "Quadro4 380 XGL"
0x10de 0x018c NV_10 "Quadro NVS 50 PCI"
0x10de 0x01f0 NV_10|NV_NFORCE2 "GeForce4 MX Integrated GPU"
0x10de 0x0110 NV_11 "GeForce2 MX/MX 400"
0x10de 0x0111 NV_11 "GeForce2 MX 100 DDR/200 DDR"
0x10de 0x0112 NV_11 "GeForce2 Go"
0x10de 0x0113 NV_11 "Quadro2 MXR/EX/Go"
0x10de 0x0140 NV_40 "GeForce 6600 GT"
0x10de 0x0141 NV_40 "GeForce 6600"
0x10de 0x0142 NV_40 "GeForce 6600 PCIe"
0x10de 0x0144 NV_40 "GeForce Go 6600"
0x10de 0x0145 NV_40 "GeForce 6610 XL"
0x10de 0x0146 NV_40 "Geforce Go 6600TE/6200TE"
0x10de 0x0148 NV_40 "GeForce Go 6600"
0x10de 0x0149 NV_40 "GeForce Go 6600 GT"
0x10de 0x014a NV_40 "Quadro NVS 440"
0x10de 0x014d NV_17 "Quadro FX 550"
0x10de 0x014e NV_40 "Quadro FX 540"
0x10de 0x014f NV_40 "GeForce 6200"
0x10de 0x0150 NV_15 "GeForce2 GTS/Pro"
0x10de 0x0151 NV_15 "GeForce2 Ti"
0x10de 0x0152 NV_15 "GeForce2 Ultra, Bladerunner"
0x10de 0x0153 NV_15 "Quadro2 Pro"
0x10de 0x0161 NV_44 "GeForce 6200 TurboCache(TM)"
0x10de 0x0162 NV_44 "GeForce 6200 SE TurboCache (TM)"
0x10de 0x0163 NV_44 "GeForce 6200 LE"
0x10de 0x0164 NV_44 "GeForce Go 6200"
0x10de 0x0165 NV_44 "Quadro NVS 285"
0x10de 0x0166 NV_44 "GeForce Go 6400"
0x10de 0x0167 NV_44 "GeForce Go 6200 TurboCache"
0x10de 0x0168 NV_44 "GeForce Go 6200 TurboCache"
0x10de 0x0170 NV_17 "GeForce4 MX 460"
0x10de 0x0171 NV_17 "GeForce4 MX 440"
0x10de 0x0172 NV_17 "GeForce4 MX 420"
0x10de 0x0173 NV_17 "GeForce4 MX 440-SE"
0x10de 0x0174 NV_17 "GeForce4 440 Go"
0x10de 0x0175 NV_17 "GeForce4 420 Go"
0x10de 0x0176 NV_17 "GeForce4 420 Go 32M"
0x10de 0x0177 NV_17 "GeForce4 460 Go"
0x10de 0x0178 NV_17 "Quadro4 550 XGL"
0x10de 0x0179 NV_17 "GeForce4 420 Go 32M"
0x10de 0x017a NV_17 "Quadro4 200/400 NVS"
0x10de 0x017b NV_17 "Quadro4 550 XGL"
0x10de 0x017c NV_17 "Quadro4 500 GoGL"
0x10de 0x017d NV_17 "GeForce4 410 Go 16M"
0x10de 0x0181 NV_17 "GeForce4 MX 440 AGP 8x"
0x10de 0x0182 NV_17 "GeForce4 MX 440SE AGP 8x"
0x10de 0x0183 NV_17 "GeForce4 MX 420 AGP 8x"
0x10de 0x0185 NV_17 "GeForce4 MX 4000 AGP 8x"
0x10de 0x0186 NV_17 "GeForce4 448 Go"
0x10de 0x0187 NV_17 "GeForce4 488 Go"
0x10de 0x0188 NV_17 "Quadro4 580 XGL"
0x10de 0x018a NV_17 "Quadro4 NVS AGP 8x"
0x10de 0x018b NV_17 "Quadro4 380 XGL"
0x10de 0x018c NV_17 "Quadro NVS 50 PCI"
0x10de 0x018d NV_17 "GeForce4 448 Go"
0x10de 0x0191 NV_50 "GeForce 8800 GTX"
0x10de 0x0193 NV_50 "GeForce 8800 GTS"
0x10de 0x01a0 NV_11|NV_NFORCE "GeForce2 MX Integrated Graphics"
0x10de 0x01d1 NV_44 "GeForce 7300 LE"
0x10de 0x01d6 NV_44 "GeForce Go 7200"
0x10de 0x01d7 NV_44 "Quadro NVS 110M / GeForce Go 7300"
0x10de 0x01d8 NV_44 "GeForce Go 7400"
0x10de 0x01da NV_44 "Quadro NVS 110M"
0x10de 0x01df NV_44 "GeForce 7300 GS"
0x10de 0x01f0 NV_17|NV_NFORCE2 "GeForce4 MX - nForce GPU"
0x10de 0x0200 NV_20 "GeForce3"
0x10de 0x0201 NV_20 "GeForce3 Ti 200"
0x10de 0x0202 NV_20 "GeForce3 Ti 500"
0x10de 0x0203 NV_20 "Quadro DCC"
0x10de 0x0250 NV_20 "GeForce4 Ti 4600"
0x10de 0x0251 NV_20 "GeForce4 Ti 4400"
0x10de 0x0252 NV_20 "NV25"
0x10de 0x0253 NV_20 "GeForce4 Ti 4200"
0x10de 0x0258 NV_20 "Quadro4 900 XGL"
0x10de 0x0259 NV_20 "Quadro4 750 XGL"
0x10de 0x025b NV_20 "Quadro4 700 XGL"
0x10de 0x0280 NV_20 "GeForce4 Ti 4800"
0x10de 0x0281 NV_20 "GeForce4 Ti 4200 with AGP8X"
0x10de 0x0282 NV_20 "GeForce4 Ti 4800 SE"
0x10de 0x0288 NV_20 "Quadro4 980 XGL"
0x10de 0x0289 NV_20 "Quadro4 780 XGL"
0x10de 0x0211 NV_40 "GeForce 6800"
0x10de 0x0212 NV_40 "GeForce 6800 LE"
0x10de 0x0215 NV_40 "GeForce 6800 GT"
0x10de 0x0218 NV_40 "GeForce 6800 XT"
0x10de 0x0221 NV_44 "GeForce 6200"
0x10de 0x0240 NV_44 "GeForce 6150"
0x10de 0x0242 NV_44 "GeForce 6100"
0x10de 0x0250 NV_25 "GeForce4 Ti 4600"
0x10de 0x0251 NV_25 "GeForce4 Ti 4400"
0x10de 0x0252 NV_25 "GeForce4 Ti"
0x10de 0x0253 NV_25 "GeForce4 Ti 4200"
0x10de 0x0258 NV_25 "Quadro4 900 XGL"
0x10de 0x0259 NV_25 "Quadro4 750 XGL"
0x10de 0x025b NV_25 "Quadro4 700 XGL"
0x10de 0x0280 NV_25 "GeForce4 Ti 4800"
0x10de 0x0281 NV_25 "GeForce4 Ti 4200 AGP 8x"
0x10de 0x0282 NV_25 "GeForce4 Ti 4800 SE"
0x10de 0x0286 NV_25 "GeForce4 Ti 4200 Go AGP 8x"
0x10de 0x0288 NV_25 "Quadro4 980 XGL"
0x10de 0x0289 NV_25 "Quadro4 780 XGL"
0x10de 0x028c NV_25 "Quadro4 700 GoGL"
0x10de 0x0290 NV_40 "GeForce 7900 GTX"
0x10de 0x0291 NV_40 "GeForce 7900 GT"
0x10de 0x0292 NV_40 "GeForce 7900 GS"
0x10de 0x0298 NV_40 "GeForce Go 7900 GS"
0x10de 0x0299 NV_40 "GeForce Go 7900 GTX"
0x10de 0x029a NV_40 "Quadro FX 2500M"
0x10de 0x029b NV_40 "Quadro FX 1500M"
0x10de 0x029c NV_40 "Quadro FX 5500"
0x10de 0x029d NV_40 "Quadro FX 3500"
0x10de 0x029e NV_40 "Quadro FX 1500"
0x10de 0x029f NV_40 "Quadro FX 4500 X2"
0x10de 0x02a0 NV_20 "XGPU"
0x10de 0x02e1 NV_40 "GeForce 7600 GS"
0x10de 0x0300 NV_30 "GeForce FX"
0x10de 0x0301 NV_30 "GeForce FX 5800 Ultra"
0x10de 0x0302 NV_30 "GeForce FX 5800"
0x10de 0x0308 NV_30 "Quadro FX 2000"
@ -529,15 +633,28 @@
0x10de 0x0312 NV_30 "GeForce FX 5600"
0x10de 0x0313 NV_30 "NV31"
0x10de 0x0314 NV_30 "GeForce FX 5600XT"
0x10de 0x0320 NV_30 "GeForce FX 5200"
0x10de 0x0321 NV_30 "GeForce FX 5200 Ultra"
0x10de 0x0322 NV_30 "GeForce FX 5200"
0x10de 0x0323 NV_30 "GeForce FX 5200LE"
0x10de 0x0326 NV_30 "GeForce FX 5500"
0x10de 0x0327 NV_30 "GeForce FX 5100"
0x10de 0x032a NV_30 "Quadro NVS 280 PCI"
0x10de 0x032b NV_30 "Quadro FX 500/FX 600"
0x10de 0x032f NV_30 "NV34GL"
0x10de 0x0316 NV_30 "NV31M"
0x10de 0x0317 NV_30 "NV31M Pro"
0x10de 0x031a NV_30 "GeForce FX Go5600"
0x10de 0x031b NV_30 "GeForce FX Go5650"
0x10de 0x031d NV_30 "NV31GLM"
0x10de 0x031e NV_30 "NV31GLM Pro"
0x10de 0x031f NV_30 "NV31GLM Pro"
0x10de 0x0320 NV_34 "GeForce FX 5200"
0x10de 0x0321 NV_34 "GeForce FX 5200 Ultra"
0x10de 0x0322 NV_34 "GeForce FX 5200"
0x10de 0x0323 NV_34 "GeForce FX 5200LE"
0x10de 0x0324 NV_34 "GeForce FX Go5200"
0x10de 0x0325 NV_34 "GeForce FX Go5250"
0x10de 0x0326 NV_34 "GeForce FX 5500"
0x10de 0x0327 NV_34 "GeForce FX 5100"
0x10de 0x0328 NV_34 "GeForce FX Go5200 32M/64M"
0x10de 0x0329 NV_34 "GeForce FX Go5200"
0x10de 0x032a NV_34 "Quadro NVS 280 PCI"
0x10de 0x032b NV_34 "Quadro FX 500/600 PCI"
0x10de 0x032c NV_34 "GeForce FX Go 5300"
0x10de 0x032d NV_34 "GeForce FX Go5100"
0x10de 0x032f NV_34 "NV34GL"
0x10de 0x0330 NV_30 "GeForce FX 5900 Ultra"
0x10de 0x0331 NV_30 "GeForce FX 5900"
0x10de 0x0332 NV_30 "GeForce FX 5900XT"
@ -549,125 +666,29 @@
0x10de 0x0342 NV_30 "GeForce FX 5700"
0x10de 0x0343 NV_30 "GeForce FX 5700LE"
0x10de 0x0344 NV_30 "GeForce FX 5700VE"
0x10de 0x0345 NV_30 "NV36"
0x10de 0x034e NV_30 "Quadro FX 1100"
0x10de 0x034f NV_30 "NV36GL"
0x10de 0x0040 NV_40 "GeForce 6800 Ultra"
0x10de 0x0041 NV_40 "GeForce 6800"
0x10de 0x0042 NV_40 "GeForce 6800 LE"
0x10de 0x0043 NV_40 "NV40"
0x10de 0x0045 NV_40 "GeForce 6800 GT"
0x10de 0x0049 NV_40 "NV40GL"
0x10de 0x004e NV_40 "Quadro FX 4000"
0x10de 0x00c0 NV_40 "NV41"
0x10de 0x00c1 NV_40 "GeForce 6800"
0x10de 0x00c2 NV_40 "GeForce 6800 LE"
0x10de 0x00cc NV_40 "Quadro FX Go1400"
0x10de 0x00cd NV_40 "Quadro FX 3450/4000 SDI"
0x10de 0x00ce NV_40 "Quadro FX 1400"
0x10de 0x0140 NV_40 "GeForce 6600 GT"
0x10de 0x0141 NV_40 "GeForce 6600"
0x10de 0x0142 NV_40 "NV43"
0x10de 0x0143 NV_40 "NV43"
0x10de 0x0145 NV_40 "GeForce 6610 XL"
0x10de 0x014b NV_40 "NV43"
0x10de 0x014c NV_40 "NV43GL"
0x10de 0x014d NV_40 "NV43GL"
0x10de 0x014e NV_40 "Quadro FX 540"
0x10de 0x014f NV_40 "GeForce 6200"
0x10de 0x0160 NV_40 "NV44"
0x10de 0x0161 NV_40 "GeForce 6200 TurboCache(TM)"
0x10de 0x0162 NV_40 "NV44"
0x10de 0x0163 NV_40 "NV44"
0x10de 0x0165 NV_40 "Quadro NVS 285"
0x10de 0x016e NV_40 "NV44GL"
0x10de 0x0220 NV_40 "NV44"
0x10de 0x0221 NV_40 "NV44"
0x10de 0x0222 NV_40 "NV44"
0x10de 0x0211 NV_40 "GeForce 6800"
0x10de 0x0212 NV_40 "GeForce 6800 LE"
0x10de 0x0215 NV_40 "GeForce 6800 GT"
0x10de 0x00f0 NV_40 "GeForce 6800 Ultra"
0x10de 0x00f0 NV_40 "GeForce 6800"
0x10de 0x00f1 NV_40 "GeForce 6600 GT"
0x10de 0x00f1 NV_40 "GeForce 6600 GT"
0x10de 0x00f2 NV_40 "GeForce 6600"
0x10de 0x00f2 NV_40 "GeForce 6600"
0x10de 0x00f3 NV_40 "GeForce 6200"
0x10de 0x00f3 NV_40 "GeForce 6200"
0x10de 0x00f8 NV_30 "Quadro FX 4400"
0x10de 0x00f8 NV_30 "Quadro FX 3400"
0x10de 0x00f8 NV_30 "Quadro FX 3400/4400"
0x10de 0x00f9 NV_40 "GeForce 6800 Ultra"
0x10de 0x00f9 NV_40 "GeForce 6800 GT"
0x10de 0x00f9 NV_40 "GeForce 6800 Series GPU"
0x10de 0x0091 G_70 "GeForce 7800 GTX"
0x10de 0x00fa NV_30 "GeForce PCX 5750"
0x10de 0x00fa NV_30 "GeForce PCX 5750"
0x10de 0x00fb NV_30 "GeForce PCX 5900"
0x10de 0x00fb NV_30 "GeForce PCX 5900"
0x10de 0x00fc NV_30 "GeForce PCX 5300"
0x10de 0x00fc NV_30 "Quadro FX 330"
0x10de 0x00fc NV_30 "GeForce PCX 5300"
0x10de 0x00fd NV_30 "Quadro NVS 280 PCI-E"
0x10de 0x00fd NV_30 "Quadro FX 330"
0x10de 0x00fd NV_10 "Quadro PCI-E Series"
0x10de 0x00fe NV_30 "Quadro FX 1300"
0x10de 0x00fe NV_30 "Quadro FX 1300"
0x10de 0x00ff NV_10 "GeForce PCX 4300"
0x10de 0x00ff NV_10 "GeForce PCX 4300"
0x10de 0x0112 NV_10 "GeForce2 Go"
0x10de 0x0174 NV_20 "GeForce4 440 Go"
0x10de 0x0175 NV_20 "GeForce4 420 Go"
0x10de 0x0176 NV_20 "GeForce4 420 Go 32M"
0x10de 0x0177 NV_20 "GeForce4 460 Go"
0x10de 0x0179 NV_20 "GeForce4 440 Go 64M"
0x10de 0x017d NV_20 "GeForce4 410 Go 16M"
0x10de 0x017c NV_20 "Quadro4 500 GoGL"
0x10de 0x0186 NV_20 "GeForce4 448 Go"
0x10de 0x0187 NV_20 "GeForce4 488 Go"
0x10de 0x018d NV_20 "GeForce4 448 Go"
0x10de 0x0286 NV_20 "GeForce4 4200 Go"
0x10de 0x028c NV_20 "Quadro4 700 GoGL"
0x10de 0x0316 NV_30 "NV31M"
0x10de 0x0317 NV_30 "NV31M Pro"
0x10de 0x031a NV_30 "GeForce FX Go5600"
0x10de 0x031b NV_30 "GeForce FX Go5650"
0x10de 0x031c NV_30 "Quadro FX Go700"
0x10de 0x031d NV_30 "NV31GLM"
0x10de 0x031e NV_30 "NV31GLM Pro"
0x10de 0x031f NV_30 "NV31GLM Pro"
0x10de 0x0324 NV_30 "GeForce FX Go5200"
0x10de 0x0325 NV_30 "GeForce FX Go5250"
0x10de 0x0328 NV_30 "GeForce FX Go5200 32M/64M"
0x10de 0x0329 NV_30 "NV34MAP"
0x10de 0x032c NV_30 "GeForce FX Go53xx"
0x10de 0x032d NV_30 "GeForce FX Go5100"
0x10de 0x0345 NV_30 "NV36.5"
0x10de 0x0347 NV_30 "GeForce FX Go5700"
0x10de 0x0348 NV_30 "GeForce FX Go5700"
0x10de 0x0349 NV_30 "NV36M Pro"
0x10de 0x034b NV_30 "NV36MAP"
0x10de 0x034c NV_30 "Quadro FX Go1000"
0x10de 0x00c8 NV_30 "GeForce Go 6800"
0x10de 0x00c9 NV_30 "GeForce Go 6800 Ultra"
0x10de 0x00cc NV_30 "Quadro FX Go1400"
0x10de 0x0140 NV_40 "NV43"
0x10de 0x0144 NV_40 "GeForce Go 6600"
0x10de 0x0147 NV_40 "NV43"
0x10de 0x0148 NV_40 "GeForce Go 6600"
0x10de 0x0149 NV_40 "NV43"
0x10de 0x014c NV_40 "NV43GL"
0x10de 0x0164 NV_40 "GeForce Go 6200"
0x10de 0x0167 NV_40 "GeForce Go 6200"
0x10de 0x0169 NV_40 "NV44M"
0x10de 0x016b NV_40 "NV44GLM"
0x10de 0x016c NV_40 "NV44GLM"
0x10de 0x016d NV_40 "NV44GLM"
0x10de 0x0228 NV_40 "NV44M"
0x10de 0x0091 G_70 "NVIDIA GeForce 7800 GTX"
0x10de 0x0092 G_70 "NVIDIA GeForce 7800 GT"
0x10de 0x009d G_70 "NVIDIA Quadro FX 4500"
0x10de 0x0240 NV_40 "NVIDIA GeForce 6150"
0x10de 0x0241 NV_40 "NVIDIA GeForce 6150 LE"
0x10de 0x0242 NV_40 "NVIDIA GeForce 6100"
0x10de 0x0244 NV_40 "NVIDIA GeForce 6150 Go"
0x10de 0x034e NV_30 "Quadro FX 1100"
0x10de 0x034f NV_30 "NV36GL"
0x10de 0x0391 NV_40 "GeForce 7600 GT"
0x10de 0x0392 NV_40 "GeForce 7600 GS"
0x10de 0x0393 NV_40 "GeForce 7300 GT"
0x10de 0x0398 NV_40 "GeForce Go 7600"
0x10de 0x03d0 NV_44 "GeForce 6100 nForce 430"
0x10de 0x03d1 NV_44 "GeForce 6100 nForce 405"
0x10de 0x03d2 NV_44 "GeForce 6100 nForce 400"
0x10de 0x03d5 NV_44 "GeForce 6100 nForce 420"
0x12d2 0x0008 NV_03 "NV1"
0x12d2 0x0009 NV_03 "DAC64"
0x12d2 0x0018 NV_03 "Riva128"
0x12d2 0x0019 NV_03 "Riva128ZX"
0x12d2 0x0020 NV_04 "TNT"
0x12d2 0x0028 NV_04 "TNT2"
0x12d2 0x0029 NV_04 "UTNT2"
0x12d2 0x002c NV_04 "VTNT2"
0x12d2 0x00a0 NV_04 "ITNT2"

View File

@ -86,12 +86,14 @@ typedef struct drm_nouveau_mem_free {
drm_nouveau_mem_free_t;
/* FIXME : maybe unify {GET,SET}PARAMs */
#define NOUVEAU_GETPARAM_PCI_VENDOR 3
#define NOUVEAU_GETPARAM_PCI_DEVICE 4
#define NOUVEAU_GETPARAM_BUS_TYPE 5
#define NOUVEAU_GETPARAM_PCI_VENDOR 3
#define NOUVEAU_GETPARAM_PCI_DEVICE 4
#define NOUVEAU_GETPARAM_BUS_TYPE 5
#define NOUVEAU_GETPARAM_FB_PHYSICAL 6
#define NOUVEAU_GETPARAM_AGP_PHYSICAL 7
typedef struct drm_nouveau_getparam {
unsigned int param;
unsigned int value;
uint64_t value;
}
drm_nouveau_getparam_t;
@ -110,10 +112,16 @@ enum nouveau_card_type {
NV_04 =4,
NV_05 =5,
NV_10 =10,
NV_11 =10,
NV_15 =10,
NV_17 =10,
NV_20 =20,
NV_25 =20,
NV_30 =30,
NV_34 =30,
NV_40 =40,
G_70 =50,
NV_44 =44,
NV_50 =50,
NV_LAST =0xffff,
};

View File

@ -32,9 +32,9 @@
#define DRIVER_DESC "nVidia Riva/TNT/GeForce"
#define DRIVER_DATE "20060213"
#define DRIVER_MAJOR 1
#define DRIVER_MAJOR 0
#define DRIVER_MINOR 0
#define DRIVER_PATCHLEVEL 0
#define DRIVER_PATCHLEVEL 1
#define NOUVEAU_FAMILY 0x0000FFFF
#define NOUVEAU_FLAGS 0xFFFF0000
@ -122,6 +122,10 @@ typedef struct drm_nouveau_private {
uint32_t ramro_offset;
uint32_t ramro_size;
/* base physical adresses */
uint64_t fb_phys;
uint64_t agp_phys;
struct mem_block *agp_heap;
struct mem_block *fb_heap;
struct mem_block *fb_nomap_heap;

View File

@ -106,19 +106,34 @@ static int nouveau_fifo_instmem_configure(drm_device_t *dev)
* cards. RAMFC is 4kb (32 fifos, 128byte entries).
* Others: Position RAMFC at RAMIN+0x11400
*/
if (dev_priv->card_type >= NV_40) {
dev_priv->ramfc_offset = 0x20000;
dev_priv->ramfc_size = nouveau_fifo_number(dev) * 128;
NV_WRITE(NV40_PFIFO_RAMFC, 0x30002);
} else if (dev_priv->card_type >= NV_10) {
dev_priv->ramfc_offset = 0x11400;
dev_priv->ramfc_size = nouveau_fifo_number(dev) * 64;
NV_WRITE(NV_PFIFO_RAMFC, (dev_priv->ramfc_offset>>8) |
(1 << 16) /* 64 Bytes entry*/);
} else {
dev_priv->ramfc_offset = 0x11400;
dev_priv->ramfc_size = nouveau_fifo_number(dev) * 32;
NV_WRITE(NV_PFIFO_RAMFC, dev_priv->ramfc_offset>>8);
switch(dev_priv->card_type)
{
case NV_50:
case NV_40:
dev_priv->ramfc_offset = 0x20000;
dev_priv->ramfc_size = nouveau_fifo_number(dev) * nouveau_fifo_ctx_size(dev);
NV_WRITE(NV40_PFIFO_RAMFC, 0x30002);
break;
case NV_44:
dev_priv->ramfc_offset = 0x20000;
dev_priv->ramfc_size = nouveau_fifo_number(dev) * nouveau_fifo_ctx_size(dev);
NV_WRITE(NV40_PFIFO_RAMFC, ((nouveau_mem_fb_amount(dev)-512*1024+dev_priv->ramfc_offset)>>16) |
(2 << 16));
break;
case NV_30:
case NV_20:
case NV_10:
dev_priv->ramfc_offset = 0x11400;
dev_priv->ramfc_size = nouveau_fifo_number(dev) * nouveau_fifo_ctx_size(dev);
NV_WRITE(NV_PFIFO_RAMFC, (dev_priv->ramfc_offset>>8) |
(1 << 16) /* 64 Bytes entry*/);
break;
case NV_04:
case NV_03:
dev_priv->ramfc_offset = 0x11400;
dev_priv->ramfc_size = nouveau_fifo_number(dev) * nouveau_fifo_ctx_size(dev);
NV_WRITE(NV_PFIFO_RAMFC, dev_priv->ramfc_offset>>8);
break;
}
DRM_DEBUG("RAMFC offset=0x%x, size=%d\n",
dev_priv->ramfc_offset,

View File

@ -253,7 +253,8 @@ uint64_t nouveau_mem_fb_amount(struct drm_device *dev)
case NV_20:
case NV_30:
case NV_40:
case G_70:
case NV_44:
case NV_50:
default:
// XXX won't work on BSD because of pci_read_config_dword
if (dev_priv->flags&NV_NFORCE) {
@ -281,6 +282,8 @@ uint64_t nouveau_mem_fb_amount(struct drm_device *dev)
int nouveau_mem_init(struct drm_device *dev)
{
drm_nouveau_private_t *dev_priv = dev->dev_private;
dev_priv->agp_phys=0;
dev_priv->fb_phys=0;
/* init AGP */
dev_priv->agp_heap=NULL;
@ -330,10 +333,13 @@ int nouveau_mem_init(struct drm_device *dev)
if (init_heap(&dev_priv->agp_heap, info.aperture_base, info.aperture_size))
goto no_agp;
dev_priv->agp_phys=info.aperture_base;
}
no_agp:
/* Init FB */
dev_priv->fb_phys=drm_get_resource_start(dev,1);
if (nouveau_mem_fb_amount(dev)>256*1024*1024) {
/* On cards with > 256Mb, you can't map everything.
* So we create a second FB heap for that type of memory */
@ -473,7 +479,7 @@ struct mem_block *nouveau_instmem_alloc(struct drm_device *dev,
if (block) {
block->flags = NOUVEAU_MEM_INSTANCE;
DRM_DEBUG("instance(size=%d, align=%d) alloc'd at 0x%08x\n",
size, (1<<align), block->start);
size, (1<<align), (uint32_t)block->start);
}
return block;
@ -508,11 +514,9 @@ int nouveau_ioctl_mem_alloc(DRM_IOCTL_ARGS)
block=nouveau_mem_alloc(dev, alloc.alignment, alloc.size, alloc.flags, filp);
if (!block)
return DRM_ERR(ENOMEM);
alloc.region_offset=block->start;
if (DRM_COPY_TO_USER(alloc.region_offset, &block->start, sizeof(uint64_t))) {
DRM_ERROR("copy_to_user\n");
return DRM_ERR(EFAULT);
}
DRM_COPY_TO_USER_IOCTL((drm_nouveau_mem_alloc_t __user *) data, alloc, sizeof(alloc));
return 0;
}

View File

@ -117,6 +117,7 @@ int nouveau_unload(struct drm_device *dev)
int nouveau_ioctl_getparam(DRM_IOCTL_ARGS)
{
DRM_DEVICE;
drm_nouveau_private_t *dev_priv = dev->dev_private;
drm_nouveau_getparam_t getparam;
DRM_COPY_FROM_USER_IOCTL(getparam, (drm_nouveau_getparam_t __user *)data,
@ -137,6 +138,12 @@ int nouveau_ioctl_getparam(DRM_IOCTL_ARGS)
else
getparam.value=NV_PCI;
break;
case NOUVEAU_GETPARAM_FB_PHYSICAL:
getparam.value=dev_priv->fb_phys;
break;
case NOUVEAU_GETPARAM_AGP_PHYSICAL:
getparam.value=dev_priv->agp_phys;
break;
default:
DRM_ERROR("unknown parameter %d\n", getparam.param);
return DRM_ERR(EINVAL);