Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Sep 1999 02:27:17 -0700 (PDT)
From:      lxv@nest.org
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/13850: detect more VGA cards
Message-ID:  <199909200927.CAA37790@mix.nest.org>

next in thread | raw e-mail | index | archive | help

>Number:         13850
>Category:       kern
>Synopsis:       detect more VGA cards
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Sep 20 02:30:01 PDT 1999
>Closed-Date:
>Last-Modified:
>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:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199909200927.CAA37790>