From lxv@mix.nest.org Mon Sep 20 02:27:50 1999 Return-Path: Received: from mix.nest.org (gw.alexv.meer.net [209.157.136.97]) by hub.freebsd.org (Postfix) with ESMTP id 44F7914F74 for ; Mon, 20 Sep 1999 02:27:45 -0700 (PDT) (envelope-from lxv@mix.nest.org) Received: (from lxv@localhost) by mix.nest.org (8.9.3/8.9.3) id CAA37790; Mon, 20 Sep 1999 02:27:17 -0700 (PDT) (envelope-from lxv) Message-Id: <199909200927.CAA37790@mix.nest.org> Date: Mon, 20 Sep 1999 02:27:17 -0700 (PDT) From: lxv@nest.org Sender: lxv@mix.nest.org Reply-To: lxv@nest.org To: FreeBSD-gnats-submit@freebsd.org Subject: detect more VGA cards X-Send-Pr-Version: 3.2 >Number: 13850 >Category: kern >Synopsis: detect more VGA cards >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: closed >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Sep 20 02:30:01 PDT 1999 >Closed-Date: Thu Jan 27 04:07:03 PST 2000 >Last-Modified: Thu Jan 27 04:08:01 PST 2000 >Originator: Alex Vasylenko >Release: FreeBSD 3.3-RC i386 >Organization: >Environment: $FreeBSD: src/sys/pci/pcisupport.c,v 1.127 1999/08/29 15:11:22 >Description: detection code for more vga cards (port from xfree 3.3.5) >How-To-Repeat: install new VGA card, reboot :) >Fix: *** pcisupport.c.orig Sun Aug 29 15:11:22 1999 --- pcisupport.c Mon Sep 20 01:57:18 1999 *************** static const char* vga_match(device_t de *** 1221,1231 **** --- 1221,1248 ---- vendor = chip = type = 0; switch (id & 0xffff) { + case 0x003d: + vendor = "Real 3D"; + switch (id >> 16) { + case 0x00d1: + chip = "i740"; break; + } + break; case 0x10c8: vendor = "NeoMagic"; switch (id >> 16) { + case 0x0001: + chip = "NM2070"; break; + case 0x0002: + chip = "NM2090"; break; + case 0x0003: + chip = "NM2093"; break; + case 0x0083: + chip = "NM2097"; break; case 0x0004: chip = "NM2160 laptop"; break; + case 0x0005: + chip = "NM2200"; break; } break; case 0x121a: *************** static const char* vga_match(device_t de *** 1250,1266 **** chip = "MGA 1024SG/1064SG/1164SG"; break; case 0x051b: chip = "MGA 2164W"; break; } break; - case 0x1002: vendor = "ATI"; type = "graphics accelerator"; switch (id >> 16) { case 0x4158: chip = "Mach32"; break; ! case 0x4758: ! chip = "Mach64-GX"; break; case 0x4358: chip = "Mach64-CX"; break; case 0x4354: --- 1267,1300 ---- chip = "MGA 1024SG/1064SG/1164SG"; break; case 0x051b: chip = "MGA 2164W"; break; + case 0x051f: + chip = "MGA 2164W AGP"; break; + case 0x1000: + chip = "MGA G100"; break; + case 0x1001: + chip = "MGA G100 AGP"; break; + case 0x0520: + chip = "MGA G200"; break; + case 0x0521: + chip = "MGA G200 AGP"; break; + case 0x0525: + chip = "MGA G400 AGP"; break; } break; case 0x1002: vendor = "ATI"; type = "graphics accelerator"; switch (id >> 16) { case 0x4158: chip = "Mach32"; break; ! case 0x5245: ! chip = "Rage128-RE"; break; ! case 0x5246: ! chip = "Rage128-RF"; break; ! case 0x524b: ! chip = "Rage128-RK"; break; ! case 0x524c: ! chip = "Rage128-RL"; break; case 0x4358: chip = "Mach64-CX"; break; case 0x4354: *************** static const char* vga_match(device_t de *** 1271,1276 **** --- 1305,1354 ---- chip = "Mach64-VT"; break; case 0x4754: chip = "Mach64-GT"; break; + case 0x4742: + chip = "Mach64-GB"; break; + case 0x4744: + chip = "Mach64-GD"; break; + case 0x4749: + chip = "Mach64-GI"; break; + case 0x474d: + chip = "Mach64-GM"; break; + case 0x474e: + chip = "Mach64-GN"; break; + case 0x474f: + chip = "Mach64-GO"; break; + case 0x4750: + chip = "Mach64-GP"; break; + case 0x4751: + chip = "Mach64-GQ"; break; + case 0x4752: + chip = "Mach64-GR"; break; + case 0x4753: + chip = "Mach64-GS"; break; + case 0x4755: + chip = "Mach64-GU"; break; + case 0x4756: + chip = "Mach64-GV"; break; + case 0x4757: + chip = "Mach64-GW"; break; + case 0x4758: + chip = "Mach64-GX"; break; + case 0x475a: + chip = "Mach64-GZ"; break; + case 0x4c42: + chip = "Mach64-LB"; break; + case 0x4c44: + chip = "Mach64-LD"; break; + case 0x4c47: + chip = "Mach64-LG"; break; + case 0x4c49: + chip = "Mach64-LI"; break; + case 0x4c50: + chip = "Mach64-LP"; break; + case 0x5655: + chip = "Mach64-VU"; break; + case 0x5656: + chip = "Mach64-VV"; break; } break; case 0x1005: *************** static const char* vga_match(device_t de *** 1290,1296 **** case 0x3207: chip = "ET4000 W32P"; break; case 0x3208: ! chip = "ET6000"; break; case 0x4702: chip = "ET6300"; break; } --- 1368,1374 ---- case 0x3207: chip = "ET4000 W32P"; break; case 0x3208: ! chip = "ET6000/6100"; break; case 0x4702: chip = "ET6300"; break; } *************** static const char* vga_match(device_t de *** 1310,1315 **** --- 1388,1397 ---- switch (id >> 16) { case 0x0038: chip = "GD7548"; break; + case 0x0040: + chip = "GD7555"; break; + case 0x004c: + chip = "GD7556"; break; case 0x00a0: chip = "GD5430"; break; case 0x00a4: *************** static const char* vga_match(device_t de *** 1319,1328 **** --- 1401,1415 ---- chip = "GD5436"; break; case 0x00b8: chip = "GD5446"; break; + case 0x00bc: + chip = "GD5480"; break; case 0x00d0: chip = "GD5462"; break; case 0x00d4: + case 0x00d5: chip = "GD5464"; break; + case 0x00d6: + chip = "GD5465"; break; case 0x1200: chip = "GD7542"; break; case 0x1202: *************** static const char* vga_match(device_t de *** 1333,1343 **** break; case 0x1023: vendor = "Trident"; ! break; /* let default deal with it */ case 0x102c: vendor = "Chips & Technologies"; ! if ((id >> 16) == 0x00d8) ! chip = "65545"; break; case 0x1033: vendor = "NEC"; --- 1420,1444 ---- break; case 0x1023: vendor = "Trident"; ! break; /* let default deal with it, (id>>16) == model */ case 0x102c: vendor = "Chips & Technologies"; ! switch (id >> 16) { ! case 0x00d8: ! chip = "65545"; break; ! case 0x00dc: ! chip = "65548"; break; ! case 0x00e0: ! chip = "65550"; break; ! case 0x00e4: ! chip = "65554"; break; ! case 0x00e5: ! chip = "65555"; break; ! case 0x00f4: ! chip = "68554"; break; ! case 0x00c0: ! chip = "69000"; break; ! } break; case 0x1033: vendor = "NEC"; *************** static const char* vga_match(device_t de *** 1356,1361 **** --- 1457,1472 ---- chip = "86c202"; break; case 0x0205: chip = "86c205"; break; + case 0x0215: + chip = "86c215"; break; + case 0x0225: + chip = "86c225"; break; + case 0x0200: + chip = "5597/98"; break; + case 0x6326: + chip = "6326"; break; + case 0x6306: + chip = "530/620"; break; } break; case 0x105d: *************** static const char* vga_match(device_t de *** 1363,1370 **** type = "graphics accelerator"; switch (id >> 16) { case 0x2309: - case 0x2339: chip = "Imagine 128"; break; } break; case 0x1142: --- 1474,1482 ---- type = "graphics accelerator"; switch (id >> 16) { case 0x2309: chip = "Imagine 128"; break; + case 0x2339: + chip = "Imagine 128 II"; break; } break; case 0x1142: *************** static const char* vga_match(device_t de *** 1381,1387 **** case 0x1236: vendor = "Sigma Designs"; if ((id >> 16) == 0x6401) ! chip = "64GX"; break; case 0x5333: vendor = "S3"; --- 1493,1499 ---- case 0x1236: vendor = "Sigma Designs"; if ((id >> 16) == 0x6401) ! chip = "REALmagic64/GX"; break; case 0x5333: vendor = "S3"; *************** static const char* vga_match(device_t de *** 1392,1401 **** case 0x8812: chip = "Aurora 64"; break; case 0x8814: case 0x8901: ! chip = "Trio 64"; break; case 0x8902: chip = "Plato"; break; case 0x8880: chip = "868"; break; case 0x88b0: --- 1504,1516 ---- case 0x8812: chip = "Aurora 64"; break; case 0x8814: + chip = "Trio64UV+"; break; case 0x8901: ! chip = "Trio64V2/DX/GX"; break; case 0x8902: chip = "Plato"; break; + case 0x8904: + chip = "Trio3D"; break; case 0x8880: chip = "868"; break; case 0x88b0: *************** static const char* vga_match(device_t de *** 1414,1419 **** --- 1529,1547 ---- chip = "ViRGE VX"; break; case 0x8a01: chip = "ViRGE DX/GX"; break; + case 0x8a10: + chip = "ViRGE GX2"; break; + case 0x8a13: + chip = "Trio3D/2X"; break; + case 0x8a20: + case 0x8a21: + chip = "Savage3D"; break; + case 0x8a22: + chip = "Savage 4"; break; + case 0x8c01: + chip = "ViRGE MX"; break; + case 0x8c03: + chip = "ViRGE MX+"; break; } break; case 0xedd8: *************** static const char* vga_match(device_t de *** 1447,1464 **** vendor = "NVidia"; type = "graphics accelerator"; switch (id >> 16) { case 0x0020: ! chip = "Riva TNT"; break; case 0x0028: chip = "Riva TNT2"; break; } break; case 0x12d2: ! vendor = "NVidia"; type = "graphics accelerator"; switch (id >> 16) { case 0x0018: ! chip = "Riva128"; break; } break; } --- 1575,1632 ---- vendor = "NVidia"; type = "graphics accelerator"; switch (id >> 16) { + case 0x0008: + chip = "NV1"; break; case 0x0020: ! chip = "Riva TNT"; break; case 0x0028: chip = "Riva TNT2"; break; + case 0x0029: + chip = "Riva Ultra TNT2"; break; + case 0x002c: + chip = "Riva Vanta TNT2"; break; + case 0x002d: + chip = "Riva Ultra Vanta TNT2"; break; + case 0x00a0: + chip = "Riva Integrated TNT2"; break; } break; case 0x12d2: ! vendor = "NVidia/SGS-Thomson"; type = "graphics accelerator"; switch (id >> 16) { case 0x0018: ! chip = "Riva128"; break; ! } ! break; ! case 0x1163: ! vendor = "Rendition"; ! switch (id >> 16) { ! case 0x0001: ! chip = "Verite 1000"; break; ! case 0x2000: ! chip = "Verite 2x00"; break; ! } ! break; ! case 0x104a: ! vendor = "SGS-Thomson"; ! switch (id >> 16) { ! case 0x0008: ! chip = "STG2000"; break; ! } ! break; ! case 0x8086: ! vendor = "Intel"; ! if ((id >> 16) == 0x7800) ! chip = "i740 AGP"; ! break; ! case 0x10ea: ! vendor = "Intergraphics"; ! switch (id >> 16) { ! case 0x1680: ! chip = "IGA-1680"; break; ! case 0x1682: ! chip = "IGA-1682"; break; } break; } >Release-Note: >Audit-Trail: From: "Danny J. Zerkel" To: freebsd-gnats-submit@freebsd.org, lxv@nest.org Cc: Subject: Re: kern/13850: detect more VGA cards Date: Sun, 07 Nov 1999 12:48:05 -0500 Looks good to me: vga-pci0: irq 16 at device 0.0 on pci1 -- Danny J. Zerkel dzerkel@columbus.rr.com State-Changed-From-To: open->closed State-Changed-By: yokota State-Changed-When: Thu Jan 27 04:07:03 PST 2000 State-Changed-Why: Committed to pcisupport.c rev 1.148. >Unformatted: