Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
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 <>
       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  sv-
       galib(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 An-
       gelo 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 inca-
       pable 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 ma-
       chine  or a 65550/54 machine then I am particularly interested in hear-
       ing 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 be-
	      low if you wish to override these.

       chipset C&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 ex-
	      ist 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 in-
	      stalled 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 ma-
	      chines 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  in-
	      stance a Center DISABLE might follow a Center ENABLE in the con-
	      fig 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&T 3 2048
	      Use 65535	for a 64200 assuming 2M	of video ram, or

       chipset C&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  re-
       stored and what is being	done with the synchronous reset	while the reg-
       isters 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->.  However, it was slightly reformatted  by  Michael
       Weller <>.

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


Want to link to this manual page? Use this URL:

home | help