Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (Debian-5.0)
Apropos / Subsearch:
optional field

svgalib.chips(7)              Svgalib User Manual             svgalib.chips(7)

       svgalib.chips - Information for Chips and Technologies Users

       Information for Chips and Technologies Users
       David Bateman <dbatemanATeng.au>
       23nd May 1997

       0. Introduction
       1. "libvga.config" options
       2. Unsupported Chips and Technologies chipsets
       3. Known bugs

       This  is  the  really only my first attempt to get a working fully fea-
       tured driver for the  Chips  and  Technologies  chipset  to  work  with
       svgalib(7).  As such the only machine that I know it will work on is my
       own. If you use this software then at this point I'm still very  inter-
       ested  in  hearing  from  you  by  e-mail. Include full details of your
       chipset, amount of videoram and whether you have a VL-Bus  or  PCI  bus

       This  server  was  written  using  the svgalib(7) patch from Sergio and
       Angelo Masci as a starting point. This version of  the  code  resembled
       the  XFree  server code that was used up to XFree 3.1.2. As such it was
       incapable of programming the clocks, using linear addressing, Hi-Color,
       True-Color  modes  or  the hardware acceleration. All of these features
       have since been added to the code. In addition support for  the  65525,
       65535,  65546, 65548, 65550 and 65554 have been included. The 64200 and
       64300 chips are unsupported, however these chips are  very  similar  to
       the 6554x chips which are supported.

       At  this point this code is only confirmed to work correctly on a 65545
       VL-Bus machine. However as much of the code was stolen from my  experi-
       ences  with writing code for XFree I hope not to have too many problems
       with other machines. However if you run this code  on  a  65545/48  PCI
       machine  or  a  65550/54  machine  then I am particularly interested in
       hearing of any success or failure stories.

1. "libvga.config" OPTIONS
       The first thing to note is that the option parser for svgalib(7) is not
       very  robust. Hence if you make some typing mistakes, you can have some
       very strange effects. I've set out below the  libvga.config(5)  options
       that  are  of particular interest to Chips and Technologies users. Nor-
       mally this configuration file can be found at /etc/vga/libvga.config.

       HorizSync MIN MAX
              Often LCD panels has very different specifications for the hori-
              zontal  sync than CRT's do. Hence often you'll need this option,
              particularly if you are using the XFree like modelines described
              below.  The  two  floating  point numbers specified will set the
              minimum and maximum allowed horizontal sync in kHz.

       VertRefresh MIN MAX
              Similar to the above, but this sets the LCD  or  CRT's  vertical
              refresh rate in Hz.

       modeline 640x480 20.00 640 688 704 776 480 480 481 486
              This option allows you to specify XFree like modelines to use in
              preference to the in built modelines. Often LCD panels will need
              very  different  pixel clocks and timings than CRT's. Hence this
              option allows you to specify these. Note that the LCD panel tim-
              ings  are  related  to  the  panel  size  and not the mode size.
              Therefore by default the BIOS setting already uploaded into  the
              registers  are  used  by  default.  See the "UseModeline" option
              below if you wish to override these.

       chipset C&&amp;T 5 1024
              These option allows the user to specify the chipset to  use  and
              the  amount  of  installed memory in kBytes. Currently supported
              chipsets are

                           0    65520
                           1    65525
                           2    65530
                           3    65535
                           4    65540
                           5    65545
                           6    65546
                           7    65548
                           8    65550
                           9    65554

       TextClockFreq 25.175
              One major difference between this code and the previously avail-
              able  support for the Chips and Technologies chipsets is that it
              supports the use of programmable clocks. Because of the way that
              the Chips and Technologies chips program the VCO from the regis-
              ters, there is no way to be sure to recover the previously  pro-
              grammed  clock value.  Hence the driver assumes that the console
              clock is 25.175MHz. This will be wrong for many  machines.  How-
              ever  I  have supplied this option to use a different value that
              might be more suitable for your machine.

              This option disables the use of  the  linear  framebuffer.  This
              might  be  useful  for  machines  that have broken linear frame-

       linear Allow, but don't enforce the use of the linear  framebuffer.  As
              this is the default anyway, I don't see that this option is much

       setuplinear 0xC0000000
              For VL-Bus machines I expect that the linear framebuffer  start-
              ing address will be setup correctly. However to get the starting
              address for PCI machines requires access to the MEMBASE register
              in  the  PCI  address  space.  Code to do this doesn't currently
              exist with svgalib(7), and so I've taken the easy option of just
              testing  a  few  known PCI starting addresses. For now these are
              just 0xFE000000, 0xFD000000, 0x41000000 and 0xC0000000.  If  you
              have  a  different  starting address then the linear framebuffer
              will be unusable. You might like to report your starting address
              to  me  so  that  I can include it in the probing code, but till
              then this option can be used to set up the correct address. This
              option  just forces the given address to be the only one probed.
              It doesn't force the linear framebuffer to be used.

       LCDPanelSize 800 600
              For some machines the LCD panel size is incorrectly probed  from
              the  registers.  This  option forces the LCD panel size to be as
              specified. If you have a black band down one side  of  your  LCD
              display  you  might  very well need this option. Also if you are
              using the option "fix_panel_size" in XFree then this option  has
              a  similar  effect.  This option can be used in conjunction with
              the option "UseModeline" to program all the panel timings  using
              the  modeline  values.  Two machines that are known to need this
              option are the HP  Omnibook  5000CTS  and  the  NEC  Versa  4080
              800x600 TFT machines.

              The flat panel timings are related to the panel size and not the
              size of the mode specified. For this reason the  default  behav-
              iour  of  the  svgalib(7)  is  to  use the panel timings already
              installed in the chip. The user can force the panel  timings  to
              be  recalculated from the modeline with this option. However the
              panel size will still be probed. Two machines that are known  to
              need  this  option  are  the HP Omnibook 5000CTS and the Prostar
              8200. You are advised to check the README.chips that  come  with
              XFree for more details.

              This  option  disables  the use of H/W acceleration. As far as I
              know the only thing that currently uses the H/W acceleration  is
              libvgagl,  so this might not be a problem anyway. However if you
              see corruption of the graphics on the screen try this option and
              see if it goes away.

              For 24bpp on TFT screens, the server assumes that a 24bit bus is
              being used. This can result in a reddish tint to 24bpp mode  for
              machines  that  actually have a 18 bit bus. This option, selects
              an 18 bit TFT bus. Note that using this option with a 24 bit bus
              machine  will  similarly  discolour the screen. For other depths
              this option has no effect.

              The default behaviour of svgalib(7) is to leave  the  stretching
              and  centring  registers  completely  alone.  However  for  some
              machines this might result in poorly placed modes, or modes that
              don't  fill  the  whole screen. These two options can be used to
              centre and stretch  the  mode  on  the  screen.  Note  that  for
              instance  a  Center  DISABLE might follow a Center ENABLE in the
              config file. Only the last option takes effect.

       The 64200 and 64300 chips are unsupported. However  by  specifying  the
       chipset in your libvga.config as either a

       chipset C&&amp;T 3 2048
              Use 65535 for a 64200 assuming 2M of video ram, or

       chipset C&&amp;T 7 2048
              Use 65548 for a 64300 assuming 2Mb of video ram

       then  svgalib  can  be  made to give limited support to these chipsets.
       Note that the paged addressing mode of the 65548 chip and  earlier  can
       only  address upto 1Mb of video ram. If the additional memory is needed
       then linear addressing must be used!! Note that support  of  the  64xxx
       chips  has  not  been tested at all, and the above is just a suggestion
       that I believe will work.

       One persistent and annoying bug is that the text mode stretching on LCD
       displays is not always restored correctly for 65550 and 65554 machines.
       This is to do with the manner  in  which  the  extended  registers  are
       restored  and  what  is being done with the synchronous reset while the
       registers are restored. As I don't have a 65550 or 65554 machine of  my
       own on which to test this code, I have been unable to fix this problem.
       In most circumstances an LCD-CRT switch will restore the LCD stretching
       to the desired state.



       svgalib(7), libvga.config(5).

       of   the  driver  and  this  documentation  is  David  Bateman  <dbate-
       manATeng.au>.  However, it was slightly reformatted  by  Michael
       Weller <eowmobATexp-math.de>.

Svgalib (>= 1.2.11)              31 July 1997                 svgalib.chips(7)