<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">
 
<article>
 
<title> Information for EPSON SPC8110 Users
<author> Thomas Mueller (tmueller@sysgo.de)
<date> October 15, 1998
<toc>
 
<sect> General Notes <p>

This server provides support for the Seiko/EPSON SPC8110F0A LCD VGA
controller chip.

The driver was developed and tested using an EPSON 486D4 CardPC
using CRT display mode. LCD operation was successfully tested
using an earlier release of this driver.

The current driver has support for linear mapping of the frame buffer,
supports the hardware cursor and uses the Bitblt engine for basic
operations such as CopyArea and solid fills.

<sect> <tt>XF86Config</tt> options <p>

The driver should be able to probe the presence of a SPC8110 chip. If
the driver fails to probe the chip correctly define the chip
explicitly in the screen section.

Device Section Entries and Options Currently Supported:

<descrip>
<tag/Chipset "spc8110"/

May be specified if probing fails or to accelerate server
startup. The value must be "spc8110".

<tag/VideoRam kilobytes/

If specified the value (in kilobytes) will be used, otherwise the
amount of memory will be probed on startup.

<tag/Option "sw_cursor"/

Disables the use of the hardware cursor. The hardware cursor
requires one Kbyte of video memory as pattern storage area. If
you need the full amount of video memory you may want to disable the
hardware cursor using this option. Also the hardware cursor code was
not tested with cursor images larger than 64 pixels (high or wide), so
if you use large images you may have to disable the hardware cursor.

<tag/Option "no_linear"/

Disables the use of the linear aperture. If this option is set the
driver will use the standard VGA memory window at 0xa0000 otherwise it
will map the whole video memory. 

<tag/Membase baseaddress/

In VLB/486LB configuration the linear aperture address will 
be set to 0x03E0.0000, in PCI configuration the address will be 
read from the PCI configuration space. The base address in VLB/486LB
systems may be set to any value using the "Membase" definition.

<tag/Option "noaccel"/

Disables the use of the Bitblt engine. Normally the driver
accelerates screen-to-screen copy operations and solid fills.

Since the SPC8110 puts certain restrictions on the use of the
Bitblt engine you will notice different performance between certain
operations (eg window movement). If this is a problem for your
application you may want to disable the accelerator. 

<tag/Option "fifo_moderate"/

<tag/Option "fifo_conservative"/

Usually the driver computes the FIFO threshold values for the
SPC8110's write buffer correctly. However for certain modes (eg the
832x624 mode shown below) the FIFO is programmed too aggressively which
leads to streaks in the display during screen updates. With option
"fifo_moderate" the computed FIFO low  request level is incremented by
one with "fifo_conservative" it is incremented by two.
</descrip>

<sect> Video modes <p>

The driver probes wether the chip is configured for CRT only or
LCD/simultaneous mode of operation. In the former case it will
enable clock programming and will support any mode which is
within the limits of the hardware. If the chip is configured for
LCD/simultaneous operation mode the driver will respect the
settings of the BIOS and allow only one video mode conforming
with the panel size.

The driver does not support interlaced or double scan modes.

<sect1> Clocks <p>

Probing is supported, but of course the usual warnings and
disclaimers apply. Probing may momentarily subject your
monitor/panel to sweep frequencies in excess of its rating.  The
cautious may wish to turn off the monitor while the probe is
running. In CRT mode the driver may produce video timings
inadequate for your monitor, handle with care!

As with many integrated designs the speed of the graphics operations
depend very much of the refresh rate you use. Higher refresh rates
yield lower performance.

<sect1> Example Modes <p>

The following XF86Config "Device" section should work for all
configurations:

<verb>
  Section "Device"
      Identifier "CardPC"
      VendorName "EPSON"
      BoardName  "CardPC"
      Chipset    "spc8110"
      Option    "sw_cursor"
      Membase   0x03e00000
      Option    "no_linear"
      Option    "noaccel"
      Option    "fifo_moderate"
  EndSection
</verb>

This Modeline was tested in a 640x480 panel configuration:
<verb>
  Modeline "640x480" 28.36   640 672 768 800  480 490 492 525
</verb>


These Modelines were tested in a CRT configuration:
<verb>
  Modeline "640x480" 25.175  640 664  760  800  480 491 493 525
  Modeline "800x600" 36      800 824  896 1024  600 601 603 625
  ModeLine "832x624" 40      832 873 1001 1090  624 625 627 651
  Modeline "640x400" 25.175  640 664  760  800  400 409 411 450
</verb>



<sect> Acknowledgments <p>

Thanks to Epson Europe Electronics and ProBIT GmbH, Berlin for providing a 
loaner system and documentation to get things started.

<verb>
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/epson.sgml,v 1.1.2.3 1998/11/13 13:00:46 dawes Exp $
</verb>

</article>
