<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">
 
<article>

<!-- Title information -->
<title> Information for ARK Logic Chipset Users
<author> Harm Hanemaayer (<it>H.Hanemaayer@inter.nl.net</it>)
<date> 17 January 1997

<!-- Table of contents -->
<toc>

<sect> Supported chipsets <p>

The "ark" driver in the SVGA server is for ARK Logic graphics chipsets.
The following chipsets are supported:
<descrip>
<tag>ARK1000PV (ark1000pv)</tag>
	Chipset with 32-bit DRAM interface, supports fast DRAM timing,
	for VESA and PCI bus. Has powerful "coprocessor" for graphics
	acceleration.
	The max supported resolution/refresh depends on the RAMDAC
	used on the card; expect 256 colors up to 80 or 110 MHz dot clock;
	16bpp is also supported, as is 24bpp (packed).
<tag>ARK1000VL (ark1000vl)</tag>
	Older chip, VLB only. More or less compatible with ARK1000PV.
        It has is not been tested. You may have to disable acceleration
        and linear addressing.
<tag>ARK2000PV (ark2000pv)</tag>
	64-bit version of the ARK1000PV. Note that an ARK2000PV equipped
	with 1Mb of DRAM is about equivalent to the same card with an
	ARK1000PV chip; 2Mb is required for 64-bit operation. Again
	the RAMDAC used on the card determines the max supported dot
	clocks. At 8bpp, multiplexing over a 16-bit RAMDAC path is not
	yet supported so expect dot clocks up to 110 MHz; 16bpp and 32bpp
	are supported, as well as experimental packed 24bpp, depending
	on the RAMDAC.
<tag>ARK2000MT (ark2000mt)</tag>
	This is a newer chip, compatible with the AR2000PV.
	
</descrip>

The ARK2000MI is not yet supported.

The chipset may not be detected automatically. In this case use a line
like <tt>Chipset "ark1000pv"</tt> in the <tt>Device</tt> section of
the XF86Config file. Any options must also be specified in this section.


<sect> Supported RAMDACs <p>

If no RAMDAC is specified, a standard RAMDAC supporting 256 colors up
to 80 MHz dot clock frequency is assumed. The following RAMDAC types
can be specified in the Device section of the XF86Config file (e.g.
<tt>Ramdac "att20c490"</tt>):
<descrip>
<tag>att20c490</tag>
	Industry-standard 8-bit RAMDAC. The RAMDAC used
	on the basic Hercules Stingray Pro is compatible. 16bpp color
	depth is supported up to 40 or 55 MHz, depending on the DAC
	speed rating. Packed 24bpp is supported up to about 36 MHz.
<tag>att20c498</tag>
	Industry-standard 16-bit RAMDAC. The RAMDAC used
	on the Hercules Stingray Pro/V and the Stingray 64/V is
	compatible. 16bpp is supported up to 80 MHz or 110 MHz dot clock
	frequency, 32bpp is supported up to 40 or 55 MHz.
<tag>zoomdac</tag>
	This is the actual DAC used by the Hercules Stingray Pro/V and 64/V.
	It is treated mostly as an ATT20C498, but with dot clock limits
	set correctly (16bpp up to 55 MHz with ARK1000PV, up to at least
	110 MHz with ARK2000PV). In addition, packed 24bpp is supported
	(up to 36 MHz with ARK1000PV, not yet on the ARK2000PV),
	and 32bpp is also supported on the ARK2000PV (up to 55 MHz)
	This RAMDAC should be auto-detected.
<tag>stg1700</tag>
	Completely untested.
<tag>ics5342</tag>
	This is a clockchip/RAMDAC combination and is used on the Diamond
	Stealth 64 Graphics 2001 and newer Hercules cards that use the
	ARK2000MT. It is supported at 16bpp and 32bpp in addition to 256
	color mode. 32bpp mode may not work.
</descrip>
The Dacspeed keyword can be used to indicate the speed rating of the RAMDAC,
but it must be used with care. The raw clock frequency may exceed 80 MHz.
Both the ARK chips and some of the RAMDACs are specified for raw speeds up
to 120 MHz, but this might violate FCC regulations or otherwise be unstable.
High dot clock 8bpp modes (e.g. 135 MHz) are normally achieved by
sending 2 pixels at at time over a 16-bit DAC path (the raw clock would be
67.5 MHz for 135 MHz dot clock), a mode of operation that is not yet
supported by this driver. No high-dot clock configurations
have been tested.

The driver now limits the maximum dot clocks according to the DRAM speed
(bandwidth). Because it is not possible to determine the memory clock
speed (except on the ICS5342), the driver assumes a default of 60 MHz.
On an ARK1000PV, that allows 8bpp up to 109 MHz, 16bpp up to 55 MHz,
24bpp up to 36 MHz, and 32bpp up to 27 MHz. On an ARK2000PV with 2MB
memory, it allows 16bpp up to 110 MHz, 24bpp up to 72 MHz, and 32bpp up
to 55 MHz. If you know what your real memory clock is, you can specify
it with the <tt>MCLK</tt> keyword, for example <tt>MCLK 70</tt>.

To run <tt>XF86_SVGA</tt> at 16 bpp, pass options to the X server as
follows:
<verb>
startx -- -bpp 16               5-6-5 RGB ('64K color', XGA)
startx -- -bpp 16 -weight 555   5-5-5 RGB ('Hicolor')
startx -- -bpp 24		8-8-8 RGB (packed 24-bit truecolor)
startx -- -bpp 32		8-8-8 RGB (32-bit pixel truecolor)
</verb>

<sect> Acceleration <p>

The driver takes full advantage of the new XAA (XFree86 Acceleration
Architecture) in the SVGA server. In fact the ARK driver was the
initial XAA development platform. Most common graphics operations are
accelerated, including most types of rectangular and non-rectangular
filling, screen-to-screen BitBLTs, line drawing, and text and bitmap
expansion. Expect over 300k xstones on a 2MB ARK2000PV/MT.

At 24bpp, acceleration is less complete, but curiously, greyscale colors
permit faster drawing. If you suspect a problem with acceleration, use
the "noaccel" option. If text or bitmaps do not seem to be rendered
correctly, you could try the "xaa_no_col_exp" option. To disable the
pixmap cache, use "no_pixmap_cache".

The hardware cursor is disabled by default. With unmodified mode timings,
there used to be two horizontal lines and a band following the mouse
pointer over the screen. The driver now automatically modifies the
mode timing to eliminate this effect; this has not been tested on
all possible configurations. Use the "hw_cursor" option to enable the
hardware cursor.

Linear addressing is the default mode of operation. If the server
does not start correctly, you may want to try the "no_linear" option.

The older ARK1000VL is probably not compatible with acceleration. Use
the "noaccel" and "no_linear" options.

<sect> Basic configuration <p>

It is recommended that you generate an XF86Config file using the
`<tt>XF86Setup</tt>' or `<tt>xf86config</tt>' programs, which should
produce a working
high-resolution 8bpp configuration, although the modelines might need
reshuffling for optimal screen refresh. You may want to include mode
timings in the <tt>Monitor</tt> section that better fit your monitor
(e.g. 1152x864 modes).

In order to prevent stress on your monitor, it is recommended that you
turn off your monitor during clock probing (X -probeonly), which also
happens if you start the server with no Clocks line present in the
Device section of the XF86Config. The following Clocks line can be used
for the Hercules Stingray Pro, Pro/V and older 64/V using an ARK Logic
clock generator (so there's no need to probe clocks for this card, just
insert the following line in the Device section of the XF86Config
file):

<verb>
    Clocks 25.175 28.3 40 72 50 77 36 44.9
    Clocks 128.43 118.8 80 31.5 110 63.96 74.19 95
</verb>
    The higher frequencies have not been tested, there might be a
    mismatch in the 60-80 MHz range.

<sect> Features that may be expected in upcoming beta releases <p>

<itemize>
<item>
	Support for high dot clocks (>80 MHz, up to 135 MHz) at 8bpp by
	sending two pixels at a time over a 16-bit RAMDAC path on an
	ARK2000PV/MT with supported RAMDAC.
<item>
	Support for packed-24bpp mode up to 72 MHz on an ARK2000PV
	with ZoomDAC.
<item>
	The acceleration may be further optimized and stabilized.
<item>
	Existing problems may be fixed.
<item>
	Support for the ARK2000MI, if it materializes.
</itemize>

<sect> Tested configurations. <p>

<descrip>
<tag>Hercules Stringray Pro (ARK1000PV + ATT20C490-compatible RAMDAC)</tag>
	Supported at 8bpp, 16bpp and 24bpp. Fixed set of clocks.
	There seems to be a restriction to the mode timings at 24bpp;
	the last horizontal number (HTotal) must be divisible by 4 but
	not by 8. If the modeline is wrong, the colors would
	be incorrect. The driver automatically corrects the mode timing.

<tag>Hercules Stingray Pro/V (ARK1000PV + IC Works ZoomDAC)</tag>
	Supported at 8bpp, 16bpp and 24bpp. Fixed set of clocks.
	The same restrictions above exist for the 24bpp mode. Problems
	with textmode restoration have been reported on some OS's.

<tag>Hercules Stingray 64/V (ARK2000PV + IC Works ZoomDAC)</tag>
	Supported at 8bpp, 16bpp and 32bpp. Fixed set of clocks.
	Problems with textmode restoration have been reported on
        some OS's.

<tag>Hercules Stingray 64 with ARK2000MT + ICS5342 Clockchip/RAMDAC</tag>
	This may also apply to other cards with the ICS5342, such as
	the Diamond Stealth 64 Graphics 2001. Use RAMDAC "ics5342".
	Programmable clockchip (don't specify any Clocks lines).
	Supported at 8bpp, 16bpp and 32bpp. 32bpp has been reported not
	to work. This configuration has not been tested with a post-3.2
        server.

</descrip>

If are having driver-related problems that are not addressed by this document,
you can try contacting the XFree86 team (the current driver maintainer
can be reached at <htmlurl name="H.Hanemaayer@inter.nl.net"
url="mailto:H.Hanemaayer@inter.nl.net">), or post in the Usenet
newsgroup <htmlurl name="comp.windows.x.i386unix"
url="news:comp.windows.x.i386unix">.

In fact, reports (success or failure) are very welcome, especially
on configurations that have not been tested. You can do this via the
<url name="bug report form" url="http://www.xfree86.org/cgi-bin/bugform.cgi">
(or send mail to <htmlurl name="XFree86@XFree86.org"
url="mailto:XFree86@XFree86.org">). You may want to
keep an eye on forthcoming beta releases at the <url name="XFree86 web site"
url="http://www.xfree86.org">.


<verb>
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/ark.sgml,v 3.9 1997/01/25 03:22:20 dawes Exp $





$XConsortium: ark.sgml /main/6 1996/10/28 05:24:04 kaleb $
</verb>

</article>
