summaryrefslogtreecommitdiff
path: root/shared-core
diff options
context:
space:
mode:
Diffstat (limited to 'shared-core')
-rw-r--r--shared-core/drm_pciids.txt371
-rw-r--r--shared-core/nouveau_drm.h18
-rw-r--r--shared-core/nouveau_drv.h8
-rw-r--r--shared-core/nouveau_fifo.c41
-rw-r--r--shared-core/nouveau_mem.c16
-rw-r--r--shared-core/nouveau_state.c7
6 files changed, 260 insertions, 201 deletions
diff --git a/shared-core/drm_pciids.txt b/shared-core/drm_pciids.txt
index f1d8731e..b6dfe400 100644
--- a/shared-core/drm_pciids.txt
+++ b/shared-core/drm_pciids.txt
@@ -464,210 +464,231 @@
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 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 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 0x0301 NV_30 "GeForce FX 5800 Ultra"
-0x10de 0x0302 NV_30 "GeForce FX 5800"
-0x10de 0x0308 NV_30 "Quadro FX 2000"
-0x10de 0x0309 NV_30 "Quadro FX 1000"
-0x10de 0x0311 NV_30 "GeForce FX 5600 Ultra"
-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 0x0330 NV_30 "GeForce FX 5900 Ultra"
-0x10de 0x0331 NV_30 "GeForce FX 5900"
-0x10de 0x0332 NV_30 "GeForce FX 5900XT"
-0x10de 0x0333 NV_30 "GeForce FX 5950 Ultra"
-0x10de 0x0334 NV_30 "GeForce FX 5900ZT"
-0x10de 0x0338 NV_30 "Quadro FX 3000"
-0x10de 0x033f NV_30 "Quadro FX 700"
-0x10de 0x0341 NV_30 "GeForce FX 5700 Ultra"
-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 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"
+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 0x00c0 NV_40 "NV41"
+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_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 "NV43"
-0x10de 0x0143 NV_40 "NV43"
+0x10de 0x0142 NV_40 "GeForce 6600 PCIe"
+0x10de 0x0144 NV_40 "GeForce Go 6600"
0x10de 0x0145 NV_40 "GeForce 6610 XL"
-0x10de 0x014b NV_40 "NV43"
-0x10de 0x014c NV_40 "NV43GL"
-0x10de 0x014d NV_40 "NV43GL"
+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 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 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 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 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"
+0x10de 0x0309 NV_30 "Quadro FX 1000"
+0x10de 0x0311 NV_30 "GeForce FX 5600 Ultra"
+0x10de 0x0312 NV_30 "GeForce FX 5600"
+0x10de 0x0313 NV_30 "NV31"
+0x10de 0x0314 NV_30 "GeForce FX 5600XT"
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 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"
+0x10de 0x0333 NV_30 "GeForce FX 5950 Ultra"
+0x10de 0x0334 NV_30 "GeForce FX 5900ZT"
+0x10de 0x0338 NV_30 "Quadro FX 3000"
+0x10de 0x033f NV_30 "Quadro FX 700"
+0x10de 0x0341 NV_30 "GeForce FX 5700 Ultra"
+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.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"
+
diff --git a/shared-core/nouveau_drm.h b/shared-core/nouveau_drm.h
index 2874d36a..3f363192 100644
--- a/shared-core/nouveau_drm.h
+++ b/shared-core/nouveau_drm.h
@@ -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,
};
diff --git a/shared-core/nouveau_drv.h b/shared-core/nouveau_drv.h
index be8f4cf4..4dff0c59 100644
--- a/shared-core/nouveau_drv.h
+++ b/shared-core/nouveau_drv.h
@@ -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;
diff --git a/shared-core/nouveau_fifo.c b/shared-core/nouveau_fifo.c
index 94762139..67c790b4 100644
--- a/shared-core/nouveau_fifo.c
+++ b/shared-core/nouveau_fifo.c
@@ -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,
diff --git a/shared-core/nouveau_mem.c b/shared-core/nouveau_mem.c
index 93b9c869..82221c8f 100644
--- a/shared-core/nouveau_mem.c
+++ b/shared-core/nouveau_mem.c
@@ -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;
}
diff --git a/shared-core/nouveau_state.c b/shared-core/nouveau_state.c
index b2934b43..914d1453 100644
--- a/shared-core/nouveau_state.c
+++ b/shared-core/nouveau_state.c
@@ -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);