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