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