9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* Re: [9fans] stupid vga tricks...
@ 2001-07-18  4:24 forsyth
  0 siblings, 0 replies; 5+ messages in thread
From: forsyth @ 2001-07-18  4:24 UTC (permalink / raw)
  To: 9fans

>>aux/vga: vgactlw: <linear 0x800000 0x1000000>: not enough free address space
>>rio: can't open display: initdisplay: /dev/draw/new: no frame buffer

was nothing else printed before that?
	vgamach64xx: aperture not found
for instance?



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [9fans] stupid vga tricks...
@ 2001-07-18  4:34 forsyth
  0 siblings, 0 replies; 5+ messages in thread
From: forsyth @ 2001-07-18  4:34 UTC (permalink / raw)
  To: 9fans

>>Does the machine in question have other (non-VGA) PCI hardware made by
>>ATI?  If so, you may indeed be seeing a problem similar to what I saw.
>>The same technique may be used to fix the problem.

that fix is in vgas3.c now

ATI does make other bits, and vgamach64xx.c checks a list of
known device IDs, but unfortunately checks only the first ATI device it finds.
that's why i asked about any other messages, because it
distinguishes two cases in mach64xxlinear.
i also wonder what happens with multifunction devices.
if the Aptiva boots showing the PCI device list, seeing that might help
to work out what happened.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [9fans] stupid vga tricks...
@ 2001-07-18  4:11 forsyth
  0 siblings, 0 replies; 5+ messages in thread
From: forsyth @ 2001-07-18  4:11 UTC (permalink / raw)
  To: fst, 9fans, 9trouble


In the process of doing an install from VN's CD on an IBM Aptiva I get the
following:

aux/vga: vgactlw: <linear 0x800000 0x1000000>: not enough free address space
rio: can't open display: initdisplay: /dev/draw/new: no frame buffer

The buildin vga is an ATI Mach64. I've attached the vgginfo.txt and vgadb
(I added
the entry for 'Aptiva'). Has anyone else seen this?

P.S. I've looked through the old mail and the only explanation to a similar
problem
is the following:

>From: Martin Harriss <martin@Princeton.EDU>
>Organization: Princeton University CIT
>X-Mailer: Mozilla 4.7 [en] (X11; U; SunOS 5.6 sun4u)
>X-Accept-Language: en
>To: 9fans@cse.psu.edu, 9trouble@plan9.bell-labs.com
>Subject: [9fans] S3 video problem solved, and a patch
>Sender: 9fans-admin@cse.psu.edu
>X-BeenThere: 9fans@cse.psu.edu
>X-Mailman-Version: 2.0.1
>Reply-To: 9fans@cse.psu.edu
>List-Id: Fans of the OS Plan 9 from Bell Labs <9fans.cse.psu.edu>
>List-Archive: <http://lists.cse.psu.edu/archives/9fans/>
>Date: Fri, 23 Feb 2001 12:10:10 -0500
>
>I took another look last night at the problem that I was having with the
>S3 video card (was getting "no free address space" message.)  The good
>news is that I fixed the problem.  The following description is probably
>old hat to the Bell Labs folks, but may be of interest to other 9fans.
>
>The S3 video driver, along with other drivers of various kinds, calls
>"pcimatch" to find a data structure kept by the pci code that holds card
>configuration information.  Included in that information is a physical
>address that the kernel must map in order to access the frame buffer.
>The pcimatch routine looks up entries based on PCI vendor ID and card
>ID.  Either can be wild-carded in the call to pcimatch.
>
>It so happens that I have another S3 card in the system in question - an
>S3 sound card.  (Not supported by Plan 9, but I sometimes run other
>software on this system.)  The call to pcimatch in vgas3.c was finding
>the information on the S3 sound card, since all it was looking for was
>the vendor ID.  This information was not at all what the video driver
>wanted, and it barfed. (Note that it's not possible to include a device
>ID in the call to pcimatch, as there are many device variants of S3
>video cards, all supported by the same driver.)
>
>The following (admittedly ugly) patch to vgas3.c fixes the problem by
>forcing vgas3.c to ignore cards that are not display adapters.  It
>probably argues for a more intelligent pcimatch routine with an
>additional argument for device class, but I don't feel like opening that
>can of worms right now.
>
>Martin Harriss
>
>---------------------------------------------------------------------
>diff -c vgas3.c vgas3.c.dist
>*** vgas3.c     Fri Feb 23 11:46:40 2001
>--- vgas3.c.dist        Wed Feb 21 11:21:13 2001
>***************
>*** 100,118 ****
>        mmiosize = 0;
>        mmiobase = 0;
>        mmioname = nil;
>!
>!       /*
>!        * S3 makes cards other than display controllers. Make
>!        * sure we've found a display controller and not
>!        * one of their sound cards.
>!        */
>!       p = nil;
>!       while (p = pcimatch(p, PCIS3, 0)){
>!               /* device class 3 is display card */
>!               if (p -> ccrb == 3)
>!                       break;
>!       }
>!       if (p) {
>                for(i=0; i<nelem(p->mem); i++){
>                        if(p->mem[i].size >= *size
>                        && ((p->mem[i].bar & ~0x0F) & (*align-1)) == 0)
>--- 100,106 ----
>        mmiosize = 0;
>        mmiobase = 0;
>        mmioname = nil;
>!       if(p = pcimatch(nil, PCIS3, 0)){
>                for(i=0; i<nelem(p->mem); i++){
>                        if(p->mem[i].size >= *size
>                        && ((p->mem[i].bar & ~0x0F) & (*align-1)) == 0)
>
>


===> 2/ (text/plain) [file]
	cp /mail/fs/mbox/1048/2/body /usr/forsyth/VGADB

# VGA database.
#
# ctlr:
# These entries are used to identify a particular controller.
# 'numeric offset'="string" identifies the controller by searching
# the BIOS for "string" at 'offset'. There may be multiple identifier
# attributes per ctlr.
# Strings can be found in the BIOS ROM by using the DOS 'debug'
# command and typing 'd c000:0' to obtain a dump of the first part of
# the ROM. Note that some machines (e.g. AT&T/NCR laptops) have the
# ROM mapped at 0xE0000, not 0xC0000.
# The "clock", "ctlr", "link" and "ramdac" entries give a chain in order
# of functions to be called for this controller for initialisation, etc.
# The "clock", "ctlr", "link" and "ramdac" values can all take an extension
# following a '-'. This can be used as a speed-grade or subtype; matching
# is done without the extension.
#
ctlr
	0xC006F="8C801"					# STB PowerGraph X-24
	link=vga
	ramdac=att20c491-100
	hwgc=s3hwgc
	link=s3clock clock=icd2061a
	ctlr=s3801 link=ibm8514
ctlr
	0xC004F="86C805"				# Orchid Fahrenheit 1280
	0XC004F="86C801"				# Quadtel S3 86C801/805
 	link=vga
	hwgc=s3hwgc
	ramdac=sc15025-80
	link=s3clock clock=ch9294-g
	ctlr=s3805 link=ibm8514
ctlr
	0xC0067="#9GXE"					# #9GXE Level-1[12]
	0xC0045="Stealth 64 Vers. 1.05"
	link=vga
	ramdac=bt485-135
	hwgc=bt485hwgc
	ctlr=s3928 linear=1
	link=ibm8514
	clock=icd2061a link=s3clock
ctlr
	0xC0064="#9GXE"					# #9GXE Level-16
	link=vga
	hwgc=tvp3020hwgc
	ctlr=s3928 linear=1
	link=ibm8514
	ramdac=tvp3020-200
	clock=icd2061a link=s3clock
ctlr
	0xC0094="#9-864"				# #9GXE64
	0xC012C="V864 PCI"				# GIS Globalyst 550
	link=vga
	hwgc=s3hwgc
	ctlr=vision864 linear=1
	link=ibm8514
	ramdac=att21c498-135
	clock=icd2061a link=s3clock
ctlr
	0xC0094="#9-964 BIOS Version 1.03.03"		# #9GXE64pro
	0xC0094="#9-964 BIOS Version 1.03.11h"		# #9GXE64pro
	0xC0094="#9-964 BIOS Version 2.01.02h"		# #9GXE64pro
	link=vga
	ramdac=tvp3025-170
	hwgc=tvp3020hwgc
	ctlr=vision964 link=ibm8514
	link=s3clock clock=tvp3025clock
ctlr
	0xC00F6="#9 T2R4 SB BIOS"			# #9 Revolution IV
	0xC000A="3.06.04"				# #9 Revolution IV
	ctlr=t2r4 linear=1
	ramdac=rgb524mn-250 rgb524mnrefclk=37500000
	hwgc=t2r4hwgc
ctlr
	0xC0045="Stealth 64 Video VRAM Vers. 1.01"
	0xC0045="Stealth 64 Video VRAM Vers. 1.06"
	0xC0045="Stealth 64 Video VRAM Vers. 2.02"
	0xC0045="Stealth 64 Video VRAM Vers. 2.07"
	link=vga
	ramdac=tvp3026-175
	ctlr=vision968 link=ibm8514 linear=1 vclkphs=1
	link=s3clock clock=tvp3026clock
	hwgc=tvp3026hwgc
ctlr
	0xC004C="S3 Vision968 IBM RGB524 DAC"		# STB Velocity 64 Video
	link=vga
	ramdac=rgb524-220
	ctlr=vision968 linear=1 disa1sc=1
	link=ibm8514
	hwgc=rgb524hwgc
ctlr
	0xC006B="9FX Motion 771"			# #9FX Motion 771
	0xC0045="Stealth 64 Video VRAM Vers. 3.02"	# Stealth 64 Video 3000
	link=vga
	ramdac=rgb524-220 rgb524refclk=16000000
	ctlr=vision968 linear=1
	link=ibm8514
	hwgc=rgb524hwgc
ctlr
	0xC0045="Stealth 64 DRAM Vers. 2.02"
	0xC0045="Stealth 64 DRAM Vers. 2.09"
	0xC0045="Stealth 64 DRAM Vers. 1.14"
	0xC0045="Stealth SE DRAM Vers. 1.01"
	0xC0044="Phoenix S3 TRIO32 Enhanced VGA BIOS. Version 1.3-08-12-57MHz"
	0xC0044="Phoenix S3 TRIO64 Enhanced VGA BIOS. Version 1.3-08"
	0xC0044="Phoenix S3 TRIO64 Enhanced VGA BIOS. Version 1.00-06"
	0xC0044="Phoenix S3 TRIO64 Enhanced VGA BIOS. Version 1.2-07"
	0xC0044="Phoenix S3 TRIO64 Enhanced VGA BIOS. Version 1.5-07"
	0xC0044="Phoenix S3 TRIO64 Enhanced VGA BIOS. PCI Version 1.1"	# ishwar@pali.cps.umich.edu
	0xC0044="Phoenix S3 TRIO64V+ Enhanced VGA BIOS. Version 1."
	0xC0044="S3 86C325 Video BIOS. Version 1.00-05"
	0xC0094="#9-764 BIOS Version 1.02.00u"
	0xC0044="S3 86C765 Video BIOS"
	link=vga
	hwgc=s3hwgc
	ctlr=trio64 linear=1
	link=ibm8514
# does not work; did not work on mar 1 1999, jun 1 1999. -rsc
ctlr
	0xC0044="Stealth64 Video 2001"			# Trio64V+
	link=vga
	hwgc=s3hwgc
	ctlr=trio64
	link=ibm8514
ctlr
	0xC0048="Stealth 3D 2000 Vers. 1.03"
	0xC0043="Stealth 3D 2000 Vers. 1.04"
	0xC0048="Stealth 3D 2000 Vers. 2.03"
	0xC0047="Stealth 3D 2000 Pro Vers. 3.04"
	0xC0043="Stealth 3D 3000 Vers. 1.01"
	0xC0043="Stealth 3D 3000 Vers. 1.02"
	0xC0043="Stealth 3D 3000 Vers. 2.01"
	0xC0043="Stealth 3D 3000 Vers. 2.02"
	0xC004B="Stealth III S540"		# Savage4-based
	0xC0044="STB Velocity 3D BIOS. Version 1.10"	# STB Velocity 3D
	0xC00D8="#9-325 BIOS Version 2.18.08"		# #9FX Reality 332
	0xC001A="PNTNIBM VGA Compatible BIOS" 	# Hercules Terminator
	0xCBCBC="TOSHIBA Savage\MX BIOS Ver. 4.00.20 - 21" # Portégé 3440CT
	0xC0044="S3 86CM65 Video BIOS"		# Compaq Presario 3060 (Aurora64V+)
	link=vga
	hwgc=s3hwgc
	ctlr=virge linear=1

# These use some weird virge/gx2 that has a 202MHz clock instead of a 170MHz.
ctlr
	0xC00DF="#9-357 BIOS Version 4.10.05"		# #9FX Reality 334
	link=vga
	hwgc=s3hwgc
	ctlr=virge-202 linear=1
# This card, in addition to having a weird gx2 clock, has slow memory.
ctlr
	0xC0044="STB Powergraph 64 3D BIOS. Version 1.50"
	link=vga
	hwgc=s3hwgc
	ctlr=virge-202 linear=1
ctlr							# CL-GD542x
	0xC0039="CL-GD540"				# Cirrus Logic BIOS
	0xC0039="CL-GD5422"
	0xC0039="CL-GD542X VGA BIOS"			# NCR 3230
	0xE0039="CL-GD540x/542x VGA BIOS"		# NCR 3230
	0xC0039="CL-GD543x"
	0xC003B="SpeedStar PRO"				# Diamond SpeedStar Pro
	0xC0038="SpeedStar 64"				# Diamond SpeedStar 64
	0xC00F4="KELVIN 64"				# Orchid Kelvin 64
	0xC0039="CL-GD7543"				# notebook
	link=vga
	ctlr=clgd542x
	hwgc=clgd542xhwgc
ctlr
	0xC0039="CL-GD5436/46 PCI VGA BIOS Version 1.10" # CP5000M SBC
	0xC0039="CL-GD5436/46 PCI VGA BIOS Version 1.25" # Ziatech ZT 5512 SBC
	0xC0039="CL-GD5436/46 PCI VGA BIOS Version 1.20"
	0xC0039="CL-GD5446 PCI VGA BIOS Version 1.33"	 # CPV5000 SBC
	link=vga
	ctlr=clgd542x linear=1
	hwgc=clgd542xhwgc
ctlr
	0xC0039="CL-GD546x Laguna PCI VGA BIOS Version 1.71D" # ZT5550 SBC
	0xC0039="CL-GD546x Laguna PCI VGA BIOS Version 1.61a" # HP Kayak
	link=vga
	ctlr=clgd546x linear=1
	hwgc=clgd546xhwgc
ctlr
	0xC00DC="MACH64CTPCIU"				# ATI Graphics Xpression
	0xC00E7="MACH64GPPCIM"				# ATI xpert@work
	0xC00E7="MACH64GBPCIM"				# ATI xpert@work
	0xC00E7="MACH64GZPCIM"				# Rage IIC AGP
	0xC00E7="MACH64GVPCIM"				# Rage IIC PCI
	0xC00E6="MACH64GBPCIM"				# ATI xpert@work
	0xC00E0="MACH64GBPCIMTSGU"			# MS-6131 NLX mb
	0xC00E1="MACH64GBPCIMTSGU"			# MS-6131 NLX mb
	0xC00CA="MACH64GBPCIMTSGU"			# Dell Optiplex GX1
	0xC00EB="MACH64GPPCIMTSGU"			# ATI Xpert 98
	0xC00F7="MACH64LIPCIMTSDU"			# Xpert LCD PCI
	0xC00F7="MACH64LBPCIMTSGU"			# Xpert LCD AGP
	0xC00F8="MACH64LIPCIMTSDU"			# Xpert LCD PCI
	0xC00F6="MACH64LMPC"				# COMPAQ Armada E500
	0xC00E1="MACH64GTPCIUYMU"			# ATI Rage II PCI
	0xC0000-0xC0200="MACH64CT"			# generic entries
	0xC0000-0xC0200="MACH64GP"
	0xC0000-0xC0200="MACH64GB"
	0xC0000-0xC0200="MACH64GM"
	0xC0000-0xC0200="MACH64GZ"
	0xC0000-0xC0200="MACH64GV"
	0xC0000-0xC0200="MACH64LB"
	0xC0000-0xC0200="MACH64LP"
	0xC0000-0xC0200="MACH64LI"
	0xC0000-0xC0200="MACH64LM"
	0xC0000-0xC0200="MACH64VT"
	0xC0000-0xC0200="MACH64VV"
	link=vga
	ctlr=mach64xx linear=1
	hwgc=mach64xxhwgc
	membw=530
ctlr
	0xC00C9="MACH64GTPCIU"				# IBM Aptiva
	link=vga
	ctlr=mach64xx linear=1
	hwgc=mach64xxhwgc
	membw=530
ctlr
	0xC0083="Hercules Stingray 64(tm)"		# Stingray 64/Video
	link=vga
	clock=ch9294-g
	ramdac=w30c516-135
	ctlr=ark2000pv linear=1
	hwgc=ark2000pvhwgc
ctlr
	0xC0083="Stealth64 Graphics 2001"
	link=vga
	ramdac=ics534x-135
	ctlr=ark2000pv linear=1
	hwgc=ark2000pvhwgc
ctlr
	0xE0090="Chips 65540"				# Globalyst 250
	0xC008D="Chips 65540"				# Midwest Micro Elite
	link=vga
	ctlr=ct65540 linear=1
	hwgc=ct65545hwgc
ctlr
	0xC7345="TVGA BIOS  Z6.1I (0.02)"			# IBM Thinkpad 760ED (U9A)
	0xC7367="TVGA BIOS  Z6.1I (0.05) "		# IBM Thinkpad 560E
	0xC7845="TVGA BIOS WEN 6.1 (31)   "		# NEC Versa SX
	0xC7A97="TVGA BIOS WEN 6.1 (36)   "		# NEC Versa SX
	link=vga
	ctlr=cyber938x linear=1
	hwgc=cyber938xhwgc
ctlr
	0xC0090="CHIPS 65550 PCI & VL Accelerated VGA BIOS"	# NEC Versa 6030X/6200MX
	0xC0090="CHIPS 69000 PCI Accelerated VGA BIOS"	# Rackmount
	link=vga
	ctlr=hiqvideo linear=1
	hwgc=hiqvideohwgc
ctlr
	0xC002D="MATROX/MILLENNIUM  VGA/VBE BIOS (V1.9 )"	# Millennium
	0xC002D="MATROX/MILLENNIUM  VGA/VBE BIOS (V3.0 )"	# Millennium
	0xC002D="MATROX/MILLENNIUM  VGA/VBE BIOS (V2.5 )"	# Millennium
	0xC002D="MATROX/MISTRAL  VGA/VBE BIOS (V1."		# Millennium II
	link=vga
	ctlr=mga2164w linear=1
	hwgc=mga2164whwgc
ctlr
	0xC0048="MagicGraph 128XD"			# IBM Thinkpad 560X
	0xC0048="MagicMedia 256AV"			# IBM Thinkpad 600E
	0xC0048="MagicGraph 256 AV"			# IBM Thinkpad 570, 600E
	0xC0048="MagicMedia 256ZX"			# IBM Thinkpad 600X
	ctlr=neomagic linear=1
	hwgc=neomagichwgc
ctlr
	0xC0189="Hercules ISA Bus Dynamite(tm) BIOS. Ver. 8.00N-A2b(04/29/94)"
	link=vga
	clock=ics2494-304
	ramdac=att20c491-90				# really MUSIC MU9C4910
	ctlr=et4000-w32i
	hwgc=et4000hwgc
ctlr
	0xC0189="Hercules PCI Bus Dynamite(tm) BIOS. Ver. 8.00N-B1a(03/30/94)"
	link=vga
	clock=ics2494-324
	ramdac=stg1702-135
	ctlr=et4000-w32p
	hwgc=et4000hwgc
ctlr
	0xC0189="Hercules PCI Bus Dynamite(tm) BIOS. Ver. 8.00N-D2g(11/28/94)"
	0xC01AD="Ver. 8.00N-D2h(05/31/95)"
	0xC0076="Tseng Laboratories, Inc. 06/28/94 V1.0CN"# Cardex Challenger
	link=vga
	ramdac=ics534x-135
	ctlr=et4000-w32p
	hwgc=et4000hwgc

#
# mode:
# These entries specify a monitor operating mode.
# Attributes are:
#	clock		the dot clock in MHz
#	shb		start horizontal blanking
#	ehb		end horizontal blanking
#	ht		horizontal total
#	vrs		vertical refresh start
#	vre		vertical refresh end
#	vt		vertical total
#	hsync		horizontal sync polarity
#	vsync		vertical sync polarity
#	interlace	interlace
# The shb, ehb, ht, vrs, vre and vt attributes specify the horizontal and
# vertical timing. The x (hde, horizontal display end), y (vde, vertical
# display end) and z (depth) values are derived from the value of the main
# attribute (e.g. 640x480x8 -> x=640, y=480, z=8).
#
# The clock value 25.175 is known internally as the baseline VGA clock rate.
#
# The defaults for hsync, vsync and interlace are 0. Both hsync and vsync
# must be non-zero if either is to take effect, - and + are valid choices.
#
# An attribute 'include=val' means continue using another entry. In this
# case any non-zero attributes already set will not be overwritten by the
# jumped-to mode. The x, y and z values are fixed by the first mode.
#
# An attribute 'alias=val' means continue using another monitor type. It can
# be used to chain classes together. (bad explanation, i know).
#
include = 640x480					# 60Hz, 31.5KHz
	clock=25.175
	shb=664 ehb=760 ht=800
	vrs=491 vre=493 vt=525

include = 640x480@72Hz					# 72Hz, 38.5KHz
	clock=32
	shb=664 ehb=704 ht=832
	vrs=489 vre=492 vt=520

include = 800x600					# 60Hz, 37.9KHz
	defaultclock=40
	shb=840 ehb=1000 ht=1056
	vrs=605 vre=607 vt=633

include = 1024x768i					# 87Hz, 35.5KHz
	defaultclock=44.9
	shb=1048 ehb=1208 ht=1264
	vrs=776 vre=784 vt=817
	interlace=v

include = 1024x768@60Hz					# 60Hz, 48.4KHz
	defaultclock=65
	shb=1032 ehb=1176 ht=1344
	shs=1056
	vrs=771 vre=777 vt=806
	hsync=- vsync=-

include = 1024x768					# 70Hz, 57.2KHz
	defaultclock=75
	shb=1096 ehb=1232 ht=1328
	shs=1072
	vrs=771 vre=777 vt=806
	hsync=- vsync=-

include = 1280x1024i					# 87Hz, 48KHz
	defaultclock=80
	shb=1312 ehb=1528 ht=1576
	vrs=1028 vre=1034 vt=1105
	interlace=v

include = 1280x1024@60Hz				# 60Hz, 63.9KHz
	defaultclock=110
	shb=1312 ehb=1496 ht=1720			# All from xvidtune
	vrs=1025 vre=1028 vt=1074

include = 1280x1024					# 74Hz, 79.6KHz
	defaultclock=135
	shb=1376 ehb=1544 ht=1712
	shs=1392
	vrs=1028 vre=1034 vt=1075

include = 1376x1024					# 70Hz, 75.3KHz
	defaultclock=135
	shb=1440 ehb=1616 ht=1792
	vrs=1032 vre=1040 vt=1075

include = 1152x900@70Hz						# 72Hz, 67.9KHz
	clock=100
	shb=1184 ehb=1376 ht=1472
	vrs=900 vre=902 vt=940
	#hsync=- vsync=-

#
# VGA.
#
vga = 640x480							# 60Hz, 31.5KHz
	include=640x480
vga = 800x600							# 60Hz, 37.9KHz
	include=800x600

#
# SVGA (Laptop).
#
svga = 640x480
	include=640x480
svga = 800x600
	include=800x600

#
# XGA (Laptop).
#
xga = 1024x768
	include=1024x768
xga
	alias=svga

#
# LCD
# Just a convenience, really.
#
lcd
	alias=xga

#
# Multisync monitors with video bandwidth up to 65MHz.
#
multisync65
	videobw=65
	alias=multisync
multisync65 = 1024x768					# 60Hz, 48.4KHz
	include=1024x768@60Hz

#
# Multisync monitors with video bandwidth up to 75MHz.
#
multisync75
	videobw=75
	alias=multisync

#
# Multisync monitors with video bandwidth up to 110MHz.
#
multisync110
	videobw=110
	alias=multisync
multisync110 = 1280x1024
	include=1280x1024@60Hz

#
# Multisync monitors with video bandwidth up to 135MHz.
#
multisync135
	videobw=135
	alias=multisync

#
# Multisync monitors.  The entry with alias=multisync supplies the bandwidth,
# which in turn decides the refresh rates when possible.
#
multisync
	alias=vga
multisync = 1024x768
	include=1024x768
multisync = 1024x768i
	include=1024x768i
multisync = 1152x900
	include=1152x900@70Hz
multisync = 1280x1024
	include=1280x1024
multisync = 1280x1024i
	include=1280x1024i
multisync = 1376x1024
	include=1376x1024

#
# Dell VS17X
#
vs17x
	videobw=86
	alias=multisync
vs17x = 1024x768					# ??Hz, ??.?KHz
	defaultclock=86
	shb=1128 ehb=1232 ht=1328
	vrs=771 vre=777 vt=806
	hsync=- vsync=-

#
# Dell UltraScan 21TE (MODEL No. D2130T-HS)
# Horizontal timing:
#	Allowable frequency range: 30-93KHz
# Vertical timing:
#	Allowable frequency range: 50-152Hz
dell21te
	videobw=135
	alias=multisync				# this will do for now

#
# Hitachi CM751U
# Horizontal timing:
#	Allowable frequency range: 31-100 kHz
#		for 31-52,  fp>0.1µs, 1.0µs<sync width<3.8µs,
#			    bp>1.2µs, blank width>3.5µs
#		for 52-100, fp>0.1µs, 0.8µs<sync width<2.4µs,
#			    bp>1.1µs, blank width>2.4µs
# Vertical timing:
#	Allowable frequency range: 50-160Hz
#		fp>9µs, sync width<100µs, bp>400µs, blank width>450µs
# Video bandwidth:
#	200MHz monitor
#
cm751u
	videobw=200
	alias=multisync
cm751u = 1600x1200					# 75Hz, 93.75 kHz
	defaultclock=200
	shb=1664 ehb=1864 ht=2136
	vrs=1202 vre=1207 vt=1260

#
# Hitachi CM801U
# Horizontal timing:
#	Allowable frequency range: 31-96KHz
# Vertical timing:
#	Allowable frequency range: 50-160Hz
# Video bandwidth:
#	200MHz monitor
#
cm801u
	videobw=200
	alias=multisync
cm801u = 1600x1200						# 75Hz, 93.3KHz
	defaultclock=200
	shb=1792 ehb=1896 ht=2032
	shs=1680
	vrs=1202 vre=1205 vt=1232
cm801u = 1376x1024						# ??Hz, ??.?KHz
	defaultclock=150
	shb=1456 ehb=1616 ht=1864
	shs=1424
	vrs=1028 vre=1034 vt=1064

#
# IDEK 5421
#
mf5421
	videobw=135
	alias=multisync
mf5421 = 1376x1024						# 72Hz, 90.4KHz
	defaultclock=135
	shb=1544 ehb=1616 ht=1792
	vrs=1028 vre=1034 vt=1075

#
# IDEK Vision Master 17 (model no. MF-8617)
# Horizontal timing:
#	Allowable frequency range: 23.5-86.0KHz
# Vertical timing:
#	Allowable frequency range: 50-120Hz
# Video bandwidth:
#	135MHz
#
ms8617
	videobw=135
	alias=multisync

#
# IDEK Vision Master 21 (model no. MF-8221E)
# Horizontal timing:
#	Allowable frequency range: 24.8-94.0KHz
# Vertical timing:
#	Allowable frequency range: 50-160Hz
# Video bandwidth:
#	200MHz monitor
#
mf8221e
	videobw=200
	alias=sm17GLsi
mf8221e = 1600x1200					# 75Hz, 93.3KHz
	defaultclock=200
	shb=1664 ehb=2088 ht=2144
	shs=1648
	vrs=1202 vre=1208 vt=1240
mf8221e = 1376x1024					# ??Hz, ??.?KHz
	defaultclock=150
	shb=1456 ehb=1616 ht=1864
	shs=1424
	vrs=1028 vre=1034 vt=1064
pro502
	alias=mf8221e

#
# Micron 17FGx
# Horizontal timing:
#	Allowable frequency range: 30-64KHz
# Vertical timing:
#	Allowable frequency range: 50-100Hz
# Video bandwidth:
#	75MHz
#
micron-17FGx
	videobw=75
	alias=multisync
micron-17FGx = 1024x768
	defaultclock=75
	shb=1072 ehb=1232 ht=1296
	shs=1072
	vrs=771 vre=777 vt=806
	hsync=- vsync=-

#
# Nanao FlexScan 6500 (greyscale)
#
nanao6500
	videobw=135
	alias=multisync
nanao6500 = 1376x1024					# ??Hz, ??.?KHz
	defaultclock=135
	shb=1448 ehb=1616 ht=1760
	shs=1536
	vrs=1028 vre=1034 vt=1064

#
# NEC 4FG
# Horizontal timing:
#	Allowable frequency range: 27-57KHz
# Vertical timing:
#	Allowable frequency range: 55-90Hz
# Video bandwidth:
#	75MHz
#
nec4fg
	videobw=75
	alias=multisync

#
# NEC 5FG
# Horizontal timing:
#	Allowable frequency range: 27-79KHz
# Vertical timing:
#	Allowable frequency range: 55-90Hz
# Video bandwidth:
#	135MHz monitor
#	75MHz cable
#
nec5fg
	videobw=135
	alias=multisync
nec5fg = 1280x1024
	defaultclock=135
	shb=1352 ehb=1544 ht=1712
	shs=1328
	vrs=1028 vre=1034 vt=1075
nec5fg = 1024x768					# 70Hz, 57.2KHz
	defaultclock=75
	shb=1080 ehb=1232 ht=1328
	shs=1072
	vrs=771 vre=777 vt=806
	hsync=- vsync=-

#
# NEC Versa 6030X/6200MX Laptop.
# These use a C&T 65550 and a native panel size of 1024x768.
# The clock isn't actually programmed.
#
versa6xxx = 1024x768
	clock=63
	include=1024x768@60Hz
versa6xxx = 800x600
	clock=63
	include=800x600@60Hz
versa6xxx = 640x480
	clock=63
	include=640x480@60Hz

#
# NEC Versa LX Laptop, 13.3" 1024x768 screen.
#
versalx = 1024x768
	clock=65
	include=1024x768

# smaller modes require programming centering, which i don't have right yet. -rsc
# versalx = 800x600
# 	clock=15
# 	include=800x600
# versalx = 640x480
# 	clock=15
# 	shb=832 ehb=1264 ht=1344
# 	shs=872
# 	vrs=626 vre=664 vt=806
# 	hsync=- vsync=-

#
# Nokia Multigraph 445X
# Horizontal timing:
#	Allowable frequency range: 30-102KHz
#	Blanking time: <= 20% of line period min.
#	Back porch time: 0.6->1.0µs
# Vertical timing:
#	Allowable frequency range: 50-120Hz
#	Sync width time: 0.045ms min. between start of sync
#			 and start of video
# Video bandwidth:
#	200MHz
#
445x
	videobw=200
	alias=multisync
445x = 1280x1024					# 74Hz, 79.6KHz
	defaultclock=135
	shb=1352 ehb=1544 ht=1712
	shs=1392
	vrs=1028 vre=1034 vt=1075
445x = 1600x1200					# 72Hz, 90.4KHz
	defaultclock=200
	shb=1664 ehb=2088 ht=2208
	vrs=1202 vre=1208 vt=1256
445x = 640x480						# 72Hz, 38.5KHz
	defaultclock=32
	shb=664 ehb=760 ht=800
	vrs=491 vre=493 vt=525

#
# Panasonic E70i 17" monitor
# from aam396@mail.usask.ca
#
e70i
	videobw=135
	alias=multisync
e70i = 1280x1024
	defaultclock=110
	shb=1328 ehb=1520 ht=1712
	vrs=1025 vre=1028 vt=1054

#
#
# Sampo KDM-1788
# Horizontal timing:
#	Allowable frequency range: 30-82KHz
# Vertical timing:
#	Allowable frequency range: 50-120Hz
# Video bandwidth:
#	135MHz
#
kdm-1788
	videobw=135
	alias=multisync

#
# Samsung SyncMaster 17GLsi
# Horizontal timing:
#	Allowable frequency range: 30-85KHz
# Vertical timing:
#	Allowable frequency range: 50-120Hz
# Video bandwidth:
#	135MHz monitor
#
sm17GLsi
	videobw=135
	alias=multisync
sm17GLsi = 1280x1024					# 74Hz, 79.6KHz
	defaultclock=135
	shb=1344 ehb=1544 ht=1616
	shs=1304
	vrs=1028 vre=1034 vt=1064
sm17GLsi = 1024x768						# 70Hz, 57.2KHz
	defaultclock=75
	shb=1080 ehb=1232 ht=1328
	shs=1072
	vrs=771 vre=777 vt=806
	hsync=- vsync=-

#
# Sony CPD-1304
# Horizontal timing:
#	Allowable frequency range: 28-50KHz
# Vertical timing:
#	Allowable frequency range: 50-87Hz
#
cpd-1304
	videobw=65
	alias=multisync

#
# Viewsonic 17 (model no. 1782)
# Horizontal timing:
#	Allowable frequency range: 30.0-82.0KHz
#	Blanking time: 3.0µs min.
#	Back porch time: 1.25µs min.
#	Front porch time: length of back porch time or less
#	Sync width time: 1.2µs min.
# Vertical timing:
#	Allowable frequency range: 50.0-90.0Hz
#	Blanking time: 0.5ms min.
#	Back porch time: 0.5ms min.
#	Sync width time: 0.045ms min.
#
vs1782
	videobw=135
	alias=multisync135
vs1782 = 1280x1024
	defaultclock=135
	shb=1360 ehb=1544 ht=1632
	shs=1312
	vrs=1028 vre=1034 vt=1075

#
# Viewsonic G790
# Hacked from the VS1782 for now
#
g790
	videobw=135
	alias=multisync
g790 = 1280x1024
	defaultclock=135
	shb=1360 ehb=1544 ht=1632
	shs=1312 ehs=1542
	vrs=1028 vre=1034 vt=1075

#
# Viewsonic P815
#
p815
	videobw=220
	alias=multisync
p815 = 1800x1350					# 70Hz, xx.xKHz
	defaultclock=220
	shb=1872 ehb=2128 ht=2248
	shs=1824 ehs=1896
	vrs=1356 vre=1368 vt=1394
p815 = 1600x1200					# 75.4Hz, 93.5KHz
	defaultclock=200
	shb=1664 ehb=2088 ht=2144
	shs=1648
	vrs=1202 vre=1208 vt=1240
p815 = 1024x768
	clock=79
	include=1024x768
#
# SGI 1600SW Flat Panel
# Usually coupled with a #9 Ticket to Ride IV.
#
sgi1600sw = 1600x1024
	clock=103.125
	shb=1608 ehb=1624 ht=1632
	vrs=1024 vre=1029 vt=1030
	hsync=+ vsync=+
sgi1600sw = 800x512
	#clock=103.125
	clock=54.375
	shb=800 ehb=840 ht=848
	vrs=512 vre=514 vt=515
	zoom=1
	hsync=+ vsync=+
#
# Viewsonic VPD150
# Usually coupled with an ATI Xpert LCD PCI/AGP.
#
vpd150 = 1024x768
	clock=65.14
	shb=1096 ehb=1232 ht=1344
	shs=1064 ehs=1200
	vrs=770 vre=776 vt=806
	hsync=- vsync=-
vpd150 = 800x600
	clock=65.14
	include=800x600
vpd150 = 640x480
	clock=65.14
	include=640x480
#
# NEC Multisync LCD1525X
# Usually coupled with an ATI Xpert LCD PCI/AGP.
#
lcd1525x = 1024x768
	clock=78.82
	shb=1096 ehb=1232 ht=1344
	shs=1064 ehs=1200
	vrs=770 vre=776 vt=806
	hsync=- vsync=-
#
# COMPAQ Armada E500
# This uses an ATI Rage Mobility and a native panel size of 800x600.
# The clock value is a guess.
#
e500 = 800x600
	clock=40
	include=800x600
e500 = 640x480
	clock=40
	include=640x480

raptop = 1024x768
	clock=65
	include=1024x768

#
# Viglen VL700
#
vl700 = 1280x1024
	defaultclock=110
	shb=1328 ehb=1520 ht=1712
	vrs=1025 vre=1028 vt=1054


===> 3/ (text/plain) [file]
	cp /mail/fs/mbox/1048/3/body /usr/forsyth/VGAINFO.TXT

main->snarf
vga->snarf
mach64xx->snarf
vga->dump
vga misc             67
vga feature          00
vga sequencer        03 00 03 00 02
vga crt              5F 4F 50 82 55 81 BF 1F - 00 4F 0D 0E 00 00 05 A0
                     9C 8E 8F 28 1F 96 B9 A3 - FF
vga graphics         00 00 00 00 00 10 0E 00 - FF
vga attribute        00 01 02 03 04 05 14 07 - 38 39 3A 3B 3C 3D 3E 3F
                     0C 00 0F 08 00
vga vm a b           16777216        0
vga vmz               2097152
vga apz               8388608
vga linear                  1
vga->attr: 0xC00C9=MACH64GTPCIU
mach64xx->dump
mach64xx pci 3d530 io ff00 pciregs
mach64xx ccru 300
mach64xx HTotalDisp          004F005F
mach64xx HSyncStrtWid        00010055
mach64xx VTotalDisp          018F01BF
mach64xx VSyncStrtWid        000E019C
mach64xx VlineCrntVline      00A103FF
mach64xx OffPitch            0A000000
mach64xx IntCntl             00000054
mach64xx CrtcGenCntl         024B0200
mach64xx OvrClr              00000000
mach64xx OvrWidLR            00000000
mach64xx OvrWidTB            00000000
mach64xx CurClr0             00000000
mach64xx CurClr1             00000000
mach64xx CurOffset           00000000
mach64xx CurHVposn           00000000
mach64xx CurHVoff            00000000
mach64xx ScratchReg0         08000400
mach64xx ScratchReg1         00000000
mach64xx ClockCntl           00000002
mach64xx BusCntl             600700F8
mach64xx MemCntl             08010222
mach64xx ExtMemCntl          00000000
mach64xx MemVgaWpSel         00010000
mach64xx MemVgaRpSel         00010000
mach64xx DacRegs             00FF0040
mach64xx DacCntl             85016008
mach64xx GenTestCntl         00000108
mach64xx ConfigCntl          00000302
mach64xx ConfigChipId        00005654
mach64xx ConfigStat0         0000005B
mach64xx ConfigStat1         00000000
mach64xx ConfigStat2         00000000
mach64xx DspConfig           00000000
mach64xx DspOnOff            00000000
mach64xx DpBkgdClr           FFFFFFFF
mach64xx DpChainMsk          FFFFFFFF
mach64xx DpFrgdClr           FFFFFFFF
mach64xx DpMix               FFFFFFFF
mach64xx DpPixWidth          FFFFFFFF
mach64xx DpSrc               FFFFFFFF
mach64xx DpWriteMsk          FFFFFFFF
mach64xx LcdIndex            00000000
mach64xx LcdData             00000000
mach64xx PLL         00 A0 2D 14 B6 0B FA 9E - B2 81 81 00 C0 00 00 00
                     00 A0 2D 14 B6 0B FA 9E - B2 81 81 00 C0 00 00 00
mach64xx VCLK0	25136360
mach64xx VCLK1	28318178
mach64xx VCLK2	10261362
mach64xx VCLK3	10261362

rom table offset DA
freq table offset 738
memclk 58000000
ref_freq 14320000
ref_divider 45
min_freq 10190000
max_freq 162900000
pd 2 value 0 (|2)
post = 4
mach64xx pixel clock = 25130000
ATI BIOS rom 0xda freq 0x0 clock 0x738
clocks: 43605 60224 23675 255 0 0 0 0 0 0 0 0 280 0 0 16969
programmable clock: 4
clock to program: 3
reference numerator: 14320
reference denominator: 1
internal clock
reference divider in plls
panelid 85 x 1 y 0

vmf 25175000 vmdf 0 vf1 0 vbw 75000000
vga->init
mach64xx->init
rom table offset DA
freq table offset 738
memclk 5800
memclk 5800... x 18.430983...t 18... xprec 5...fifosz 589.791460...fprec 10...prec 5...afifosz 32...fifooff 572.000000...pfc 4...rcc 6...fifoon 41.000000...
dbdumpmode
type=multisync75, size=640x480x8
frequency=25175000
x=640 (0x280), y=480 (0x1E0), z=8 (0x8)
ht=800 (0x320), shb=664 (0x298), ehb=760 (0x2F8)
shs=664 (0x298), ehs=760 (0x2F8)
vt=525 (0x20D), vrs=491 (0x1EB), vre=493 (0x1ED)
hsync=0, vsync=0, interlace=0
vga->dump
vga flag             Fdump|Finit|Fsnarf
vga misc             E3
vga feature          00
vga sequencer        03 01 0F 00 0A
vga crt              5F 4F 52 9F 53 1F20B 3E - 00 40 00 00 00 00 00 00
                    1EB 2D1DF 50 601EB1EC A3 -7FF
vga graphics         00 00 00 00 00 50 05 0F - FF
vga attribute        00 01 02 03 04 05 06 07 - 08 09 0A 0B 0C 0D 0E 0F
                     41 FF 0F 00 00
vga clock[0] f       25175000
vga clock[0] d i m          0        0       -       45
vga clock[0] n p q r      237        6       -        0        0
vga vm a b           16777216        0
vga vmz               2097152
vga apz               8388608
vga linear                  1
vga->attr: 0xC00C9=MACH64GTPCIU
mach64xx->dump
mach64xx flag        Ulinear|Uenhanced|Fdump|Finit|Fsnarf
mach64xx pci 3d530 io ff00 pciregs
mach64xx ccru 300
mach64xx HTotalDisp          004F0063
mach64xx HSyncStrtWid        000C0052
mach64xx VTotalDisp          01DF020C
mach64xx VSyncStrtWid        000201EA
mach64xx VlineCrntVline      00A103FF
mach64xx OffPitch            14000000
mach64xx IntCntl             00000000
mach64xx CrtcGenCntl         030B0200
mach64xx OvrClr              00000000
mach64xx OvrWidLR            00000000
mach64xx OvrWidTB            00000000
mach64xx CurClr0             00000000
mach64xx CurClr1             00000000
mach64xx CurOffset           00000000
mach64xx CurHVposn           00000000
mach64xx CurHVoff            00000000
mach64xx ScratchReg0         08000400
mach64xx ScratchReg1         00000000
mach64xx ClockCntl           00000002
mach64xx BusCntl             600700F8
mach64xx MemCntl             08010222
mach64xx ExtMemCntl          00000000
mach64xx MemVgaWpSel         00010000
mach64xx MemVgaRpSel         00010000
mach64xx DacRegs             00FF0040
mach64xx DacCntl             85016008
mach64xx GenTestCntl         00000108
mach64xx ConfigCntl          00000000
mach64xx ConfigChipId        00005654
mach64xx ConfigStat0         0000005B
mach64xx ConfigStat1         00000000
mach64xx ConfigStat2         00000000
mach64xx DspConfig           0058049B
mach64xx DspOnOff            00520478
mach64xx DpBkgdClr           FFFFFFFF
mach64xx DpChainMsk          FFFFFFFF
mach64xx DpFrgdClr           FFFFFFFF
mach64xx DpMix               FFFFFFFF
mach64xx DpPixWidth          00020202
mach64xx DpSrc               FFFFFFFF
mach64xx DpWriteMsk          FFFFFFFF
mach64xx LcdIndex            00000000
mach64xx LcdData             00000000
mach64xx PLL         00 A0 2D 14 B6 0B EA 9E - B2 ED 81 40 C0 00 00 00
                     00 A0 2D 14 B6 0B FA 9E - B2 81 81 00 C0 00 00 00
mach64xx VCLK0	25136360
mach64xx VCLK1	28318178
mach64xx VCLK2	25136360
mach64xx VCLK3	10261362

rom table offset DA
freq table offset 738
memclk 58000000
ref_freq 14320000
ref_divider 45
min_freq 10190000
max_freq 162900000
pd 2 value 0 (|2)
post = 4
mach64xx pixel clock = 25130000

main->exits



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [9fans] stupid vga tricks...
  2001-07-18  1:42 Fariborz 'Skip' Tavakkolian
@ 2001-07-18  4:02 ` Martin Harriss
  0 siblings, 0 replies; 5+ messages in thread
From: Martin Harriss @ 2001-07-18  4:02 UTC (permalink / raw)
  To: 9fans

Does the machine in question have other (non-VGA) PCI hardware made by
ATI?  If so, you may indeed be seeing a problem similar to what I saw.
The same technique may be used to fix the problem.

Martin


Fariborz 'Skip' Tavakkolian wrote:
>
> In the process of doing an install from VN's CD on an IBM Aptiva I get the
> following:
>
> aux/vga: vgactlw: <linear 0x800000 0x1000000>: not enough free address space
> rio: can't open display: initdisplay: /dev/draw/new: no frame buffer
>
> The buildin vga is an ATI Mach64. I've attached the vgginfo.txt and vgadb
> (I added
> the entry for 'Aptiva'). Has anyone else seen this?
>
> P.S. I've looked through the old mail and the only explanation to a similar
> problem
> is the following:
>
> >From: Martin Harriss <martin@Princeton.EDU>
> >Organization: Princeton University CIT
> >X-Mailer: Mozilla 4.7 [en] (X11; U; SunOS 5.6 sun4u)
> >X-Accept-Language: en
> >To: 9fans@cse.psu.edu, 9trouble@plan9.bell-labs.com
> >Subject: [9fans] S3 video problem solved, and a patch
> >Sender: 9fans-admin@cse.psu.edu
> >X-BeenThere: 9fans@cse.psu.edu
> >X-Mailman-Version: 2.0.1
> >Reply-To: 9fans@cse.psu.edu
> >List-Id: Fans of the OS Plan 9 from Bell Labs <9fans.cse.psu.edu>
> >List-Archive: <http://lists.cse.psu.edu/archives/9fans/>
> >Date: Fri, 23 Feb 2001 12:10:10 -0500
> >
> >I took another look last night at the problem that I was having with the
> >S3 video card (was getting "no free address space" message.)  The good
> >news is that I fixed the problem.  The following description is probably
> >old hat to the Bell Labs folks, but may be of interest to other 9fans.
> >
> >The S3 video driver, along with other drivers of various kinds, calls
> >"pcimatch" to find a data structure kept by the pci code that holds card
> >configuration information.  Included in that information is a physical
> >address that the kernel must map in order to access the frame buffer.
> >The pcimatch routine looks up entries based on PCI vendor ID and card
> >ID.  Either can be wild-carded in the call to pcimatch.
> >
> >It so happens that I have another S3 card in the system in question - an
> >S3 sound card.  (Not supported by Plan 9, but I sometimes run other
> >software on this system.)  The call to pcimatch in vgas3.c was finding
> >the information on the S3 sound card, since all it was looking for was
> >the vendor ID.  This information was not at all what the video driver
> >wanted, and it barfed. (Note that it's not possible to include a device
> >ID in the call to pcimatch, as there are many device variants of S3
> >video cards, all supported by the same driver.)
> >
> >The following (admittedly ugly) patch to vgas3.c fixes the problem by
> >forcing vgas3.c to ignore cards that are not display adapters.  It
> >probably argues for a more intelligent pcimatch routine with an
> >additional argument for device class, but I don't feel like opening that
> >can of worms right now.
> >
> >Martin Harriss
> >
> >---------------------------------------------------------------------
> >diff -c vgas3.c vgas3.c.dist
> >*** vgas3.c     Fri Feb 23 11:46:40 2001
> >--- vgas3.c.dist        Wed Feb 21 11:21:13 2001
> >***************
> >*** 100,118 ****
> >        mmiosize = 0;
> >        mmiobase = 0;
> >        mmioname = nil;
> >!
> >!       /*
> >!        * S3 makes cards other than display controllers. Make
> >!        * sure we've found a display controller and not
> >!        * one of their sound cards.
> >!        */
> >!       p = nil;
> >!       while (p = pcimatch(p, PCIS3, 0)){
> >!               /* device class 3 is display card */
> >!               if (p -> ccrb == 3)
> >!                       break;
> >!       }
> >!       if (p) {
> >                for(i=0; i<nelem(p->mem); i++){
> >                        if(p->mem[i].size >= *size
> >                        && ((p->mem[i].bar & ~0x0F) & (*align-1)) == 0)
> >--- 100,106 ----
> >        mmiosize = 0;
> >        mmiobase = 0;
> >        mmioname = nil;
> >!       if(p = pcimatch(nil, PCIS3, 0)){
> >                for(i=0; i<nelem(p->mem); i++){
> >                        if(p->mem[i].size >= *size
> >                        && ((p->mem[i].bar & ~0x0F) & (*align-1)) == 0)
> >
> >
>
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [9fans] stupid vga tricks...
@ 2001-07-18  1:42 Fariborz 'Skip' Tavakkolian
  2001-07-18  4:02 ` Martin Harriss
  0 siblings, 1 reply; 5+ messages in thread
From: Fariborz 'Skip' Tavakkolian @ 2001-07-18  1:42 UTC (permalink / raw)
  To: 9fans, 9trouble

[-- Attachment #1: Type: text/plain, Size: 3891 bytes --]

In the process of doing an install from VN's CD on an IBM Aptiva I get the
following:

aux/vga: vgactlw: <linear 0x800000 0x1000000>: not enough free address space
rio: can't open display: initdisplay: /dev/draw/new: no frame buffer

The buildin vga is an ATI Mach64. I've attached the vgginfo.txt and vgadb
(I added
the entry for 'Aptiva'). Has anyone else seen this?

P.S. I've looked through the old mail and the only explanation to a similar
problem
is the following:

>From: Martin Harriss <martin@Princeton.EDU>
>Organization: Princeton University CIT
>X-Mailer: Mozilla 4.7 [en] (X11; U; SunOS 5.6 sun4u)
>X-Accept-Language: en
>To: 9fans@cse.psu.edu, 9trouble@plan9.bell-labs.com
>Subject: [9fans] S3 video problem solved, and a patch
>Sender: 9fans-admin@cse.psu.edu
>X-BeenThere: 9fans@cse.psu.edu
>X-Mailman-Version: 2.0.1
>Reply-To: 9fans@cse.psu.edu
>List-Id: Fans of the OS Plan 9 from Bell Labs <9fans.cse.psu.edu>
>List-Archive: <http://lists.cse.psu.edu/archives/9fans/>
>Date: Fri, 23 Feb 2001 12:10:10 -0500
>
>I took another look last night at the problem that I was having with the
>S3 video card (was getting "no free address space" message.)  The good
>news is that I fixed the problem.  The following description is probably
>old hat to the Bell Labs folks, but may be of interest to other 9fans.
>
>The S3 video driver, along with other drivers of various kinds, calls
>"pcimatch" to find a data structure kept by the pci code that holds card
>configuration information.  Included in that information is a physical
>address that the kernel must map in order to access the frame buffer.
>The pcimatch routine looks up entries based on PCI vendor ID and card
>ID.  Either can be wild-carded in the call to pcimatch.
>
>It so happens that I have another S3 card in the system in question - an
>S3 sound card.  (Not supported by Plan 9, but I sometimes run other
>software on this system.)  The call to pcimatch in vgas3.c was finding
>the information on the S3 sound card, since all it was looking for was
>the vendor ID.  This information was not at all what the video driver
>wanted, and it barfed. (Note that it's not possible to include a device
>ID in the call to pcimatch, as there are many device variants of S3
>video cards, all supported by the same driver.)
>
>The following (admittedly ugly) patch to vgas3.c fixes the problem by
>forcing vgas3.c to ignore cards that are not display adapters.  It
>probably argues for a more intelligent pcimatch routine with an
>additional argument for device class, but I don't feel like opening that
>can of worms right now.
>
>Martin Harriss
>
>---------------------------------------------------------------------
>diff -c vgas3.c vgas3.c.dist
>*** vgas3.c     Fri Feb 23 11:46:40 2001
>--- vgas3.c.dist        Wed Feb 21 11:21:13 2001
>***************
>*** 100,118 ****
>        mmiosize = 0;
>        mmiobase = 0;
>        mmioname = nil;
>!
>!       /*
>!        * S3 makes cards other than display controllers. Make
>!        * sure we've found a display controller and not
>!        * one of their sound cards.
>!        */
>!       p = nil;
>!       while (p = pcimatch(p, PCIS3, 0)){
>!               /* device class 3 is display card */
>!               if (p -> ccrb == 3)
>!                       break;
>!       }
>!       if (p) {
>                for(i=0; i<nelem(p->mem); i++){
>                        if(p->mem[i].size >= *size
>                        && ((p->mem[i].bar & ~0x0F) & (*align-1)) == 0)
>--- 100,106 ----
>        mmiosize = 0;
>        mmiobase = 0;
>        mmioname = nil;
>!       if(p = pcimatch(nil, PCIS3, 0)){
>                for(i=0; i<nelem(p->mem); i++){
>                        if(p->mem[i].size >= *size
>                        && ((p->mem[i].bar & ~0x0F) & (*align-1)) == 0)
>
>

[-- Attachment #2: VGADB --]
[-- Type: text/plain, Size: 21967 bytes --]

# VGA database.
#
# ctlr:
# These entries are used to identify a particular controller.
# 'numeric offset'="string" identifies the controller by searching
# the BIOS for "string" at 'offset'. There may be multiple identifier
# attributes per ctlr.
# Strings can be found in the BIOS ROM by using the DOS 'debug'
# command and typing 'd c000:0' to obtain a dump of the first part of
# the ROM. Note that some machines (e.g. AT&T/NCR laptops) have the
# ROM mapped at 0xE0000, not 0xC0000.
# The "clock", "ctlr", "link" and "ramdac" entries give a chain in order
# of functions to be called for this controller for initialisation, etc.
# The "clock", "ctlr", "link" and "ramdac" values can all take an extension
# following a '-'. This can be used as a speed-grade or subtype; matching
# is done without the extension.
#
ctlr
	0xC006F="8C801"					# STB PowerGraph X-24
	link=vga
	ramdac=att20c491-100
	hwgc=s3hwgc
	link=s3clock clock=icd2061a
	ctlr=s3801 link=ibm8514
ctlr
	0xC004F="86C805"				# Orchid Fahrenheit 1280
	0XC004F="86C801"				# Quadtel S3 86C801/805
 	link=vga
	hwgc=s3hwgc
	ramdac=sc15025-80
	link=s3clock clock=ch9294-g
	ctlr=s3805 link=ibm8514
ctlr
	0xC0067="#9GXE"					# #9GXE Level-1[12]
	0xC0045="Stealth 64 Vers. 1.05"
	link=vga
	ramdac=bt485-135
	hwgc=bt485hwgc
	ctlr=s3928 linear=1
	link=ibm8514
	clock=icd2061a link=s3clock
ctlr
	0xC0064="#9GXE"					# #9GXE Level-16
	link=vga
	hwgc=tvp3020hwgc
	ctlr=s3928 linear=1
	link=ibm8514
	ramdac=tvp3020-200
	clock=icd2061a link=s3clock
ctlr
	0xC0094="#9-864"				# #9GXE64
	0xC012C="V864 PCI"				# GIS Globalyst 550
	link=vga
	hwgc=s3hwgc
	ctlr=vision864 linear=1
	link=ibm8514
	ramdac=att21c498-135
	clock=icd2061a link=s3clock
ctlr
	0xC0094="#9-964 BIOS Version 1.03.03"		# #9GXE64pro
	0xC0094="#9-964 BIOS Version 1.03.11h"		# #9GXE64pro
	0xC0094="#9-964 BIOS Version 2.01.02h"		# #9GXE64pro
	link=vga
	ramdac=tvp3025-170
	hwgc=tvp3020hwgc
	ctlr=vision964 link=ibm8514
	link=s3clock clock=tvp3025clock
ctlr
	0xC00F6="#9 T2R4 SB BIOS"			# #9 Revolution IV
	0xC000A="3.06.04"				# #9 Revolution IV
	ctlr=t2r4 linear=1
	ramdac=rgb524mn-250 rgb524mnrefclk=37500000
	hwgc=t2r4hwgc
ctlr
	0xC0045="Stealth 64 Video VRAM Vers. 1.01"
	0xC0045="Stealth 64 Video VRAM Vers. 1.06"
	0xC0045="Stealth 64 Video VRAM Vers. 2.02"
	0xC0045="Stealth 64 Video VRAM Vers. 2.07"
	link=vga
	ramdac=tvp3026-175
	ctlr=vision968 link=ibm8514 linear=1 vclkphs=1
	link=s3clock clock=tvp3026clock
	hwgc=tvp3026hwgc
ctlr
	0xC004C="S3 Vision968 IBM RGB524 DAC"		# STB Velocity 64 Video
	link=vga
	ramdac=rgb524-220
	ctlr=vision968 linear=1 disa1sc=1
	link=ibm8514
	hwgc=rgb524hwgc
ctlr
	0xC006B="9FX Motion 771"			# #9FX Motion 771
	0xC0045="Stealth 64 Video VRAM Vers. 3.02"	# Stealth 64 Video 3000
	link=vga
	ramdac=rgb524-220 rgb524refclk=16000000
	ctlr=vision968 linear=1
	link=ibm8514
	hwgc=rgb524hwgc
ctlr
	0xC0045="Stealth 64 DRAM Vers. 2.02"
	0xC0045="Stealth 64 DRAM Vers. 2.09"
	0xC0045="Stealth 64 DRAM Vers. 1.14"
	0xC0045="Stealth SE DRAM Vers. 1.01"
	0xC0044="Phoenix S3 TRIO32 Enhanced VGA BIOS. Version 1.3-08-12-57MHz"
	0xC0044="Phoenix S3 TRIO64 Enhanced VGA BIOS. Version 1.3-08"
	0xC0044="Phoenix S3 TRIO64 Enhanced VGA BIOS. Version 1.00-06"
	0xC0044="Phoenix S3 TRIO64 Enhanced VGA BIOS. Version 1.2-07"
	0xC0044="Phoenix S3 TRIO64 Enhanced VGA BIOS. Version 1.5-07"
	0xC0044="Phoenix S3 TRIO64 Enhanced VGA BIOS. PCI Version 1.1"	# ishwar@pali.cps.umich.edu
	0xC0044="Phoenix S3 TRIO64V+ Enhanced VGA BIOS. Version 1."
	0xC0044="S3 86C325 Video BIOS. Version 1.00-05"
	0xC0094="#9-764 BIOS Version 1.02.00u"
	0xC0044="S3 86C765 Video BIOS"
	link=vga
	hwgc=s3hwgc
	ctlr=trio64 linear=1
	link=ibm8514
# does not work; did not work on mar 1 1999, jun 1 1999. -rsc
ctlr
	0xC0044="Stealth64 Video 2001"			# Trio64V+
	link=vga
	hwgc=s3hwgc
	ctlr=trio64
	link=ibm8514
ctlr
	0xC0048="Stealth 3D 2000 Vers. 1.03"
	0xC0043="Stealth 3D 2000 Vers. 1.04"
	0xC0048="Stealth 3D 2000 Vers. 2.03"
	0xC0047="Stealth 3D 2000 Pro Vers. 3.04"
	0xC0043="Stealth 3D 3000 Vers. 1.01"
	0xC0043="Stealth 3D 3000 Vers. 1.02"
	0xC0043="Stealth 3D 3000 Vers. 2.01"
	0xC0043="Stealth 3D 3000 Vers. 2.02"
	0xC004B="Stealth III S540"		# Savage4-based
	0xC0044="STB Velocity 3D BIOS. Version 1.10"	# STB Velocity 3D
	0xC00D8="#9-325 BIOS Version 2.18.08"		# #9FX Reality 332
	0xC001A="PNTNIBM VGA Compatible BIOS" 	# Hercules Terminator
	0xCBCBC="TOSHIBA Savage\MX BIOS Ver. 4.00.20 - 21" # Portégé 3440CT
	0xC0044="S3 86CM65 Video BIOS"		# Compaq Presario 3060 (Aurora64V+)
	link=vga
	hwgc=s3hwgc
	ctlr=virge linear=1

# These use some weird virge/gx2 that has a 202MHz clock instead of a 170MHz.
ctlr
	0xC00DF="#9-357 BIOS Version 4.10.05"		# #9FX Reality 334
	link=vga
	hwgc=s3hwgc
	ctlr=virge-202 linear=1
# This card, in addition to having a weird gx2 clock, has slow memory.
ctlr
	0xC0044="STB Powergraph 64 3D BIOS. Version 1.50"
	link=vga
	hwgc=s3hwgc
	ctlr=virge-202 linear=1
ctlr							# CL-GD542x
	0xC0039="CL-GD540"				# Cirrus Logic BIOS
	0xC0039="CL-GD5422"
	0xC0039="CL-GD542X VGA BIOS"			# NCR 3230
	0xE0039="CL-GD540x/542x VGA BIOS"		# NCR 3230
	0xC0039="CL-GD543x"
	0xC003B="SpeedStar PRO"				# Diamond SpeedStar Pro
	0xC0038="SpeedStar 64"				# Diamond SpeedStar 64
	0xC00F4="KELVIN 64"				# Orchid Kelvin 64
	0xC0039="CL-GD7543"				# notebook
	link=vga
	ctlr=clgd542x
	hwgc=clgd542xhwgc
ctlr
	0xC0039="CL-GD5436/46 PCI VGA BIOS Version 1.10" # CP5000M SBC
	0xC0039="CL-GD5436/46 PCI VGA BIOS Version 1.25" # Ziatech ZT 5512 SBC
	0xC0039="CL-GD5436/46 PCI VGA BIOS Version 1.20"
	0xC0039="CL-GD5446 PCI VGA BIOS Version 1.33"	 # CPV5000 SBC
	link=vga
	ctlr=clgd542x linear=1
	hwgc=clgd542xhwgc
ctlr
	0xC0039="CL-GD546x Laguna PCI VGA BIOS Version 1.71D" # ZT5550 SBC
	0xC0039="CL-GD546x Laguna PCI VGA BIOS Version 1.61a" # HP Kayak
	link=vga
	ctlr=clgd546x linear=1
	hwgc=clgd546xhwgc
ctlr
	0xC00DC="MACH64CTPCIU"				# ATI Graphics Xpression
	0xC00E7="MACH64GPPCIM"				# ATI xpert@work
	0xC00E7="MACH64GBPCIM"				# ATI xpert@work
	0xC00E7="MACH64GZPCIM"				# Rage IIC AGP
	0xC00E7="MACH64GVPCIM"				# Rage IIC PCI
	0xC00E6="MACH64GBPCIM"				# ATI xpert@work
	0xC00E0="MACH64GBPCIMTSGU"			# MS-6131 NLX mb
	0xC00E1="MACH64GBPCIMTSGU"			# MS-6131 NLX mb
	0xC00CA="MACH64GBPCIMTSGU"			# Dell Optiplex GX1
	0xC00EB="MACH64GPPCIMTSGU"			# ATI Xpert 98
	0xC00F7="MACH64LIPCIMTSDU"			# Xpert LCD PCI
	0xC00F7="MACH64LBPCIMTSGU"			# Xpert LCD AGP
	0xC00F8="MACH64LIPCIMTSDU"			# Xpert LCD PCI
	0xC00F6="MACH64LMPC"				# COMPAQ Armada E500
	0xC00E1="MACH64GTPCIUYMU"			# ATI Rage II PCI
	0xC0000-0xC0200="MACH64CT"			# generic entries
	0xC0000-0xC0200="MACH64GP"
	0xC0000-0xC0200="MACH64GB"
	0xC0000-0xC0200="MACH64GM"
	0xC0000-0xC0200="MACH64GZ"
	0xC0000-0xC0200="MACH64GV"
	0xC0000-0xC0200="MACH64LB"
	0xC0000-0xC0200="MACH64LP"
	0xC0000-0xC0200="MACH64LI"
	0xC0000-0xC0200="MACH64LM"
	0xC0000-0xC0200="MACH64VT"
	0xC0000-0xC0200="MACH64VV"
	link=vga
	ctlr=mach64xx linear=1
	hwgc=mach64xxhwgc
	membw=530
ctlr
	0xC00C9="MACH64GTPCIU"				# IBM Aptiva
	link=vga
	ctlr=mach64xx linear=1
	hwgc=mach64xxhwgc
	membw=530
ctlr
	0xC0083="Hercules Stingray 64(tm)"		# Stingray 64/Video
	link=vga
	clock=ch9294-g
	ramdac=w30c516-135
	ctlr=ark2000pv linear=1
	hwgc=ark2000pvhwgc
ctlr
	0xC0083="Stealth64 Graphics 2001"
	link=vga
	ramdac=ics534x-135
	ctlr=ark2000pv linear=1
	hwgc=ark2000pvhwgc
ctlr
	0xE0090="Chips 65540"				# Globalyst 250
	0xC008D="Chips 65540"				# Midwest Micro Elite
	link=vga
	ctlr=ct65540 linear=1
	hwgc=ct65545hwgc
ctlr
	0xC7345="TVGA BIOS  Z6.1I (0.02)"			# IBM Thinkpad 760ED (U9A)
	0xC7367="TVGA BIOS  Z6.1I (0.05) "		# IBM Thinkpad 560E
	0xC7845="TVGA BIOS WEN 6.1 (31)   "		# NEC Versa SX
	0xC7A97="TVGA BIOS WEN 6.1 (36)   "		# NEC Versa SX
	link=vga
	ctlr=cyber938x linear=1
	hwgc=cyber938xhwgc
ctlr
	0xC0090="CHIPS 65550 PCI & VL Accelerated VGA BIOS"	# NEC Versa 6030X/6200MX
	0xC0090="CHIPS 69000 PCI Accelerated VGA BIOS"	# Rackmount
	link=vga
	ctlr=hiqvideo linear=1
	hwgc=hiqvideohwgc
ctlr
	0xC002D="MATROX/MILLENNIUM  VGA/VBE BIOS (V1.9 )"	# Millennium
	0xC002D="MATROX/MILLENNIUM  VGA/VBE BIOS (V3.0 )"	# Millennium
	0xC002D="MATROX/MILLENNIUM  VGA/VBE BIOS (V2.5 )"	# Millennium
	0xC002D="MATROX/MISTRAL  VGA/VBE BIOS (V1."		# Millennium II
	link=vga
	ctlr=mga2164w linear=1
	hwgc=mga2164whwgc
ctlr
	0xC0048="MagicGraph 128XD"			# IBM Thinkpad 560X
	0xC0048="MagicMedia 256AV"			# IBM Thinkpad 600E
	0xC0048="MagicGraph 256 AV"			# IBM Thinkpad 570, 600E
	0xC0048="MagicMedia 256ZX"			# IBM Thinkpad 600X
	ctlr=neomagic linear=1
	hwgc=neomagichwgc
ctlr
	0xC0189="Hercules ISA Bus Dynamite(tm) BIOS. Ver. 8.00N-A2b(04/29/94)"
	link=vga
	clock=ics2494-304
	ramdac=att20c491-90				# really MUSIC MU9C4910
	ctlr=et4000-w32i
	hwgc=et4000hwgc
ctlr
	0xC0189="Hercules PCI Bus Dynamite(tm) BIOS. Ver. 8.00N-B1a(03/30/94)"
	link=vga
	clock=ics2494-324
	ramdac=stg1702-135
	ctlr=et4000-w32p
	hwgc=et4000hwgc
ctlr
	0xC0189="Hercules PCI Bus Dynamite(tm) BIOS. Ver. 8.00N-D2g(11/28/94)"
	0xC01AD="Ver. 8.00N-D2h(05/31/95)"
	0xC0076="Tseng Laboratories, Inc. 06/28/94 V1.0CN"# Cardex Challenger
	link=vga
	ramdac=ics534x-135
	ctlr=et4000-w32p
	hwgc=et4000hwgc

#
# mode:
# These entries specify a monitor operating mode.
# Attributes are:
#	clock		the dot clock in MHz
#	shb		start horizontal blanking
#	ehb		end horizontal blanking
#	ht		horizontal total
#	vrs		vertical refresh start
#	vre		vertical refresh end
#	vt		vertical total
#	hsync		horizontal sync polarity
#	vsync		vertical sync polarity
#	interlace	interlace
# The shb, ehb, ht, vrs, vre and vt attributes specify the horizontal and
# vertical timing. The x (hde, horizontal display end), y (vde, vertical
# display end) and z (depth) values are derived from the value of the main
# attribute (e.g. 640x480x8 -> x=640, y=480, z=8).
#
# The clock value 25.175 is known internally as the baseline VGA clock rate.
#
# The defaults for hsync, vsync and interlace are 0. Both hsync and vsync
# must be non-zero if either is to take effect, - and + are valid choices.
#
# An attribute 'include=val' means continue using another entry. In this
# case any non-zero attributes already set will not be overwritten by the
# jumped-to mode. The x, y and z values are fixed by the first mode.
#
# An attribute 'alias=val' means continue using another monitor type. It can
# be used to chain classes together. (bad explanation, i know).
#
include = 640x480					# 60Hz, 31.5KHz
	clock=25.175
	shb=664 ehb=760 ht=800
	vrs=491 vre=493 vt=525

include = 640x480@72Hz					# 72Hz, 38.5KHz
	clock=32
	shb=664 ehb=704 ht=832
	vrs=489 vre=492 vt=520

include = 800x600					# 60Hz, 37.9KHz
	defaultclock=40
	shb=840 ehb=1000 ht=1056
	vrs=605 vre=607 vt=633

include = 1024x768i					# 87Hz, 35.5KHz
	defaultclock=44.9
	shb=1048 ehb=1208 ht=1264
	vrs=776 vre=784 vt=817
	interlace=v

include = 1024x768@60Hz					# 60Hz, 48.4KHz
	defaultclock=65
	shb=1032 ehb=1176 ht=1344
	shs=1056
	vrs=771 vre=777 vt=806
	hsync=- vsync=-

include = 1024x768					# 70Hz, 57.2KHz
	defaultclock=75
	shb=1096 ehb=1232 ht=1328
	shs=1072
	vrs=771 vre=777 vt=806
	hsync=- vsync=-

include = 1280x1024i					# 87Hz, 48KHz
	defaultclock=80
	shb=1312 ehb=1528 ht=1576
	vrs=1028 vre=1034 vt=1105
	interlace=v

include = 1280x1024@60Hz				# 60Hz, 63.9KHz
	defaultclock=110
	shb=1312 ehb=1496 ht=1720			# All from xvidtune
	vrs=1025 vre=1028 vt=1074

include = 1280x1024					# 74Hz, 79.6KHz
	defaultclock=135
	shb=1376 ehb=1544 ht=1712
	shs=1392
	vrs=1028 vre=1034 vt=1075

include = 1376x1024					# 70Hz, 75.3KHz
	defaultclock=135
	shb=1440 ehb=1616 ht=1792
	vrs=1032 vre=1040 vt=1075

include = 1152x900@70Hz						# 72Hz, 67.9KHz
	clock=100
	shb=1184 ehb=1376 ht=1472
	vrs=900 vre=902 vt=940
	#hsync=- vsync=-

#
# VGA.
#
vga = 640x480							# 60Hz, 31.5KHz
	include=640x480
vga = 800x600							# 60Hz, 37.9KHz
	include=800x600

#
# SVGA (Laptop).
#
svga = 640x480
	include=640x480
svga = 800x600
	include=800x600

#
# XGA (Laptop).
#
xga = 1024x768
	include=1024x768
xga
	alias=svga

#
# LCD
# Just a convenience, really.
#
lcd
	alias=xga

#
# Multisync monitors with video bandwidth up to 65MHz.
#
multisync65
	videobw=65
	alias=multisync
multisync65 = 1024x768					# 60Hz, 48.4KHz
	include=1024x768@60Hz

#
# Multisync monitors with video bandwidth up to 75MHz.
#
multisync75
	videobw=75
	alias=multisync

#
# Multisync monitors with video bandwidth up to 110MHz.
#
multisync110
	videobw=110
	alias=multisync
multisync110 = 1280x1024
	include=1280x1024@60Hz

#
# Multisync monitors with video bandwidth up to 135MHz.
#
multisync135
	videobw=135
	alias=multisync

#
# Multisync monitors.  The entry with alias=multisync supplies the bandwidth,
# which in turn decides the refresh rates when possible.
#
multisync
	alias=vga
multisync = 1024x768
	include=1024x768
multisync = 1024x768i
	include=1024x768i
multisync = 1152x900
	include=1152x900@70Hz
multisync = 1280x1024
	include=1280x1024
multisync = 1280x1024i
	include=1280x1024i
multisync = 1376x1024
	include=1376x1024

#
# Dell VS17X
#
vs17x
	videobw=86
	alias=multisync
vs17x = 1024x768					# ??Hz, ??.?KHz
	defaultclock=86
	shb=1128 ehb=1232 ht=1328
	vrs=771 vre=777 vt=806
	hsync=- vsync=-

#
# Dell UltraScan 21TE (MODEL No. D2130T-HS)
# Horizontal timing:
#	Allowable frequency range: 30-93KHz
# Vertical timing:
#	Allowable frequency range: 50-152Hz
dell21te
	videobw=135
	alias=multisync				# this will do for now

#
# Hitachi CM751U
# Horizontal timing:
#	Allowable frequency range: 31-100 kHz
#		for 31-52,  fp>0.1µs, 1.0µs<sync width<3.8µs,
#			    bp>1.2µs, blank width>3.5µs
#		for 52-100, fp>0.1µs, 0.8µs<sync width<2.4µs,
#			    bp>1.1µs, blank width>2.4µs
# Vertical timing:
#	Allowable frequency range: 50-160Hz
#		fp>9µs, sync width<100µs, bp>400µs, blank width>450µs
# Video bandwidth:
#	200MHz monitor
#
cm751u
	videobw=200
	alias=multisync
cm751u = 1600x1200					# 75Hz, 93.75 kHz
	defaultclock=200
	shb=1664 ehb=1864 ht=2136
	vrs=1202 vre=1207 vt=1260

#
# Hitachi CM801U
# Horizontal timing:
#	Allowable frequency range: 31-96KHz
# Vertical timing:
#	Allowable frequency range: 50-160Hz
# Video bandwidth:
#	200MHz monitor
#
cm801u
	videobw=200
	alias=multisync
cm801u = 1600x1200						# 75Hz, 93.3KHz
	defaultclock=200
	shb=1792 ehb=1896 ht=2032
	shs=1680
	vrs=1202 vre=1205 vt=1232
cm801u = 1376x1024						# ??Hz, ??.?KHz
	defaultclock=150
	shb=1456 ehb=1616 ht=1864
	shs=1424
	vrs=1028 vre=1034 vt=1064

#
# IDEK 5421
#
mf5421
	videobw=135
	alias=multisync
mf5421 = 1376x1024						# 72Hz, 90.4KHz
	defaultclock=135
	shb=1544 ehb=1616 ht=1792
	vrs=1028 vre=1034 vt=1075

#
# IDEK Vision Master 17 (model no. MF-8617)
# Horizontal timing:
#	Allowable frequency range: 23.5-86.0KHz
# Vertical timing:
#	Allowable frequency range: 50-120Hz
# Video bandwidth:
#	135MHz
#
ms8617
	videobw=135
	alias=multisync

#
# IDEK Vision Master 21 (model no. MF-8221E)
# Horizontal timing:
#	Allowable frequency range: 24.8-94.0KHz
# Vertical timing:
#	Allowable frequency range: 50-160Hz
# Video bandwidth:
#	200MHz monitor
#
mf8221e
	videobw=200
	alias=sm17GLsi
mf8221e = 1600x1200					# 75Hz, 93.3KHz
	defaultclock=200
	shb=1664 ehb=2088 ht=2144
	shs=1648
	vrs=1202 vre=1208 vt=1240
mf8221e = 1376x1024					# ??Hz, ??.?KHz
	defaultclock=150
	shb=1456 ehb=1616 ht=1864
	shs=1424
	vrs=1028 vre=1034 vt=1064
pro502
	alias=mf8221e

#
# Micron 17FGx
# Horizontal timing:
#	Allowable frequency range: 30-64KHz
# Vertical timing:
#	Allowable frequency range: 50-100Hz
# Video bandwidth:
#	75MHz
#
micron-17FGx
	videobw=75
	alias=multisync
micron-17FGx = 1024x768
	defaultclock=75
	shb=1072 ehb=1232 ht=1296
	shs=1072
	vrs=771 vre=777 vt=806
	hsync=- vsync=-

#
# Nanao FlexScan 6500 (greyscale)
#
nanao6500
	videobw=135
	alias=multisync
nanao6500 = 1376x1024					# ??Hz, ??.?KHz
	defaultclock=135
	shb=1448 ehb=1616 ht=1760
	shs=1536
	vrs=1028 vre=1034 vt=1064

#
# NEC 4FG
# Horizontal timing:
#	Allowable frequency range: 27-57KHz
# Vertical timing:
#	Allowable frequency range: 55-90Hz
# Video bandwidth:
#	75MHz
#
nec4fg
	videobw=75
	alias=multisync

#
# NEC 5FG
# Horizontal timing:
#	Allowable frequency range: 27-79KHz
# Vertical timing:
#	Allowable frequency range: 55-90Hz
# Video bandwidth:
#	135MHz monitor
#	75MHz cable
#
nec5fg
	videobw=135
	alias=multisync
nec5fg = 1280x1024
	defaultclock=135
	shb=1352 ehb=1544 ht=1712
	shs=1328
	vrs=1028 vre=1034 vt=1075
nec5fg = 1024x768					# 70Hz, 57.2KHz
	defaultclock=75
	shb=1080 ehb=1232 ht=1328
	shs=1072
	vrs=771 vre=777 vt=806
	hsync=- vsync=-

#
# NEC Versa 6030X/6200MX Laptop.
# These use a C&T 65550 and a native panel size of 1024x768.
# The clock isn't actually programmed.
#
versa6xxx = 1024x768
	clock=63
	include=1024x768@60Hz
versa6xxx = 800x600
	clock=63
	include=800x600@60Hz
versa6xxx = 640x480
	clock=63
	include=640x480@60Hz

#
# NEC Versa LX Laptop, 13.3" 1024x768 screen.
#
versalx = 1024x768
	clock=65
	include=1024x768

# smaller modes require programming centering, which i don't have right yet. -rsc
# versalx = 800x600
# 	clock=15
# 	include=800x600
# versalx = 640x480
# 	clock=15
# 	shb=832 ehb=1264 ht=1344
# 	shs=872
# 	vrs=626 vre=664 vt=806
# 	hsync=- vsync=-

#
# Nokia Multigraph 445X
# Horizontal timing:
#	Allowable frequency range: 30-102KHz
#	Blanking time: <= 20% of line period min.
#	Back porch time: 0.6->1.0µs
# Vertical timing:
#	Allowable frequency range: 50-120Hz
#	Sync width time: 0.045ms min. between start of sync
#			 and start of video
# Video bandwidth:
#	200MHz
#
445x
	videobw=200
	alias=multisync
445x = 1280x1024					# 74Hz, 79.6KHz
	defaultclock=135
	shb=1352 ehb=1544 ht=1712
	shs=1392
	vrs=1028 vre=1034 vt=1075
445x = 1600x1200					# 72Hz, 90.4KHz
	defaultclock=200
	shb=1664 ehb=2088 ht=2208
	vrs=1202 vre=1208 vt=1256
445x = 640x480						# 72Hz, 38.5KHz
	defaultclock=32
	shb=664 ehb=760 ht=800
	vrs=491 vre=493 vt=525

#
# Panasonic E70i 17" monitor
# from aam396@mail.usask.ca
#
e70i
	videobw=135
	alias=multisync
e70i = 1280x1024
	defaultclock=110
	shb=1328 ehb=1520 ht=1712
	vrs=1025 vre=1028 vt=1054

#
#
# Sampo KDM-1788
# Horizontal timing:
#	Allowable frequency range: 30-82KHz
# Vertical timing:
#	Allowable frequency range: 50-120Hz
# Video bandwidth:
#	135MHz
#
kdm-1788
	videobw=135
	alias=multisync

#
# Samsung SyncMaster 17GLsi
# Horizontal timing:
#	Allowable frequency range: 30-85KHz
# Vertical timing:
#	Allowable frequency range: 50-120Hz
# Video bandwidth:
#	135MHz monitor
#
sm17GLsi
	videobw=135
	alias=multisync
sm17GLsi = 1280x1024					# 74Hz, 79.6KHz
	defaultclock=135
	shb=1344 ehb=1544 ht=1616
	shs=1304
	vrs=1028 vre=1034 vt=1064
sm17GLsi = 1024x768						# 70Hz, 57.2KHz
	defaultclock=75
	shb=1080 ehb=1232 ht=1328
	shs=1072
	vrs=771 vre=777 vt=806
	hsync=- vsync=-

#
# Sony CPD-1304
# Horizontal timing:
#	Allowable frequency range: 28-50KHz
# Vertical timing:
#	Allowable frequency range: 50-87Hz
#
cpd-1304
	videobw=65
	alias=multisync

#
# Viewsonic 17 (model no. 1782)
# Horizontal timing:
#	Allowable frequency range: 30.0-82.0KHz
#	Blanking time: 3.0µs min.
#	Back porch time: 1.25µs min.
#	Front porch time: length of back porch time or less
#	Sync width time: 1.2µs min.
# Vertical timing:
#	Allowable frequency range: 50.0-90.0Hz
#	Blanking time: 0.5ms min.
#	Back porch time: 0.5ms min.
#	Sync width time: 0.045ms min.
#
vs1782
	videobw=135
	alias=multisync135
vs1782 = 1280x1024
	defaultclock=135
	shb=1360 ehb=1544 ht=1632
	shs=1312
	vrs=1028 vre=1034 vt=1075

#
# Viewsonic G790
# Hacked from the VS1782 for now
#
g790
	videobw=135
	alias=multisync
g790 = 1280x1024
	defaultclock=135
	shb=1360 ehb=1544 ht=1632
	shs=1312 ehs=1542
	vrs=1028 vre=1034 vt=1075

#
# Viewsonic P815
#
p815
	videobw=220
	alias=multisync
p815 = 1800x1350					# 70Hz, xx.xKHz
	defaultclock=220
	shb=1872 ehb=2128 ht=2248
	shs=1824 ehs=1896
	vrs=1356 vre=1368 vt=1394
p815 = 1600x1200					# 75.4Hz, 93.5KHz
	defaultclock=200
	shb=1664 ehb=2088 ht=2144
	shs=1648
	vrs=1202 vre=1208 vt=1240
p815 = 1024x768
	clock=79
	include=1024x768
#
# SGI 1600SW Flat Panel
# Usually coupled with a #9 Ticket to Ride IV.
#
sgi1600sw = 1600x1024
	clock=103.125
	shb=1608 ehb=1624 ht=1632
	vrs=1024 vre=1029 vt=1030
	hsync=+ vsync=+
sgi1600sw = 800x512
	#clock=103.125
	clock=54.375
	shb=800 ehb=840 ht=848
	vrs=512 vre=514 vt=515
	zoom=1
	hsync=+ vsync=+
#
# Viewsonic VPD150
# Usually coupled with an ATI Xpert LCD PCI/AGP.
#
vpd150 = 1024x768
	clock=65.14
	shb=1096 ehb=1232 ht=1344
	shs=1064 ehs=1200
	vrs=770 vre=776 vt=806
	hsync=- vsync=-
vpd150 = 800x600
	clock=65.14
	include=800x600
vpd150 = 640x480
	clock=65.14
	include=640x480
#
# NEC Multisync LCD1525X
# Usually coupled with an ATI Xpert LCD PCI/AGP.
#
lcd1525x = 1024x768
	clock=78.82
	shb=1096 ehb=1232 ht=1344
	shs=1064 ehs=1200
	vrs=770 vre=776 vt=806
	hsync=- vsync=-
#
# COMPAQ Armada E500
# This uses an ATI Rage Mobility and a native panel size of 800x600.
# The clock value is a guess.
#
e500 = 800x600
	clock=40
	include=800x600
e500 = 640x480
	clock=40
	include=640x480

raptop = 1024x768
	clock=65
	include=1024x768

#
# Viglen VL700
#
vl700 = 1280x1024
	defaultclock=110
	shb=1328 ehb=1520 ht=1712
	vrs=1025 vre=1028 vt=1054

[-- Attachment #3: VGAINFO.TXT --]
[-- Type: text/plain, Size: 6605 bytes --]

main->snarf
vga->snarf
mach64xx->snarf
vga->dump
vga misc             67
vga feature          00
vga sequencer        03 00 03 00 02
vga crt              5F 4F 50 82 55 81 BF 1F - 00 4F 0D 0E 00 00 05 A0
                     9C 8E 8F 28 1F 96 B9 A3 - FF
vga graphics         00 00 00 00 00 10 0E 00 - FF
vga attribute        00 01 02 03 04 05 14 07 - 38 39 3A 3B 3C 3D 3E 3F
                     0C 00 0F 08 00
vga vm a b           16777216        0
vga vmz               2097152
vga apz               8388608
vga linear                  1
vga->attr: 0xC00C9=MACH64GTPCIU
mach64xx->dump
mach64xx pci 3d530 io ff00 pciregs
mach64xx ccru 300
mach64xx HTotalDisp          004F005F
mach64xx HSyncStrtWid        00010055
mach64xx VTotalDisp          018F01BF
mach64xx VSyncStrtWid        000E019C
mach64xx VlineCrntVline      00A103FF
mach64xx OffPitch            0A000000
mach64xx IntCntl             00000054
mach64xx CrtcGenCntl         024B0200
mach64xx OvrClr              00000000
mach64xx OvrWidLR            00000000
mach64xx OvrWidTB            00000000
mach64xx CurClr0             00000000
mach64xx CurClr1             00000000
mach64xx CurOffset           00000000
mach64xx CurHVposn           00000000
mach64xx CurHVoff            00000000
mach64xx ScratchReg0         08000400
mach64xx ScratchReg1         00000000
mach64xx ClockCntl           00000002
mach64xx BusCntl             600700F8
mach64xx MemCntl             08010222
mach64xx ExtMemCntl          00000000
mach64xx MemVgaWpSel         00010000
mach64xx MemVgaRpSel         00010000
mach64xx DacRegs             00FF0040
mach64xx DacCntl             85016008
mach64xx GenTestCntl         00000108
mach64xx ConfigCntl          00000302
mach64xx ConfigChipId        00005654
mach64xx ConfigStat0         0000005B
mach64xx ConfigStat1         00000000
mach64xx ConfigStat2         00000000
mach64xx DspConfig           00000000
mach64xx DspOnOff            00000000
mach64xx DpBkgdClr           FFFFFFFF
mach64xx DpChainMsk          FFFFFFFF
mach64xx DpFrgdClr           FFFFFFFF
mach64xx DpMix               FFFFFFFF
mach64xx DpPixWidth          FFFFFFFF
mach64xx DpSrc               FFFFFFFF
mach64xx DpWriteMsk          FFFFFFFF
mach64xx LcdIndex            00000000
mach64xx LcdData             00000000
mach64xx PLL         00 A0 2D 14 B6 0B FA 9E - B2 81 81 00 C0 00 00 00
                     00 A0 2D 14 B6 0B FA 9E - B2 81 81 00 C0 00 00 00
mach64xx VCLK0	25136360
mach64xx VCLK1	28318178
mach64xx VCLK2	10261362
mach64xx VCLK3	10261362

rom table offset DA
freq table offset 738
memclk 58000000
ref_freq 14320000
ref_divider 45
min_freq 10190000
max_freq 162900000
pd 2 value 0 (|2)
post = 4
mach64xx pixel clock = 25130000
ATI BIOS rom 0xda freq 0x0 clock 0x738
clocks: 43605 60224 23675 255 0 0 0 0 0 0 0 0 280 0 0 16969
programmable clock: 4
clock to program: 3
reference numerator: 14320
reference denominator: 1
internal clock
reference divider in plls
panelid 85 x 1 y 0

vmf 25175000 vmdf 0 vf1 0 vbw 75000000
vga->init
mach64xx->init
rom table offset DA
freq table offset 738
memclk 5800
memclk 5800... x 18.430983...t 18... xprec 5...fifosz 589.791460...fprec 10...prec 5...afifosz 32...fifooff 572.000000...pfc 4...rcc 6...fifoon 41.000000...
dbdumpmode
type=multisync75, size=640x480x8
frequency=25175000
x=640 (0x280), y=480 (0x1E0), z=8 (0x8)
ht=800 (0x320), shb=664 (0x298), ehb=760 (0x2F8)
shs=664 (0x298), ehs=760 (0x2F8)
vt=525 (0x20D), vrs=491 (0x1EB), vre=493 (0x1ED)
hsync=0, vsync=0, interlace=0
vga->dump
vga flag             Fdump|Finit|Fsnarf
vga misc             E3
vga feature          00
vga sequencer        03 01 0F 00 0A
vga crt              5F 4F 52 9F 53 1F20B 3E - 00 40 00 00 00 00 00 00
                    1EB 2D1DF 50 601EB1EC A3 -7FF
vga graphics         00 00 00 00 00 50 05 0F - FF
vga attribute        00 01 02 03 04 05 06 07 - 08 09 0A 0B 0C 0D 0E 0F
                     41 FF 0F 00 00
vga clock[0] f       25175000
vga clock[0] d i m          0        0       -       45
vga clock[0] n p q r      237        6       -        0        0
vga vm a b           16777216        0
vga vmz               2097152
vga apz               8388608
vga linear                  1
vga->attr: 0xC00C9=MACH64GTPCIU
mach64xx->dump
mach64xx flag        Ulinear|Uenhanced|Fdump|Finit|Fsnarf
mach64xx pci 3d530 io ff00 pciregs
mach64xx ccru 300
mach64xx HTotalDisp          004F0063
mach64xx HSyncStrtWid        000C0052
mach64xx VTotalDisp          01DF020C
mach64xx VSyncStrtWid        000201EA
mach64xx VlineCrntVline      00A103FF
mach64xx OffPitch            14000000
mach64xx IntCntl             00000000
mach64xx CrtcGenCntl         030B0200
mach64xx OvrClr              00000000
mach64xx OvrWidLR            00000000
mach64xx OvrWidTB            00000000
mach64xx CurClr0             00000000
mach64xx CurClr1             00000000
mach64xx CurOffset           00000000
mach64xx CurHVposn           00000000
mach64xx CurHVoff            00000000
mach64xx ScratchReg0         08000400
mach64xx ScratchReg1         00000000
mach64xx ClockCntl           00000002
mach64xx BusCntl             600700F8
mach64xx MemCntl             08010222
mach64xx ExtMemCntl          00000000
mach64xx MemVgaWpSel         00010000
mach64xx MemVgaRpSel         00010000
mach64xx DacRegs             00FF0040
mach64xx DacCntl             85016008
mach64xx GenTestCntl         00000108
mach64xx ConfigCntl          00000000
mach64xx ConfigChipId        00005654
mach64xx ConfigStat0         0000005B
mach64xx ConfigStat1         00000000
mach64xx ConfigStat2         00000000
mach64xx DspConfig           0058049B
mach64xx DspOnOff            00520478
mach64xx DpBkgdClr           FFFFFFFF
mach64xx DpChainMsk          FFFFFFFF
mach64xx DpFrgdClr           FFFFFFFF
mach64xx DpMix               FFFFFFFF
mach64xx DpPixWidth          00020202
mach64xx DpSrc               FFFFFFFF
mach64xx DpWriteMsk          FFFFFFFF
mach64xx LcdIndex            00000000
mach64xx LcdData             00000000
mach64xx PLL         00 A0 2D 14 B6 0B EA 9E - B2 ED 81 40 C0 00 00 00
                     00 A0 2D 14 B6 0B FA 9E - B2 81 81 00 C0 00 00 00
mach64xx VCLK0	25136360
mach64xx VCLK1	28318178
mach64xx VCLK2	25136360
mach64xx VCLK3	10261362

rom table offset DA
freq table offset 738
memclk 58000000
ref_freq 14320000
ref_divider 45
min_freq 10190000
max_freq 162900000
pd 2 value 0 (|2)
post = 4
mach64xx pixel clock = 25130000

main->exits

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2001-07-18  4:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-07-18  4:24 [9fans] stupid vga tricks forsyth
  -- strict thread matches above, loose matches on Subject: below --
2001-07-18  4:34 forsyth
2001-07-18  4:11 forsyth
2001-07-18  1:42 Fariborz 'Skip' Tavakkolian
2001-07-18  4:02 ` Martin Harriss

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).