Home | History | Annotate | Line # | Download | only in dist
README revision 1.1.1.3
      1      1.1  mrg   Information for Chips and Technologies Users
      2  1.1.1.2  mrg   David Bateman ( <mailto:dbateman (a] club-internet.fr>), Egbert
      3  1.1.1.2  mrg   Eich ( <mailto:eich (a] freedesktop.org>)
      4      1.1  mrg   1st January 2001
      5      1.1  mrg   ____________________________________________________________
      6      1.1  mrg 
      7      1.1  mrg   Table of Contents
      8      1.1  mrg 
      9      1.1  mrg 
     10      1.1  mrg   1. Introduction
     11      1.1  mrg   2. Supported Chips
     12      1.1  mrg      2.1 Basic architecture
     13      1.1  mrg      2.2 WinGine architecture
     14      1.1  mrg      2.3 HiQV Architecture
     15      1.1  mrg 
     16      1.1  mrg   3. xorg.conf Options
     17      1.1  mrg   4. Modelines
     18      1.1  mrg   5. Dual Display Channel
     19      1.1  mrg   6. The Full Story on Clock Limitations
     20      1.1  mrg   7. Troubleshooting
     21      1.1  mrg   8. Disclaimer
     22      1.1  mrg   9. Acknowledgement
     23      1.1  mrg   10. Authors
     24      1.1  mrg 
     25      1.1  mrg 
     26      1.1  mrg   ______________________________________________________________________
     27      1.1  mrg 
     28  1.1.1.2  mrg   1.  Introduction
     29      1.1  mrg 
     30      1.1  mrg 
     31  1.1.1.2  mrg   The Chips and Technologies driver release in X11R7.5 came from XFree86
     32      1.1  mrg   4.4 rc2; this document was originally included in that release and has
     33  1.1.1.2  mrg   been updated modestly to reflect differences between X11R7.5 and
     34      1.1  mrg   XFree86 4.4 rc2.
     35      1.1  mrg 
     36      1.1  mrg   With the release of XFree86 version 4.0, the Chips and Technologies
     37      1.1  mrg   driver has been extensively rewritten and contains many new features.
     38      1.1  mrg   This driver must be considered work in progress, and those users
     39      1.1  mrg   wanting stability are encouraged to use the older XFree86 3.3.x
     40      1.1  mrg   versions. However this version of the Chips and Technologies driver
     41      1.1  mrg   has many new features and bug fixes that might make users prefer to
     42      1.1  mrg   use this version. These features include
     43      1.1  mrg 
     44      1.1  mrg 
     45  1.1.1.2  mrg   o  The long standing black/blue screen problem that some people have
     46      1.1  mrg      had should be fixed.
     47      1.1  mrg 
     48  1.1.1.2  mrg   o  Hardware/Software cursor switching on the fly, that should fix many
     49      1.1  mrg      of the known hardware cursor problems.
     50      1.1  mrg 
     51  1.1.1.2  mrg   o  Gamma correction at all depths and DirectColor visuals for depths
     52      1.1  mrg      of 15 or greater with the HiQV series of chipsets.
     53      1.1  mrg 
     54  1.1.1.2  mrg   o  Supports PseudoColor overlays on 16bpp TrueColor screens for HiQV.
     55      1.1  mrg 
     56  1.1.1.2  mrg   o  Supports YUV colour space conversion with the XVideo extension.
     57      1.1  mrg 
     58  1.1.1.2  mrg   o  32bpp pixmaps while using a framebuffer in 24bpp packed pixel mode.
     59      1.1  mrg 
     60  1.1.1.2  mrg   o  Heaps more acceleration.
     61      1.1  mrg 
     62  1.1.1.2  mrg   o  1/4bpp support.
     63      1.1  mrg 
     64  1.1.1.2  mrg   o  Multihead
     65      1.1  mrg 
     66      1.1  mrg 
     67  1.1.1.2  mrg   o  Much more...
     68      1.1  mrg 
     69      1.1  mrg   This document attempts to discuss the features of this driver, the
     70      1.1  mrg   options useful in configuring it and the known problems. Most of the
     71      1.1  mrg   Chips and Technologies chipsets are supported by this driver to some
     72      1.1  mrg   degree.
     73      1.1  mrg 
     74      1.1  mrg 
     75  1.1.1.2  mrg   2.  Supported Chips
     76      1.1  mrg 
     77      1.1  mrg 
     78      1.1  mrg   The Chips and Technologies chipsets supported by this driver have one
     79      1.1  mrg   of three basic architectures. A basic architecture, the WinGine
     80      1.1  mrg   architecture which is a modification on this basic architecture and a
     81      1.1  mrg   completely new HiQV architecture.
     82      1.1  mrg 
     83      1.1  mrg 
     84  1.1.1.2  mrg   2.1.  Basic architecture
     85      1.1  mrg 
     86      1.1  mrg 
     87  1.1.1.2  mrg      ct65520
     88      1.1  mrg         (Max Ram: 1Mb, Max Dclk: 68MHz@5V)
     89      1.1  mrg 
     90  1.1.1.2  mrg      ct65525
     91      1.1  mrg         This chip is basically identical to the 65530. It has the same
     92      1.1  mrg         ID and is identified as a 65530 when probed. See ct65530 for
     93      1.1  mrg         details.
     94      1.1  mrg 
     95  1.1.1.2  mrg      ct65530
     96      1.1  mrg         This is a very similar chip to the 65520. However it
     97      1.1  mrg         additionally has the ability for mixed 5V and 3.3V operation and
     98      1.1  mrg         linear addressing of the video memory.  (Max Ram: 1Mb, Max Dclk:
     99      1.1  mrg         56MHz (a] 3.3V, 68MHz@5V)
    100      1.1  mrg 
    101  1.1.1.2  mrg      ct65535
    102      1.1  mrg         This is the first chip of the ct655xx series to support fully
    103      1.1  mrg         programmable clocks. Otherwise it has the the same properties as
    104      1.1  mrg         the 65530.
    105      1.1  mrg 
    106  1.1.1.2  mrg      ct65540
    107      1.1  mrg         This is the first version of the of the ct655xx that was capable
    108      1.1  mrg         of supporting Hi-Color and True-Color. It also includes a fully
    109      1.1  mrg         programmable dot clock and supports all types of flat panels.
    110      1.1  mrg         (Max Ram: 1Mb, Max Dclk: 56MHz (a] 3.3V, 68MHz@5V)
    111      1.1  mrg 
    112  1.1.1.2  mrg      ct65545
    113      1.1  mrg         The chip is very similar to the 65540, with the addition of H/W
    114      1.1  mrg         cursor, pop-menu acceleration, BitBLT and support of PCI Buses.
    115      1.1  mrg         PCI version also allow all the BitBLT and H/W cursor registers
    116      1.1  mrg         to be memory mapped 2Mb above the Base Address.  (Max Ram: 1Mb,
    117      1.1  mrg         Max Dclk: 56MHz (a] 3.3V,68MHz@5V)
    118      1.1  mrg 
    119  1.1.1.2  mrg      ct65546
    120      1.1  mrg         This chip is specially manufactured for Toshiba, and so
    121      1.1  mrg         documentation is not widely available. It is believed that this
    122      1.1  mrg         is really just a 65545 with a higher maximum dot-clock of 80MHz.
    123      1.1  mrg         (Max Ram: 1Mb?, Max Dclk: 80MHz?)
    124      1.1  mrg 
    125  1.1.1.2  mrg      ct65548
    126      1.1  mrg         This chip is similar to the 65545, but it also includes XRAM
    127      1.1  mrg         support and supports the higher dot clocks of the 65546.  (Max
    128      1.1  mrg         Ram: 1Mb, Max Dclk: 80MHz)
    129      1.1  mrg 
    130      1.1  mrg 
    131      1.1  mrg 
    132  1.1.1.2  mrg   2.2.  WinGine architecture
    133      1.1  mrg 
    134      1.1  mrg 
    135  1.1.1.2  mrg      ct64200
    136      1.1  mrg         This chip, also known as the WinGine, is used in video cards for
    137      1.1  mrg         desktop systems. It often uses external DAC's and programmable
    138      1.1  mrg         clock chips to supply additional functionally. None of these are
    139      1.1  mrg         currently supported within the driver itself, so many cards will
    140      1.1  mrg         only have limited support. Linear addressing is not supported
    141      1.1  mrg         for this card in the driver.  (Max Ram: 2Mb, Max Dclk: 80MHz)
    142      1.1  mrg 
    143  1.1.1.2  mrg      ct64300
    144      1.1  mrg         This is a more advanced version of the WinGine chip, with
    145      1.1  mrg         specification very similar to the 6554x series of chips. However
    146      1.1  mrg         there are many differences at a register level. A similar level
    147      1.1  mrg         of acceleration to the 65545 is included for this driver.  (Max
    148      1.1  mrg         Ram: 2Mb, Max Dclk: 80MHz)
    149      1.1  mrg 
    150      1.1  mrg 
    151  1.1.1.2  mrg   2.3.  HiQV Architecture
    152      1.1  mrg 
    153      1.1  mrg 
    154  1.1.1.2  mrg      ct65550
    155      1.1  mrg         This chip includes many new features, including improved BitBLT
    156      1.1  mrg         support (24bpp colour expansion, wider maximum pitch, etc),
    157      1.1  mrg         Multimedia unit (video capture, zoom video port, etc) and 24bpp
    158      1.1  mrg         uncompressed true colour (i.e 32bpp mode). Also memory mapped
    159      1.1  mrg         I/O is possible on all bus configurations.  (Max Ram: 2Mb, Max
    160      1.1  mrg         Dclk: 80MHz (a] 3.3V,100MHz@5V)
    161      1.1  mrg 
    162  1.1.1.2  mrg      ct65554
    163      1.1  mrg         This chip is similar to the 65550 but has a 64bit memory bus as
    164      1.1  mrg         opposed to a 32bit bus. It also has higher limits on the maximum
    165      1.1  mrg         memory and pixel clocks (Max Ram: 4Mb, Max Dclk: 100MHz (a] 3.3V)
    166      1.1  mrg 
    167  1.1.1.2  mrg      ct65555
    168      1.1  mrg         Similar to the 65554 but has yet higher maximum memory and pixel
    169      1.1  mrg         clocks. It also includes a new DSTN dithering scheme that
    170      1.1  mrg         improves the performance of DSTN screens.  (Max Ram: 4Mb, Max
    171      1.1  mrg         Dclk: 110MHz (a] 3.3V)
    172      1.1  mrg 
    173  1.1.1.2  mrg      ct68554
    174      1.1  mrg         Similar to the 65555 but also incorporates "PanelLink" drivers.
    175      1.1  mrg         This serial link allows an LCD screens to be located up to 100m
    176      1.1  mrg         from the video processor. Expect to see this chip soon in LCD
    177      1.1  mrg         desktop machines (Max Ram: 4Mb, Max Dclk: 110MHz (a] 3.3V)
    178      1.1  mrg 
    179  1.1.1.2  mrg      ct69000
    180      1.1  mrg         Similar to the 65555 but incorporates 2Mbytes of SGRAM on chip.
    181      1.1  mrg         It is the first Chips and Technologies chipset where all of the
    182      1.1  mrg         registers are accessible through MMIO, rather than just the
    183      1.1  mrg         BitBlt registers.  (Max Ram: 2Mb Only, Max Dclk: 130MHz (a] 3.3V)
    184      1.1  mrg 
    185  1.1.1.2  mrg      ct69030
    186      1.1  mrg         Similar to the 69000 but incorporates 4Mbytes of SGRAM on chip
    187      1.1  mrg         and has faster memory and pixel clock limits. Also includes a
    188      1.1  mrg         second display channel so that the CRT can display independently
    189      1.1  mrg         of the LCD.  (Max Ram: 4Mb Only, Max Dclk: 170MHz (a] 3.3V)
    190      1.1  mrg 
    191      1.1  mrg 
    192      1.1  mrg 
    193  1.1.1.2  mrg   3.  xorg.conf Options
    194      1.1  mrg 
    195      1.1  mrg 
    196      1.1  mrg   The following options are of particular interest to the Chips and
    197      1.1  mrg   Technologies driver. It should be noted that the options are case
    198  1.1.1.2  mrg   insensitive, and that white space and "_" characters are ignored.
    199      1.1  mrg   There are therefore a wide variety of possible forms for all options.
    200      1.1  mrg   The forms given below are the preferred forms.
    201      1.1  mrg 
    202      1.1  mrg   Options related to drivers can be present in the Screen, Device and
    203  1.1.1.2  mrg   Monitor sections and the Display subsections. The order of precedence
    204      1.1  mrg   is Display, Screen, Monitor, Device.
    205      1.1  mrg 
    206      1.1  mrg 
    207  1.1.1.2  mrg      Option
    208      1.1  mrg         This option will disable the use of any accelerated functions.
    209      1.1  mrg         This is likely to help with some problems related to DRAM
    210      1.1  mrg         timing, high dot clocks, and bugs in accelerated functions, at
    211      1.1  mrg         the cost of performance (which will still be reasonable on
    212      1.1  mrg         VLB/PCI).
    213      1.1  mrg 
    214  1.1.1.2  mrg      VideoRam 1024 (or another value)
    215      1.1  mrg         This option will override the detected amount of video memory,
    216      1.1  mrg         and pretend the given amount of memory is present on the card.
    217      1.1  mrg 
    218  1.1.1.2  mrg      Option
    219      1.1  mrg         By default linear addressing is used on all chips where it can
    220      1.1  mrg         be set up automatically. The exception is for depths of 1 or
    221      1.1  mrg         4bpp where linear addressing is turned off by default.  It is
    222      1.1  mrg         possible to turn the linear addressing off with this option.
    223      1.1  mrg         Note that H/W acceleration is only supported with linear
    224      1.1  mrg         addressing.
    225      1.1  mrg 
    226  1.1.1.2  mrg      Option
    227      1.1  mrg         When the chipset is capable of linear addressing and it has been
    228      1.1  mrg         turned off by default, this option can be used to turn it back
    229      1.1  mrg         on. This is useful for the 65530 chipset where the base address
    230      1.1  mrg         of the linear framebuffer must be supplied by the user, or at
    231      1.1  mrg         depths 1 and 4bpp. Note that linear addressing at 1 and 4bpp is
    232      1.1  mrg         not guaranteed to work correctly.
    233      1.1  mrg 
    234  1.1.1.2  mrg      MemBase 0x03b00000 (or a different address)
    235      1.1  mrg         This sets the physical memory base address of the linear
    236      1.1  mrg         framebuffer. Typically this is probed correctly, but if you
    237      1.1  mrg         believe it to be mis-probed, this option might help.  Also for
    238      1.1  mrg         non PCI machines specifying this force the linear base address
    239      1.1  mrg         to be this value, reprogramming the video processor to suit.
    240      1.1  mrg         Note that for the 65530 this is required as the base address
    241      1.1  mrg         can't be correctly probed.
    242      1.1  mrg 
    243  1.1.1.2  mrg      Option
    244      1.1  mrg         For chipsets that support hardware cursors, this option enforces
    245      1.1  mrg         their use, even for cases that are known to cause problems on
    246      1.1  mrg         some machines. Note that it is overridden by the "SWcursor"
    247      1.1  mrg         option. Hardware cursors effectively speeds all graphics
    248      1.1  mrg         operations as the job of ensuring that the cursor remains on top
    249      1.1  mrg         is now given to the hardware. It also reduces the effect of
    250      1.1  mrg         cursor flashing during graphics operations.
    251      1.1  mrg 
    252  1.1.1.2  mrg      Option
    253      1.1  mrg         This disables use of the hardware cursor provided by the chip.
    254      1.1  mrg         Try this if the cursor seems to have problems.
    255      1.1  mrg 
    256  1.1.1.2  mrg      Option
    257      1.1  mrg         The server is unable to differentiate between SS STN and TFT
    258      1.1  mrg         displays. This forces it to identify the display as a SS STN
    259      1.1  mrg         rather than a TFT.
    260      1.1  mrg 
    261  1.1.1.2  mrg      Option
    262      1.1  mrg         The flat panel timings are related to the panel size and not the
    263      1.1  mrg         size of the mode specified in xorg.conf. For this reason the
    264      1.1  mrg         default behaviour of the server is to use the panel timings
    265      1.1  mrg         already installed in the chip. The user can force the panel
    266      1.1  mrg         timings to be recalculated from the modeline with this option.
    267      1.1  mrg         However the panel size will still be probed.
    268      1.1  mrg 
    269  1.1.1.2  mrg      Option
    270      1.1  mrg         For some machines the LCD panel size is incorrectly probed from
    271      1.1  mrg         the registers. This option forces the LCD panel size to be
    272      1.1  mrg         overridden by the modeline display sizes. This will prevent the
    273      1.1  mrg         use of a mode that is a different size than the panel. Before
    274      1.1  mrg         using this check that the server reports an incorrect panel
    275      1.1  mrg         size. This option can be used in conjunction with the option
    276      1.1  mrg         "UseModeline" to program all the panel timings using the
    277      1.1  mrg         modeline values.
    278      1.1  mrg 
    279  1.1.1.2  mrg      Option
    280      1.1  mrg         When the size of the mode used is less than the panel size, the
    281      1.1  mrg         default behaviour of the server is to stretch the mode in an
    282      1.1  mrg         attempt to fill the screen. A "letterbox" effect with no
    283      1.1  mrg         stretching can be achieved using this option.
    284      1.1  mrg 
    285  1.1.1.2  mrg      Option
    286      1.1  mrg         When the size of the mode used is less than the panel size, the
    287      1.1  mrg         default behaviour of the server is to align the left hand edge
    288      1.1  mrg         of the display with the left hand edge of the screen. Using this
    289      1.1  mrg         option the mode can be centered in the screen. This option is
    290      1.1  mrg         reported to have problems with some machines at 16/24/32bpp, the
    291      1.1  mrg         effect of which is that the right-hand edge of the mode will be
    292      1.1  mrg         pushed off the screen.
    293      1.1  mrg 
    294  1.1.1.2  mrg      Option
    295      1.1  mrg         For the chips either using the WinGine or basic architectures,
    296      1.1  mrg         the chips generates a number of fixed clocks internally. With
    297      1.1  mrg         the chips 65535 and later or the 64300, the default is to use
    298      1.1  mrg         the programmable clock for all clocks. It is possible to use the
    299      1.1  mrg         fixed clocks supported by the chip instead by using this option.
    300      1.1  mrg         Typically this will give you some or all of the clocks 25.175,
    301      1.1  mrg         28.322, 31.000 and 36.000MHz. The current programmable clock
    302      1.1  mrg         will be given as the last clock in the list. On a cold-booted
    303      1.1  mrg         system this might be the appropriate value to use at the text
    304      1.1  mrg         console (see the "TextClockFreq" option), as many flat panels
    305      1.1  mrg         will need a dot clock different than the default to synchronise.
    306      1.1  mrg         The programmable clock makes this option obsolete and so it's
    307      1.1  mrg         use isn't recommended. It is completely ignored for HiQV
    308      1.1  mrg         chipsets.
    309      1.1  mrg 
    310  1.1.1.2  mrg      TextClockFreq 25.175
    311      1.1  mrg         Except for the HiQV chipsets, it is impossible for the server to
    312      1.1  mrg         read the value of the currently used frequency for the text
    313      1.1  mrg         console when using programmable clocks. Therefore the server
    314      1.1  mrg         uses a default value of 25.175MHz as the text console clock. For
    315      1.1  mrg         some LCDs, in particular DSTN screens, this clock will be wrong.
    316      1.1  mrg         This allows the user to select a different clock for the server
    317      1.1  mrg         to use when returning to the text console.
    318      1.1  mrg 
    319  1.1.1.2  mrg      Option
    320  1.1.1.2  mrg         Option "FPClock16" "65.0MHz" Option "FPClock24" "65.0MHz" Option
    321  1.1.1.2  mrg         "FPClock32" "65.0MHz"" In general the LCD panel clock should be
    322  1.1.1.2  mrg         set independently of the modelines supplied. Normally the chips
    323  1.1.1.2  mrg         BIOS set the flat panel clock correctly and so the default
    324  1.1.1.2  mrg         behaviour with HiQV chipset is to leave the flat panel clock
    325  1.1.1.2  mrg         alone, or force it to be 90% of the maximum allowable clock if
    326  1.1.1.2  mrg         the current panel clock exceeds the dotclock limitation due to a
    327  1.1.1.2  mrg         depth change. This option allows the user to force the server
    328  1.1.1.2  mrg         the reprogram the flat panel clock independently of the modeline
    329  1.1.1.2  mrg         with HiQV chipset. The four options are for 8bpp or less, 16, 24
    330  1.1.1.2  mrg         or 32bpp LCD panel clocks, where the options above set the
    331  1.1.1.2  mrg         clocks to 65MHz.
    332      1.1  mrg 
    333  1.1.1.2  mrg      Option
    334      1.1  mrg         Option "FPClkIndx" "1"" The HiQV series of chips have three
    335      1.1  mrg         programmable clocks. The first two are usually loaded with
    336      1.1  mrg         25.175 and 28.322MHz for VGA backward compatibility, and the
    337      1.1  mrg         third is used as a fully programmable clock. On at least one
    338      1.1  mrg         system (the Inside 686 LCD/S single board computer) the third
    339      1.1  mrg         clock is unusable. These options can be used to force a
    340      1.1  mrg         particular clock index to be used
    341      1.1  mrg 
    342  1.1.1.2  mrg      Option
    343      1.1  mrg         This has a different effect depending on the hardware on which
    344      1.1  mrg         it is used. For the 6554x machines MMIO is only used to talk to
    345  1.1.1.2  mrg         the BitBLT engine and is only usable with PCI buses. It is
    346      1.1  mrg         enabled by default for 65545 machines since the blitter can not
    347      1.1  mrg         be used otherwise. The HiQV series of chipsets must use MMIO
    348      1.1  mrg         with their BitBLT engines, and so this is enabled by default.
    349      1.1  mrg 
    350  1.1.1.2  mrg      Option
    351      1.1  mrg         The 690xx chipsets can use MMIO for all communications with the
    352      1.1  mrg         video processor. So using this option on a 690xx chipset forces
    353      1.1  mrg         them to use MMIO for all communications. This only makes sense
    354      1.1  mrg         when the 690xx is on a PCI bus so that normal PIO can be
    355      1.1  mrg         disabled.
    356      1.1  mrg 
    357  1.1.1.2  mrg      Option
    358      1.1  mrg         This option sets the centering and stretching to the BIOS
    359      1.1  mrg         default values. This can fix suspend/resume problems on some
    360      1.1  mrg         machines. It overrides the options "LcdCenter" and "NoStretch".
    361      1.1  mrg 
    362  1.1.1.2  mrg      Option            For 24bpp on TFT screens, the server assumes that
    363      1.1  mrg                        a 24bit bus is being used. This can result in a
    364      1.1  mrg                        reddish tint to 24bpp mode.  This option, selects
    365      1.1  mrg                        an 18 bit TFT bus. For other depths this option
    366      1.1  mrg                        has no effect.
    367      1.1  mrg 
    368  1.1.1.2  mrg      Chipset           It is possible that the chip could be
    369      1.1  mrg                        misidentified, particular due to interactions
    370      1.1  mrg                        with other drivers in the server. It is possible
    371      1.1  mrg                        to force the server to identify a particular chip
    372      1.1  mrg                        with this option.
    373      1.1  mrg 
    374  1.1.1.2  mrg      Option            Composite sync on green. Possibly useful if you
    375      1.1  mrg                        wish to use an old workstation monitor. The HiQV
    376      1.1  mrg                        internal RAMDAC's supports this mode of
    377      1.1  mrg                        operation, but whether a particular machine does
    378      1.1  mrg                        depends on the manufacturer.
    379      1.1  mrg 
    380  1.1.1.2  mrg      DacSpeed 80.000   The server will limit the maximum dotclock to a
    381      1.1  mrg                        value as specified by the manufacturer. This
    382      1.1  mrg                        might make certain modes impossible to obtain
    383      1.1  mrg                        with a reasonable refresh rate. Using this option
    384      1.1  mrg                        the user can override the maximum dot-clock and
    385      1.1  mrg                        specify any value they prefer. Use caution with
    386      1.1  mrg                        this option, as driving the video processor
    387      1.1  mrg                        beyond its specifications might cause damage.
    388      1.1  mrg 
    389  1.1.1.2  mrg      Option            Option "SetMClk" "38000kHz"" This option sets the
    390      1.1  mrg                        internal memory clock (MCLK) registers of HiQV
    391      1.1  mrg                        chipsets to 38MHz or some other value. Use
    392      1.1  mrg                        caution as excess heat generated by the video
    393      1.1  mrg                        processor if its specifications are exceeded
    394      1.1  mrg                        might cause damage. However careful use of this
    395      1.1  mrg                        option might boost performance. This option might
    396      1.1  mrg                        also be used to reduce the speed of the memory
    397      1.1  mrg                        clock to preserve power in modes that don't need
    398      1.1  mrg                        the full speed of the memory to work correctly.
    399      1.1  mrg                        This option might also be needed to reduce the
    400      1.1  mrg                        speed of the memory clock with the "Overlay"
    401      1.1  mrg                        option.
    402      1.1  mrg 
    403  1.1.1.2  mrg      Option            By default it is assumed that there are 6
    404      1.1  mrg                        significant bits in the RGB representation of the
    405      1.1  mrg                        colours in 4bpp and above. If the colours seem
    406      1.1  mrg                        darker than they should be, perhaps your ramdac
    407      1.1  mrg                        is has 8 significant bits. This option forces the
    408      1.1  mrg                        server to assume that there are 8 significant
    409      1.1  mrg                        bits.
    410      1.1  mrg 
    411  1.1.1.2  mrg      Option            This is a debugging option and general users have
    412      1.1  mrg                        no need of it.  Using this option, when the
    413      1.1  mrg                        virtual desktop is scrolled away from the zero
    414      1.1  mrg                        position, the pixmap cache becomes visible. This
    415      1.1  mrg                        is useful to see that pixmaps, tiles, etc have
    416      1.1  mrg                        been properly cached.
    417      1.1  mrg 
    418  1.1.1.2  mrg      Option            This option is only useful when acceleration
    419      1.1  mrg                        can't be used and linear addressing can be used.
    420      1.1  mrg                        With this option all of the graphics are rendered
    421      1.1  mrg                        into a copy of the framebuffer that is keep in
    422      1.1  mrg                        the main memory of the computer, and the screen
    423      1.1  mrg                        is updated from this copy. In this way the
    424      1.1  mrg                        expensive operation of reading back to contents
    425      1.1  mrg                        of the screen is never performed and the
    426      1.1  mrg                        performance is improved. Because the rendering is
    427      1.1  mrg                        all done into a virtual framebuffer acceleration
    428      1.1  mrg                        can not be used.
    429      1.1  mrg 
    430  1.1.1.2  mrg      Option            The new TMED DSTN dithering scheme available on
    431      1.1  mrg                        recent HiQV chipsets gives improved performance.
    432      1.1  mrg                        However, some machines appear to have this
    433      1.1  mrg                        feature incorrectly setup. If you have snow on
    434      1.1  mrg                        your DSTN LCD, try using this option. This option
    435      1.1  mrg                        is only relevant for chipsets more recent than
    436      1.1  mrg                        the ct65555 and only when used with a DSTN LCD.
    437      1.1  mrg 
    438  1.1.1.2  mrg      Option            The HiQV chipsets contain a multimedia engine
    439  1.1.1.3  mrg                        that allow a 16bpp window to be overlaid on the
    440      1.1  mrg                        screen. This driver uses this capability to
    441      1.1  mrg                        include a 16bpp framebuffer on top of an 8bpp
    442      1.1  mrg                        framebuffer. In this way PseudoColor and
    443      1.1  mrg                        TrueColor visuals can be used on the same screen.
    444      1.1  mrg                        XFree86 believes that the 8bpp framebuffer is
    445  1.1.1.3  mrg                        overlaid on the 16bpp framebuffer. Therefore to
    446      1.1  mrg                        use this option the server must be started in
    447      1.1  mrg                        either 15 or 16bpp depth. Also the maximum size
    448      1.1  mrg                        of the desktop with this option is 1024x1024, as
    449      1.1  mrg                        this is the largest window that the HiQV
    450      1.1  mrg                        multimedia engine can display. Note that this
    451      1.1  mrg                        option using the multimedia engine to its limit,
    452      1.1  mrg                        and some manufacturers have set a default memory
    453      1.1  mrg                        clock that will cause pixel errors with this
    454      1.1  mrg                        option.  If you get pixel error with this option
    455      1.1  mrg                        try using the "SetMClk" option to slow the memory
    456      1.1  mrg                        clock. It should also be noted that the XVideo
    457      1.1  mrg                        extension uses the same capabilities of the HiQV
    458      1.1  mrg                        chipsets as the Overlays. So using this option
    459      1.1  mrg                        disables the XVideo extension.
    460      1.1  mrg 
    461      1.1  mrg 
    462  1.1.1.2  mrg      Option            Normally the colour transparency key for the
    463      1.1  mrg                        overlay is the 8bpp lookup table entry 255. This
    464      1.1  mrg                        might cause troubles with some applications, and
    465      1.1  mrg                        so this option allows the colour transparency key
    466      1.1  mrg                        to be set to some other value. Legal values are 2
    467      1.1  mrg                        to 255 inclusive.
    468      1.1  mrg 
    469  1.1.1.2  mrg      Option            This sets the default pixel value for the YUV
    470      1.1  mrg                        video overlay key. Legal values for this key are
    471      1.1  mrg                        depth dependent. That is from 0 to 255 for 8bit
    472      1.1  mrg                        depth, 0 to 32,767 for 15bit depth, etc. This
    473      1.1  mrg                        option might be used if the default video overlay
    474      1.1  mrg                        key causes problems.
    475      1.1  mrg 
    476  1.1.1.2  mrg      Option            The 69030 chipset has independent display
    477      1.1  mrg                        channels, that can be configured to support
    478      1.1  mrg                        independent refresh rates on the flat panel and
    479      1.1  mrg                        on the CRT. The default behaviour is to have both
    480      1.1  mrg                        the flat panel and the CRT use the same display
    481      1.1  mrg                        channel and thus the same refresh rate. This
    482      1.1  mrg                        option forces the two display channels to be
    483      1.1  mrg                        used, giving independent refresh rates.
    484      1.1  mrg 
    485  1.1.1.2  mrg      Option            The ct69030 supports dual-head display. By
    486      1.1  mrg                        default the two display share equally the
    487      1.1  mrg                        available memory. This option forces the second
    488      1.1  mrg                        display to take a particular amount of memory.
    489      1.1  mrg                        Please read the section below about dual-head
    490      1.1  mrg                        display.
    491      1.1  mrg 
    492  1.1.1.2  mrg      Option            Option "XaaNoSolidFillRect", Option "XaaNoSolid-
    493      1.1  mrg                        HorVertLine", Option "XaaNoMono8x8PatternFill-
    494      1.1  mrg                        Rect", Option "XaaNoColor8x8PatternFillRect",
    495      1.1  mrg                        Option "XaaNoCPUToScreenColorExpandFill", Option
    496      1.1  mrg                        "XaaNoScreenToScreenColorExpandFill", Option
    497      1.1  mrg                        "XaaNoImageWriteRect", Option "XaaNoImageRead-
    498      1.1  mrg                        Rect", Option "XaaNoPixmapCache", Option
    499      1.1  mrg                        "XaaNoOffscreenPixmaps" " These option
    500      1.1  mrg                        individually disable the features of the XAA
    501      1.1  mrg                        acceleration code that the Chips and Technologies
    502      1.1  mrg                        driver uses. If you have a problem with the
    503      1.1  mrg                        acceleration and these options will allow you to
    504      1.1  mrg                        isolation the problem. This information will be
    505      1.1  mrg                        invaluable in debugging any problems.
    506      1.1  mrg 
    507      1.1  mrg 
    508  1.1.1.2  mrg   4.  Modelines
    509      1.1  mrg 
    510      1.1  mrg 
    511      1.1  mrg   When constructing a modeline for use with the Chips and Technologies
    512      1.1  mrg   driver you'll needed to considered several points
    513      1.1  mrg 
    514      1.1  mrg 
    515  1.1.1.2  mrg       * Virtual Screen Size
    516      1.1  mrg         It is the virtual screen size that determines the amount of
    517      1.1  mrg         memory used by a mode. So if you have a virtual screen size set
    518      1.1  mrg         to 1024x768 using a 800x600 at 8bpp, you use 768kB for the mode.
    519      1.1  mrg         Further to this some of the XAA acceleration requires that the
    520      1.1  mrg         display pitch is a multiple of 64 pixels. So the driver will
    521      1.1  mrg         attempt to round-up the virtual X dimension to a multiple of 64,
    522      1.1  mrg         but leave the virtual resolution untouched. This might further
    523      1.1  mrg         reduce the available memory.
    524      1.1  mrg 
    525  1.1.1.2  mrg       * 16/24/32 Bits Per Pixel
    526      1.1  mrg         Hi-Color and True-Color modes are implemented in the server. The
    527      1.1  mrg         clocks in the 6554x series of chips are internally divided by 2
    528      1.1  mrg         for 16bpp and 3 for 24bpp, allowing one modeline to be used at
    529  1.1.1.2  mrg         all depths. The effect of this is that the maximum dot clock
    530      1.1  mrg         visible to the user is a half or a third of the value at 8bpp.
    531      1.1  mrg         The HiQV series of chips doesn't need to use additional clock
    532      1.1  mrg         cycles to display higher depths, and so the same modeline can be
    533      1.1  mrg         used at all depths, without needing to divide the clocks.  Also
    534      1.1  mrg         16/24/32 bpp modes will need 2 , 3 or 4 times respectively more
    535      1.1  mrg         video ram.
    536      1.1  mrg 
    537  1.1.1.2  mrg       * Frame Acceleration
    538      1.1  mrg         Many DSTN screens use frame acceleration to improve the
    539      1.1  mrg         performance of the screen. This can be done by using an external
    540      1.1  mrg         frame buffer, or incorporating the framebuffer at the top of
    541      1.1  mrg         video ram depending on the particular implementation. The
    542      1.1  mrg         Xserver assumes that the framebuffer, if used, will be at the
    543      1.1  mrg         top of video ram.  The amount of ram required for the
    544      1.1  mrg         framebuffer will vary depending on the size of the screen, and
    545      1.1  mrg         will reduce the amount of video ram available to the modes.
    546      1.1  mrg         Typical values for the size of the framebuffer will be 61440
    547      1.1  mrg         bytes (640x480 panel), 96000 bytes (800x600 panel) and 157287
    548      1.1  mrg         bytes (1024x768 panel).
    549      1.1  mrg 
    550  1.1.1.2  mrg       * H/W Acceleration
    551      1.1  mrg         The H/W cursor will need 1kB for the 6554x and 4kb for the
    552      1.1  mrg         65550. On the 64300 chips the H/W cursor is stored in registers
    553      1.1  mrg         and so no allowance is needed for the H/W cursor. In addition to
    554      1.1  mrg         this many graphics operations are speeded up using a "pixmap
    555      1.1  mrg         cache". Leaving too little memory available for the cache will
    556      1.1  mrg         only have a detrimental effect on the graphics performance.
    557      1.1  mrg 
    558  1.1.1.2  mrg       * PseudoColor Overlay
    559      1.1  mrg         If you use the "overlay" option, then there are actually two
    560      1.1  mrg         framebuffers in the video memory. An 8bpp one and a 16bpp one.
    561      1.1  mrg         The total memory requirements in this mode of operation is
    562      1.1  mrg         therefore similar to a 24bpp mode. The overlay consumes memory
    563      1.1  mrg         bandwidth, so that the maximum dotclock will be similar to a
    564      1.1  mrg         24bpp mode.
    565      1.1  mrg 
    566  1.1.1.2  mrg       * XVideo extension*
    567      1.1  mrg         Like the overlays, the Xvideo extension uses a part of the video
    568      1.1  mrg         memory for a second framebuffer. In this case enough memory
    569      1.1  mrg         needs to be left for the largest unscaled video window that will
    570      1.1  mrg         be displayed.
    571      1.1  mrg 
    572  1.1.1.2  mrg       * VESA like modes
    573      1.1  mrg         We recommend that you try and pick a mode that is similar to a
    574      1.1  mrg         standard VESA mode. If you don't a suspend/resume or LCD/CRT
    575      1.1  mrg         switch might mess up the screen. This is a problem with the
    576      1.1  mrg         video BIOS not knowing about all the funny modes that might be
    577      1.1  mrg         selected.
    578      1.1  mrg 
    579  1.1.1.2  mrg       * Dot Clock
    580      1.1  mrg         For LCD screens, the lowest clock that gives acceptable contrast
    581      1.1  mrg         and flicker is usually the best one. This also gives more memory
    582      1.1  mrg         bandwidth for use in the drawing operations. Some users prefer
    583      1.1  mrg         to use clocks that are defined by their BIOS. This has the
    584      1.1  mrg         advantage that the BIOS will probably restore the clock they
    585      1.1  mrg         specified after a suspend/resume or LCD/CRT switch. For a
    586      1.1  mrg         complete discussion on the dot clock limitations, see the next
    587      1.1  mrg         section.
    588      1.1  mrg 
    589  1.1.1.2  mrg       * Dual-head display
    590      1.1  mrg         Dual-head display has two effects on the modelines. Firstly, the
    591      1.1  mrg         memory requirements of both heads must fit in the available
    592      1.1  mrg         memory. Secondly, the memory bandwidth of the video processor is
    593      1.1  mrg         shared between the two heads. Hence the maximum dot-clock might
    594      1.1  mrg         need to be limited.
    595      1.1  mrg 
    596      1.1  mrg   The driver is capable of driving both a CRT and a flat panel display.
    597      1.1  mrg   In fact the timing for the flat panel are dependent on the
    598      1.1  mrg   specification of the panel itself and are independent of the
    599      1.1  mrg   particular mode chosen. For this reason it is recommended to use one
    600      1.1  mrg   of the programs that automatically generate xorg.conf files, such as
    601      1.1  mrg   "xorgconfig".
    602      1.1  mrg 
    603      1.1  mrg   However there are many older machines, particularly those with 800x600
    604      1.1  mrg   screen or larger, that need to reprogram the panel timings. The reason
    605      1.1  mrg   for this is that the manufacturer has used the panel timings to get a
    606      1.1  mrg   standard EGA mode to work on flat panel, and these same timings don't
    607      1.1  mrg   work for an SVGA mode. For these machines the "UseModeline" and/or
    608      1.1  mrg   possibly the "FixPanelSize" option might be needed. Some machines that
    609      1.1  mrg   are known to need these options include.
    610      1.1  mrg 
    611      1.1  mrg 
    612      1.1  mrg 
    613      1.1  mrg        Modeline "640x480@8bpp"       25.175  640  672  728  816   480  489  501  526
    614      1.1  mrg        Modeline "640x480@16bpp"  25.175  640  672  728  816   480  489  501  526
    615      1.1  mrg        Options: "UseModeline"
    616      1.1  mrg        Tested on a Prostar 8200, (640x480, 65548, 1Mbyte)
    617      1.1  mrg 
    618      1.1  mrg 
    619      1.1  mrg 
    620      1.1  mrg        Modeline "800x600@8bpp"       28.322  800  808  848  936   600  600  604  628
    621      1.1  mrg        Options: "FixPanelSize", "UseModeline"
    622      1.1  mrg        Tested on a HP OmniBook 5000CTS (800x600 TFT, 65548, 1Mbyte)
    623      1.1  mrg 
    624      1.1  mrg 
    625      1.1  mrg 
    626      1.1  mrg        Modeline "800x600@8bpp"       30.150  800  896  960 1056   600  600  604  628
    627      1.1  mrg        Options: "FixPanelSize", "UseModeline"
    628      1.1  mrg        Tested on a Zeos Meridan 850c (800x600 DSTN, 65545, 1Mbyte)
    629      1.1  mrg 
    630      1.1  mrg 
    631      1.1  mrg 
    632  1.1.1.2  mrg   The IBM PC110 works best with a 15MHz clock (Thanks to Alan Cox):
    633      1.1  mrg 
    634      1.1  mrg 
    635      1.1  mrg        Modeline "640x480"        15.00   640  672  728  816   480  489  496  526
    636      1.1  mrg        Options: "TextClockFreq" "15.00"
    637      1.1  mrg        IBM PC110 (65535, Citizen L6481L-FF DSTN)
    638      1.1  mrg 
    639      1.1  mrg 
    640      1.1  mrg 
    641      1.1  mrg   The NEC Versa 4080 just needs the "FixPanelSize" option. To the best
    642      1.1  mrg   of my knowledge no machine with a HiQV needs the "UseModeline" or
    643      1.1  mrg   "FixPanelSize" options.
    644      1.1  mrg 
    645      1.1  mrg 
    646  1.1.1.2  mrg   5.  Dual Display Channel
    647      1.1  mrg 
    648      1.1  mrg 
    649      1.1  mrg   XFree86 releases later than 4.1.0 and X.Org releases later than 6.7.0
    650  1.1.1.2  mrg   support dual-channel display on the ct69030. This support can be used
    651      1.1  mrg   to give a single display image on two screen with different refresh
    652      1.1  mrg   rates, or entirely different images on the two displays.
    653      1.1  mrg 
    654      1.1  mrg   Dual refresh rate display can be selected with the "DualRefresh"
    655      1.1  mrg   option described above. However to use the dual-head support is
    656      1.1  mrg   slightly more complex. Firstly, the ct69030 chipset must be installed
    657      1.1  mrg   on a PCI bus. This is a driver limitation that might be relaxed in the
    658      1.1  mrg   future. In addition the device, screen and layout sections of the
    659      1.1  mrg   "xorg.conf" must be correctly configured. A sample of an incomplete
    660      1.1  mrg   "xorg.conf" is given below
    661      1.1  mrg 
    662      1.1  mrg 
    663      1.1  mrg 
    664      1.1  mrg        Section "Device"
    665      1.1  mrg            Identifier  "Chips and Technologies - Pipe A"
    666      1.1  mrg            Driver      "chips"
    667      1.1  mrg            BusID       "PCI:0:20:0"
    668      1.1  mrg            Screen      0
    669      1.1  mrg        EndSection
    670      1.1  mrg 
    671      1.1  mrg        Section "Device"
    672      1.1  mrg            Identifier  "Chips and Technologies - Pipe B"
    673      1.1  mrg            Driver      "chips"
    674      1.1  mrg            BusID       "PCI:0:20:0"
    675      1.1  mrg            Screen      1
    676      1.1  mrg        EndSection
    677      1.1  mrg 
    678      1.1  mrg        Section "Screen"
    679      1.1  mrg            Identifier  "Screen 0"
    680      1.1  mrg            Device      "Chips and Technologies - Pipe A"
    681      1.1  mrg            Monitor     "generic LCD"
    682      1.1  mrg 
    683      1.1  mrg            SubSection "Display"
    684      1.1  mrg                Depth           16
    685      1.1  mrg                Modes           "1024x768"
    686      1.1  mrg            EndSubsection
    687      1.1  mrg        EndSection
    688      1.1  mrg 
    689      1.1  mrg        Section "Screen"
    690      1.1  mrg            Identifier  "Screen 1"
    691      1.1  mrg            Device      "Chips and Technologies - Pipe B"
    692      1.1  mrg            Monitor     "generic CRT"
    693      1.1  mrg 
    694      1.1  mrg            SubSection "Display"
    695      1.1  mrg                Depth           16
    696      1.1  mrg                Modes           "1024x768"
    697      1.1  mrg            EndSubsection
    698      1.1  mrg        EndSection
    699      1.1  mrg 
    700      1.1  mrg        Section "ServerLayout"
    701      1.1  mrg            Identifier  "Main Layout"
    702      1.1  mrg            Screen      "Screen 0"
    703      1.1  mrg            Screen      "Screen 1" RightOf "Screen 0"
    704      1.1  mrg            InputDevice "Mouse1" "CorePointer"
    705      1.1  mrg            InputDevice "Keyboard1" "CoreKeyboard"
    706      1.1  mrg        EndSection
    707      1.1  mrg 
    708      1.1  mrg 
    709      1.1  mrg 
    710      1.1  mrg   The device section must include the PCI BusID. This can be found from
    711      1.1  mrg   the log file of a working single-head installation. For instance, the
    712      1.1  mrg   line
    713      1.1  mrg 
    714      1.1  mrg 
    715      1.1  mrg 
    716      1.1  mrg   (--) PCI:*(0:20:0) C&T 69030 rev 97, Mem @ 0xed000000/24
    717      1.1  mrg 
    718      1.1  mrg 
    719      1.1  mrg 
    720      1.1  mrg   appears for the case above. Additionally, the "Screen" option must
    721      1.1  mrg   appear in the device section. It should be noted that if a flat panel
    722      1.1  mrg   is used, this it must be allocated to "Screen 0".
    723      1.1  mrg 
    724      1.1  mrg   The server can then be started with the "+xinerama" option as follows
    725      1.1  mrg 
    726      1.1  mrg 
    727      1.1  mrg 
    728      1.1  mrg        startx -- +xinerama
    729      1.1  mrg 
    730      1.1  mrg 
    731      1.1  mrg 
    732      1.1  mrg   For more information, read the Xinerama documentation.
    733      1.1  mrg 
    734      1.1  mrg   It should be noted that the dual channel display options of the 69030
    735      1.1  mrg   require the use of additional memory bandwidth, as each display
    736      1.1  mrg   channel independently accesses the video memory. For this reason, the
    737      1.1  mrg   maximum colour depth and resolution that can be supported in a dual
    738      1.1  mrg   channel mode will be reduced compared to a single display channel
    739      1.1  mrg   mode. However, as the driver does not prevent you from using a mode
    740      1.1  mrg   that will exceed the memory bandwidth of the 69030, but a warning like
    741      1.1  mrg 
    742      1.1  mrg 
    743      1.1  mrg 
    744      1.1  mrg        (WW) Memory bandwidth requirements exceeded by dual-channel
    745      1.1  mrg        (WW)    mode. Display might be corrupted!!!
    746      1.1  mrg 
    747      1.1  mrg 
    748      1.1  mrg 
    749      1.1  mrg   If you see such display corruption, and you have this warning, your
    750      1.1  mrg   choices are to reduce the refresh rate, colour depth or resolution, or
    751      1.1  mrg   increase the speed of the memory clock with the the "SetMClk" option
    752      1.1  mrg   described above. Note that increasing the memory clock also has its
    753      1.1  mrg   own problems as described above.
    754      1.1  mrg 
    755      1.1  mrg 
    756  1.1.1.2  mrg   6.  The Full Story on Clock Limitations
    757      1.1  mrg 
    758      1.1  mrg 
    759      1.1  mrg   There has been much confusion about exactly what the clock limitations
    760      1.1  mrg   of the Chips and Technologies chipsets are. Hence I hope that this
    761      1.1  mrg   section will clear up the misunderstandings.
    762      1.1  mrg 
    763      1.1  mrg   In general there are two factors determining the maximum dotclock.
    764      1.1  mrg   There is the limit of the maximum dotclock the video processor can
    765      1.1  mrg   handle, and there is another limitation of the available memory
    766      1.1  mrg   bandwidth. The memory bandwidth is determined by the clock used for
    767      1.1  mrg   the video memory.  For chipsets incapable of colour depths greater
    768      1.1  mrg   that 8bpp like the 65535, the dotclock limit is solely determined by
    769      1.1  mrg   the highest dotclock the video processor is capable of handling. So
    770      1.1  mrg   this limit will be either 56MHz or 68MHz for the 655xx chipsets,
    771      1.1  mrg   depending on what voltage they are driven with, or 80MHz for the 64200
    772      1.1  mrg   WinGine machines.
    773      1.1  mrg 
    774      1.1  mrg   The 6554x and 64300 WinGine chipsets are capable of colour depths of
    775      1.1  mrg   16 or 24bpp. However there is no reliable way of probing the memory
    776      1.1  mrg   clock used in these chipsets, and so a conservative limit must be
    777      1.1  mrg   taken for the dotclock limit. In this case the driver divides the
    778      1.1  mrg   video processors dotclock limitation by the number of bytes per pixel,
    779      1.1  mrg   so that the limitations for the various colour depths are
    780      1.1  mrg 
    781      1.1  mrg 
    782      1.1  mrg                           8bpp    16bpp   24bpp
    783      1.1  mrg   64300                   85      42.5    28.33
    784      1.1  mrg   65540/65545 3.3v        56      28      18.67
    785      1.1  mrg   65540/65545 5v          68      34      22.67
    786      1.1  mrg   65546/65548             80      40      26.67
    787      1.1  mrg 
    788      1.1  mrg 
    789      1.1  mrg 
    790      1.1  mrg   For a CRT or TFT screen these limitations are conservative and the
    791      1.1  mrg   user might safely override them with the "DacSpeed" option to some
    792      1.1  mrg   extent. However these numbers take no account of the extra bandwidth
    793      1.1  mrg   needed for DSTN screens.
    794      1.1  mrg 
    795      1.1  mrg   For the HiQV series of chips, the memory clock can be successfully
    796      1.1  mrg   probed.  Hence you will see a line like
    797      1.1  mrg 
    798      1.1  mrg 
    799      1.1  mrg   (--) CHIPS(0): Probed memory clock of  40.090 MHz
    800      1.1  mrg 
    801      1.1  mrg 
    802      1.1  mrg 
    803      1.1  mrg   in your startx log file. Note that many chips are capable of higher
    804      1.1  mrg   memory clocks than actually set by BIOS. You can use the "SetMClk"
    805      1.1  mrg   option in your xorg.conf file to get a higher MClk. However some video
    806      1.1  mrg   ram, particularly EDO, might not be fast enough to handle this,
    807      1.1  mrg   resulting in drawing errors on the screen. The formula to determine
    808      1.1  mrg   the maximum usable dotclock on the HiQV series of chips is
    809      1.1  mrg 
    810      1.1  mrg 
    811      1.1  mrg   Max dotclock = min(MaxDClk,  0.70  * 8 * MemoryClk / (BytesPerPixel +
    812      1.1  mrg                   (isDSTN == TRUE ? 1 : 0)))
    813      1.1  mrg 
    814      1.1  mrg 
    815      1.1  mrg 
    816      1.1  mrg   if you chips is a 69030 or 69000 or
    817      1.1  mrg 
    818      1.1  mrg 
    819      1.1  mrg   Max dotclock = min(MaxDClk,  0.70  * 4 * MemoryClk / (BytesPerPixel +
    820      1.1  mrg                   (isDSTN == TRUE ? 1 : 0)))
    821      1.1  mrg 
    822      1.1  mrg 
    823      1.1  mrg 
    824      1.1  mrg   otherwise. This effectively means that there are two limits on the
    825      1.1  mrg   dotclock. One the overall maximum, and another due to the available
    826  1.1.1.2  mrg   memory bandwidth of the chip. The 69030 and 69000 have a 64bit memory
    827      1.1  mrg   bus and thus transfer 8 bytes every clock thus (hence the 8), while
    828      1.1  mrg   the other HiQV chipsets are 32bit and transfer 4 bytes per clock cycle
    829      1.1  mrg   (hence the 4). However, after accounting for the RAS/CAS signaling
    830      1.1  mrg   only about 70% of the bandwidth is available. The whole thing is
    831      1.1  mrg   divided by the bytes per pixel, plus an extra byte if you are using a
    832      1.1  mrg   DSTN. The extra byte with DSTN screens is used for the frame
    833      1.1  mrg   buffering/acceleration in these screens. So for the various Chips and
    834      1.1  mrg   Technologies chips the maximum specifications are
    835      1.1  mrg 
    836      1.1  mrg 
    837      1.1  mrg 
    838      1.1  mrg                       Max DClk MHz      Max Mem Clk MHz
    839      1.1  mrg   65550 rev A 3.3v          80                38
    840      1.1  mrg   65550 rev A 5v           110                38
    841      1.1  mrg   65550 rev B               95                50
    842      1.1  mrg   65554                     94.5              55
    843      1.1  mrg   65555                    110                55
    844      1.1  mrg   68554                    110                55
    845      1.1  mrg   69000                    135                83
    846      1.1  mrg   69030                    170               100
    847      1.1  mrg 
    848      1.1  mrg 
    849      1.1  mrg 
    850      1.1  mrg   Note that all of the chips except the 65550 rev A are 3.3v only. Which
    851      1.1  mrg   is the reason for the drop in the dot clock. Now the maximum memory
    852      1.1  mrg   clock is just the maximum supported by the video processor, not the
    853      1.1  mrg   maximum supported by the video memory. So the value actually used for
    854      1.1  mrg   the memory clock might be significantly less than this maximum value.
    855      1.1  mrg   But assuming your memory clock is programmed to these maximum values
    856      1.1  mrg   the various maximum dot clocks for the chips are
    857      1.1  mrg 
    858      1.1  mrg 
    859      1.1  mrg                           ------CRT/TFT-------    --------DSTN--------
    860      1.1  mrg                           8bpp    16bpp   24bpp   8bpp    16bpp   24bpp
    861      1.1  mrg   65550 rev A 3.3v        80      53.2    35.47   53.2    35.47   26.6
    862      1.1  mrg   65550 rev A 5v          106.2   53.2    35.47   53.2    35.47   26.6
    863      1.1  mrg   65550 rev B             95      70      46.67   70      46.67   35.0
    864      1.1  mrg   65554                   94.5    77      51.33   77      51.33   38.5
    865      1.1  mrg   65555                   110     77      51.33   77      51.33   38.5
    866      1.1  mrg   68554                   110     77      51.33   77      51.33   38.5
    867      1.1  mrg   69000                   135    135     135     135     135     116.2
    868      1.1  mrg   69030                   170    170     170     170     170     140
    869      1.1  mrg 
    870      1.1  mrg 
    871      1.1  mrg 
    872      1.1  mrg   If you exceed the maximum set by the memory clock, you'll get
    873      1.1  mrg   corruption on the screen during graphics operations, as you will be
    874      1.1  mrg   starving the HW BitBlt engine of clock cycles. If you are driving the
    875      1.1  mrg   video memory too fast (too high a MemClk) you'll get pixel corruption
    876      1.1  mrg   as the data actually written to the video memory is corrupted by
    877      1.1  mrg   driving the memory too fast. You can probably get away with exceeding
    878      1.1  mrg   the Max DClk at 8bpp on TFT's or CRT's by up to 10% or so without
    879      1.1  mrg   problems, it will just generate more heat, since the 8bpp clocks
    880      1.1  mrg   aren't limited by the available memory bandwidth.
    881      1.1  mrg 
    882      1.1  mrg   If you find you truly can't achieve the mode you are after with the
    883      1.1  mrg   default clock limitations, look at the options "DacSpeed" and
    884      1.1  mrg   "SetMClk". Using these should give you all the capabilities you'll
    885      1.1  mrg   need in the server to get a particular mode to work. However use
    886      1.1  mrg   caution with these options, because there is no guarantee that driving
    887      1.1  mrg   the video processor beyond it capabilities won't cause damage.
    888      1.1  mrg 
    889      1.1  mrg 
    890  1.1.1.2  mrg   7.  Troubleshooting
    891      1.1  mrg 
    892      1.1  mrg 
    893      1.1  mrg 
    894  1.1.1.2  mrg       The cursor appears as a white box, after switching modes
    895      1.1  mrg         There is a known bug in the H/W cursor, that sometimes causes
    896      1.1  mrg         the cursor to be redrawn as a white box, when the mode is
    897      1.1  mrg         changed.  This can be fixed by moving the cursor to a different
    898      1.1  mrg         region, switching to the console and back again, or if it is too
    899      1.1  mrg         annoying the H/W cursor can be disabled by removing the
    900      1.1  mrg         "HWcursor" option.
    901      1.1  mrg 
    902  1.1.1.2  mrg       The cursor hot-spot isn't at the same point as the cursor
    903      1.1  mrg         With modes on the 6555x machines that are stretched to fill the
    904      1.1  mrg         flat panel, the H/W cursor is not correspondingly stretched.
    905      1.1  mrg         This is a small and long-standing bug in the current server. You
    906      1.1  mrg         can avoid this by either using the "NoStretch" option or
    907      1.1  mrg         removing the HWcursor" option.
    908      1.1  mrg 
    909  1.1.1.2  mrg       The lower part of the screen is corrupted
    910      1.1  mrg         Many DSTN screens use the top of video ram to implement a frame
    911      1.1  mrg         accelerator. This reduces the amount of video ram available to
    912      1.1  mrg         the modes. The server doesn't prevent the user from specifying a
    913      1.1  mrg         mode that will use this memory, it prints a warning on the
    914      1.1  mrg         console.  The effect of this problem will be that the lower part
    915      1.1  mrg         of the screen will reside in the same memory as the frame
    916      1.1  mrg         accelerator and will therefore be corrupt. Try reducing the
    917      1.1  mrg         amount of memory consumed by the mode.
    918      1.1  mrg 
    919  1.1.1.2  mrg       There is a video signal, but the screen doesn't sync.
    920      1.1  mrg         You are using a mode that your screen cannot handle. If it is a
    921      1.1  mrg         non-standard mode, maybe you need to tweak the timings a bit. If
    922      1.1  mrg         it is a standard mode and frequency that your screen should be
    923      1.1  mrg         able to handle, try to find different timings for a similar mode
    924      1.1  mrg         and frequency combination. For LCD modes, it is possible that
    925      1.1  mrg         your LCD panel requires different panel timings at the text
    926      1.1  mrg         console than with a graphics mode. In this case you will need
    927      1.1  mrg         the "UseModeline" and perhaps also the "FixPanelSize" options to
    928      1.1  mrg         reprogram the LCD panel timings to sensible values.
    929      1.1  mrg 
    930  1.1.1.2  mrg       `Wavy' screen.
    931      1.1  mrg         Horizontal waving or jittering of the whole screen, continuously
    932  1.1.1.2  mrg         (independent from drawing operations). You are probably using a
    933      1.1  mrg         dot clock that is too high (or too low); it is also possible
    934      1.1  mrg         that there is interference with a close MCLK. Try a lower dot
    935      1.1  mrg         clock.  For CRT's you can also try to tweak the mode timings;
    936      1.1  mrg         try increasing the second horizontal value somewhat.
    937      1.1  mrg 
    938  1.1.1.2  mrg       Crash or hang after start-up (probably with a black screen).
    939      1.1  mrg         Try the "NoAccel" or one of the XAA acceleration options
    940      1.1  mrg         discussed above. Check that the BIOS settings are OK; in
    941      1.1  mrg         particular, disable caching of 0xa0000-0xaffff. Disabling hidden
    942      1.1  mrg         DRAM refresh may also help.
    943      1.1  mrg 
    944  1.1.1.2  mrg       Hang as the first text is appearing on the screen on SVR4
    945  1.1.1.2  mrg         machines.
    946      1.1  mrg         This problem has been reported under UnixWare 1.x, but not
    947      1.1  mrg         tracked down. It doesn't occur under UnixWare 2.x and only
    948      1.1  mrg         occurs on the HiQV series of chips. It might affect some other
    949      1.1  mrg         SVR4 operating systems as well. The workaround is to turn off
    950      1.1  mrg         the use of CPU to screen acceleration with the
    951      1.1  mrg         "XaaNoCPUToScreenColorExapndFill" option.
    952      1.1  mrg 
    953  1.1.1.2  mrg       Crash, hang, or trash on the screen after a graphics operation.
    954      1.1  mrg         This may be related to a bug in one of the accelerated
    955      1.1  mrg         functions, or a problem with the BitBLT engine. Try the
    956      1.1  mrg         "NoAccel" or one of the XAA acceleration options discussed
    957      1.1  mrg         above. Also check the BIOS settings. It is also possible that
    958      1.1  mrg         with a high dot clock and depth on a large screen there is very
    959      1.1  mrg         little bandwidth left for using the BitBLT engine. Try reducing
    960      1.1  mrg         the clock.
    961      1.1  mrg 
    962  1.1.1.2  mrg       Chipset is not detected.
    963      1.1  mrg         Try forcing the chipset to a type that is most similar to what
    964      1.1  mrg         you have.
    965      1.1  mrg 
    966  1.1.1.2  mrg      The screen is blank when starting X
    967      1.1  mrg         One possible cause of this problem with older linux kernels is
    968      1.1  mrg         that the "APM_DISPLAY_BLANK" option didn't work correct. Either
    969      1.1  mrg         upgrade your kernel or rebuild it with the "APM_DISPLAY_BLANK"
    970      1.1  mrg         option disabled. If the problem remains, or you aren't using
    971      1.1  mrg         linux, a CRT/LCD or switch to and from the virtual console will
    972      1.1  mrg         often fix it.
    973      1.1  mrg 
    974  1.1.1.2  mrg       Textmode is not properly restored
    975      1.1  mrg         This has been reported on some configurations. Many laptops use
    976      1.1  mrg         the programmable clock of the 6554x chips at the console.  It is
    977      1.1  mrg         not always possible to find out the setting that is used for
    978      1.1  mrg         this clock if BIOS has written the MClk after the VClk. Hence
    979      1.1  mrg         the server assumes a 25.175MHz clock at the console. This is
    980      1.1  mrg         correct for most modes, but can cause some problems. Usually
    981      1.1  mrg         this is fixed by switching between the LCD and CRT.
    982      1.1  mrg         Alternatively the user can use the "TextClockFreq" option
    983      1.1  mrg         described above to select a different clock for the text
    984      1.1  mrg         console. Another possible cause of this problem is if linux
    985      1.1  mrg         kernels are compiled with the "APM_DISPLAY_BLANK" option.  As
    986      1.1  mrg         mentioned before, try disabling this option.
    987      1.1  mrg 
    988  1.1.1.2  mrg       I can't display 640x480 on my 800x600 LCD
    989      1.1  mrg         The problem here is that the flat panel needs timings that are
    990      1.1  mrg         related to the panel size, and not the mode size. There is no
    991      1.1  mrg         facility in the current Xservers to specify these values, and so
    992      1.1  mrg         the server attempts to read the panel size from the chip. If the
    993      1.1  mrg         user has used the "UseModeline" or "FixPanelSize" options the
    994      1.1  mrg         panel timings are derived from the mode, which can be different
    995  1.1.1.3  mrg         than the panel size. Try deleting these options from xorg.conf
    996      1.1  mrg         or using an LCD/CRT switch.
    997      1.1  mrg 
    998  1.1.1.2  mrg       I can't get a 320x240 mode to occupy the whole 640x480 LCD
    999      1.1  mrg         There is a bug in the 6554x's H/W cursor for modes that are
   1000      1.1  mrg         doubled vertically. The lower half of the screen is not
   1001      1.1  mrg         accessible.  The servers solution to this problem is not to do
   1002      1.1  mrg         doubling vertically.  Which results in the 320x240 mode only
   1003      1.1  mrg         expanded to 640x360. If this is a problem, a work around is to
   1004      1.1  mrg         remove the "HWcursor" option. The server will then allow the
   1005      1.1  mrg         mode to occupy the whole 640x480 LCD.
   1006      1.1  mrg 
   1007  1.1.1.2  mrg       After a suspend/resume my screen is messed up
   1008      1.1  mrg         During a suspend/resume, the BIOS controls what is read and
   1009      1.1  mrg         written back to the registers. If the screen is using a mode
   1010      1.1  mrg         that BIOS doesn't know about, then there is no guarantee that it
   1011      1.1  mrg         will be resumed correctly. For this reason a mode that is as
   1012      1.1  mrg         close to VESA like as possible should be selected. It is also
   1013      1.1  mrg         possible that the VGA palette can be affected by a
   1014      1.1  mrg         suspend/resume.  Using an 8bpp, the colour will then be
   1015      1.1  mrg         displayed incorrectly. This shouldn't affect higher depths, and
   1016      1.1  mrg         is fixable with a switch to the virtual console and back.
   1017      1.1  mrg 
   1018  1.1.1.2  mrg       The right hand edge of the mode isn't visible on the LCD
   1019      1.1  mrg         This is usually due to a problem with the "LcdCenter" option. If
   1020      1.1  mrg         this option is removed form xorg.conf, then the problem might go
   1021      1.1  mrg         away. Alternatively the manufacturer could have incorrectly
   1022      1.1  mrg         programmed the panel size in the EGA console mode. The
   1023      1.1  mrg         "FixPanelSize" can be used to force the modeline values into the
   1024      1.1  mrg         panel size registers. Two machines that are known to have this
   1025  1.1.1.2  mrg         problem are the "HP OmniBook 5000" and the "NEC Versa 4080".
   1026      1.1  mrg 
   1027  1.1.1.2  mrg       My TFT screen has a reddish tint in 24bpp mode
   1028      1.1  mrg         For 6554x chipsets the server assumes that the TFT bus width is
   1029      1.1  mrg         24bits. If this is not true then the screen will appear to have
   1030      1.1  mrg         a reddish tint. This can be fixed by using the "18BitBus"
   1031      1.1  mrg         option. Note that the reverse is also true. If the "18BitBus" is
   1032      1.1  mrg         used and the TFT bus width is 24bpp, then the screen will appear
   1033      1.1  mrg         reddish. Note that this option only has an effect on TFT
   1034      1.1  mrg         screens.
   1035      1.1  mrg 
   1036  1.1.1.2  mrg       SuperProbe won't work with my chipset
   1037      1.1  mrg         At least one non-PCI bus system with a HiQV chipset has been
   1038      1.1  mrg         found to require the "-no_bios" option for SuperProbe to
   1039      1.1  mrg         correctly detect the chipset with the factory default BIOS
   1040      1.1  mrg         settings. The server itself can correctly detect the chip in the
   1041      1.1  mrg         same situation.
   1042      1.1  mrg 
   1043  1.1.1.2  mrg       My 690xx machine lockups when using the
   1044      1.1  mrg         The 690xx MMIO mode has been implemented entirely from the
   1045      1.1  mrg         manual as I don't have the hardware to test it on. At this point
   1046      1.1  mrg         no testing has been done and it is entirely possible that the
   1047      1.1  mrg         "MMIO option will lockup your machine. You have been warned!
   1048      1.1  mrg         However if you do try this option and are willing to debug it,
   1049      1.1  mrg         I'd like to hear from you.
   1050      1.1  mrg 
   1051  1.1.1.2  mrg       My TrueColor windows are corrupted when using the
   1052      1.1  mrg         Chips and Technologies specify that the memory clock used with
   1053      1.1  mrg         the multimedia engine running should be lower than that used
   1054      1.1  mrg         without. As use of the HiQV chipsets multimedia engine was
   1055      1.1  mrg         supposed to be for things like zoomed video overlays, its use
   1056      1.1  mrg         was supposed to be occasional and so most machines have their
   1057      1.1  mrg         memory clock set to a value that is too high for use with the
   1058      1.1  mrg         "Overlay" option. So with the "Overlay" option, using the
   1059      1.1  mrg         "SetMClk" option to reduce the speed of the memory clock is
   1060      1.1  mrg         recommended.
   1061      1.1  mrg 
   1062  1.1.1.2  mrg       The mpeg video playing with the XVideo extension has corrupted
   1063  1.1.1.2  mrg         colours
   1064      1.1  mrg         The XVideo extension has only recently been added to the chips
   1065      1.1  mrg         driver.  Some YUV to RGB colour have been noted at 15 and 16 bit
   1066      1.1  mrg         colour depths.  However, 8 and 24 bit colour depths seem to work
   1067      1.1  mrg         fine.
   1068      1.1  mrg 
   1069  1.1.1.2  mrg       My ct69030 machine locks up when starting X
   1070      1.1  mrg         The ct69030 chipset introduced a new dual channel architecture.
   1071      1.1  mrg         In its current form, X can not take advantage of this second
   1072      1.1  mrg         display channel. In fact if the video BIOS on the machine sets
   1073      1.1  mrg         the ct69030 to a dual channel mode by default, X will lockup
   1074      1.1  mrg         hard at this point. The solution is to use the BIOS setup to
   1075      1.1  mrg         change to a single display channel mode, ensuring that both the
   1076      1.1  mrg         IOSS and MSS registers are set to a single channel mode. Work is
   1077      1.1  mrg         underway to fix this.
   1078      1.1  mrg 
   1079  1.1.1.2  mrg       I can't start X-windows with 16, 24 or 32bpp
   1080      1.1  mrg         Firstly, is your machine capable of 16/24/32bpp with the mode
   1081      1.1  mrg         specified. Many LCD displays are incapable of using a 24bpp
   1082      1.1  mrg         mode. Also you need at least a 65540 to use 16/24bpp and at
   1083      1.1  mrg         least a 65550 for 32bpp. The amount of memory used by the mode
   1084      1.1  mrg         will be doubled/tripled/quadrupled. The correct options to start
   1085      1.1  mrg         the server with these modes are
   1086      1.1  mrg 
   1087      1.1  mrg 
   1088      1.1  mrg                   startx -- -depth 16             5-6-5 RGB ('64K color', XGA)
   1089      1.1  mrg                   startx -- -depth 15             5-5-5 RGB ('Hicolor')
   1090      1.1  mrg                   startx -- -depth 24             8-8-8 RGB truecolor
   1091      1.1  mrg 
   1092      1.1  mrg 
   1093      1.1  mrg      or with the HiQV series of chips you might try
   1094      1.1  mrg 
   1095      1.1  mrg                startx -- -depth 24 -fbbpp 32   8-8-8 RGB truecolor
   1096      1.1  mrg 
   1097      1.1  mrg 
   1098  1.1.1.2  mrg      however as X11R7.5 allows 32bpp pixmaps to be used with frame-
   1099      1.1  mrg      buffers operating in 24bpp, this mode of operating will cost per-
   1100      1.1  mrg      formance for no gain in functionality.
   1101      1.1  mrg 
   1102      1.1  mrg      Note that the "-bpp" option has been removed and replaced with a
   1103      1.1  mrg      "-depth" and "-fbbpp" option because of the confusion between the
   1104      1.1  mrg      depth and number of bits per pixel used to represent to framebuffer
   1105      1.1  mrg      and the pixmaps in the screens memory.
   1106      1.1  mrg 
   1107      1.1  mrg   A general problem with the server that can manifested in many way such
   1108      1.1  mrg   as drawing errors, wavy screens, etc is related to the programmable
   1109      1.1  mrg   clock. Many potential programmable clock register setting are
   1110      1.1  mrg   unstable.  However luckily there are many different clock register
   1111      1.1  mrg   setting that can give the same or very similar clocks. The clock code
   1112      1.1  mrg   can be fooled into giving a different and perhaps more stable clock by
   1113      1.1  mrg   simply changing the clock value slightly. For example 65.00MHz might
   1114      1.1  mrg   be unstable while 65.10MHz is not. So for unexplained problems not
   1115      1.1  mrg   addressed above, please try to alter the clock you are using slightly,
   1116      1.1  mrg   say in steps of 0.05MHz and see if the problem goes away.
   1117      1.1  mrg   Alternatively, using the "CRTClkIndx" or "FPClkIndx" option with HiQV
   1118      1.1  mrg   chips might also help.
   1119      1.1  mrg 
   1120      1.1  mrg 
   1121      1.1  mrg   For other screen drawing related problems, try the "NoAccel" or one of
   1122      1.1  mrg   the XAA acceleration options discussed above. A useful trick for all
   1123      1.1  mrg   laptop computers is to switch between LCD/CRT (usually with something
   1124      1.1  mrg   like Fn-F5), if the screen is having problems.
   1125      1.1  mrg 
   1126      1.1  mrg   If you are having driver-related problems that are not addressed by
   1127      1.1  mrg   this document, or if you have found bugs in accelerated functions, you
   1128      1.1  mrg   can try contacting the Xorg team (the current driver maintainer can be
   1129  1.1.1.2  mrg   reached at  <mailto:eich (a] freedesktop.org>).
   1130      1.1  mrg 
   1131      1.1  mrg 
   1132  1.1.1.2  mrg   8.  Disclaimer
   1133      1.1  mrg 
   1134      1.1  mrg 
   1135      1.1  mrg   The Xorg X server, allows the user to do damage to their hardware with
   1136      1.1  mrg   software with old monitors which may not tolerate bad display
   1137      1.1  mrg   settings.  Although the authors of this software have tried to prevent
   1138      1.1  mrg   this, they disclaim all responsibility for any damage caused by the
   1139      1.1  mrg   software. Use caution, if you think the X server is frying your
   1140      1.1  mrg   screen, TURN THE COMPUTER OFF!!
   1141      1.1  mrg 
   1142      1.1  mrg 
   1143  1.1.1.2  mrg   9.  Acknowledgement
   1144      1.1  mrg 
   1145      1.1  mrg 
   1146      1.1  mrg   The authors of this software wish to acknowledge the support supplied
   1147      1.1  mrg   by Chips and Technologies during the development of this software.
   1148      1.1  mrg 
   1149      1.1  mrg 
   1150  1.1.1.2  mrg   10.  Authors
   1151      1.1  mrg 
   1152      1.1  mrg 
   1153      1.1  mrg   Major Contributors (In no particular order)
   1154      1.1  mrg 
   1155  1.1.1.2  mrg   o  Nozomi Ytow
   1156      1.1  mrg 
   1157  1.1.1.2  mrg   o  Egbert Eich
   1158      1.1  mrg 
   1159  1.1.1.2  mrg   o  David Bateman
   1160      1.1  mrg 
   1161  1.1.1.2  mrg   o  Xavier Ducoin
   1162      1.1  mrg 
   1163      1.1  mrg   Contributors (In no particular order)
   1164      1.1  mrg 
   1165  1.1.1.2  mrg   o  Ken Raeburn
   1166      1.1  mrg 
   1167      1.1  mrg 
   1168  1.1.1.2  mrg   o  Shigehiro Nomura
   1169      1.1  mrg 
   1170  1.1.1.2  mrg   o  Marc de Courville
   1171      1.1  mrg 
   1172  1.1.1.2  mrg   o  Adam Sulmicki
   1173      1.1  mrg 
   1174  1.1.1.2  mrg   o  Jens Maurer
   1175      1.1  mrg 
   1176      1.1  mrg   We also thank the many people on the net who have contributed by
   1177      1.1  mrg   reporting bugs and extensively testing this server.
   1178      1.1  mrg 
   1179      1.1  mrg 
   1180      1.1  mrg 
   1181