* 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).