1 ================= 2 What is matroxfb? 3 ================= 4 5 .. [This file is cloned from VesaFB. Thanks go 6 7 8 This is a driver for a graphic framebuffer for 9 Alpha, Intel and PPC boxes. 10 11 Advantages: 12 13 * It provides a nice large console (128 cols 14 without using tiny, unreadable fonts. 15 * You can run XF{68,86}_FBDev or XFree86 fbde 16 * Most important: boot logo :-) 17 18 Disadvantages: 19 20 * graphic mode is slower than text mode... bu 21 if you use same resolution as you used in t 22 23 24 How to use it? 25 ============== 26 27 Switching modes is done using the video=matrox 28 or using `fbset` program. 29 30 If you want, for example, enable a resolution 31 pass to the kernel this command line: "video=m 32 33 You should compile in both vgacon (to boot if 34 box) and matroxfb (for graphics mode). You sho 35 unless you have primary display on non-Matrox 36 Documentation/fb/vesafb.rst for details). 37 38 Currently supported video modes are (through v 39 has [as addon] compatibility code): 40 41 42 Graphic modes 43 ------------- 44 45 === ======= ======= ======= ======= ===== 46 bpp 640x400 640x480 768x576 800x600 960x7 47 === ======= ======= ======= ======= ===== 48 4 0x12 0x102 49 8 0x100 0x101 0x180 0x103 0x18 50 15 0x110 0x181 0x113 0x18 51 16 0x111 0x182 0x114 0x18 52 24 0x1B2 0x184 0x1B5 0x18 53 32 0x112 0x183 0x115 0x18 54 === ======= ======= ======= ======= ===== 55 56 57 Graphic modes (continued) 58 ------------------------- 59 60 === ======== ======== ========= ========= === 61 bpp 1024x768 1152x864 1280x1024 1408x1056 160 62 === ======== ======== ========= ========= === 63 4 0x104 0x106 64 8 0x105 0x190 0x107 0x198 0 65 15 0x116 0x191 0x119 0x199 0 66 16 0x117 0x192 0x11A 0x19A 0 67 24 0x1B8 0x194 0x1BB 0x19C 0 68 32 0x118 0x193 0x11B 0x19B 69 === ======== ======== ========= ========= === 70 71 72 Text modes 73 ---------- 74 75 ==== ======= ======= ======== ======== === 76 text 640x400 640x480 1056x344 1056x400 105 77 ==== ======= ======= ======== ======== === 78 8x8 0x1C0 0x108 0x10A 0x10B 79 8x16 2, 3, 7 0x109 80 ==== ======= ======= ======== ======== === 81 82 You can enter these number either hexadecimal 83 (0x100 = 256). You can also use value + 512 to 84 with your old number passed to vesafb. 85 86 Non-listed number can be achieved by more comp 87 example 1600x1200x32bpp can be specified by `v 88 89 90 X11 91 === 92 93 XF{68,86}_FBDev should work just fine, but it 94 architectures there are some glitches for 24bp 95 works fine. 96 97 Running another (accelerated) X-Server like XF 98 XFree servers have big troubles in multihead c 99 head, not even talking about second). Running 100 driver is possible, but you must not enable DR 101 color depth of your X desktop must match resol 102 virtual consoles, otherwise X will corrupt acc 103 104 105 SVGALib 106 ======= 107 108 Driver contains SVGALib compatibility code. It 109 mode for console. You can do it at boot time b 110 2,3,7,0x108-0x10C or 0x1C0. At runtime, `fbset 111 Unfortunately, after SVGALib application exits 112 Switching to another console and back fixes it 113 problem and not mine, but I'm not sure. 114 115 116 Configuration 117 ============= 118 119 You can pass kernel command line options to ma 120 `video=matroxfb:option1,option2:value2,option3 121 separated by comma, values are separated from 122 Accepted options: 123 124 ============ ================================= 125 mem:X size of memory (X can be in megab 126 You can only decrease value deter 127 it always probe for memory. Defau 128 memory usable for on-screen displ 129 disabled do not load driver; you can use a 130 is here too. 131 enabled load driver, if you have `video=m 132 configuration, you can override i 133 `off`). It is default. 134 noaccel do not use acceleration engine. I 135 accel use acceleration engine. It is de 136 nopan create initial consoles with vyre 137 scrolling. 138 pan create initial consoles as tall a 139 It is default. 140 nopciretry disable PCI retries. It is needed 141 it is autodetected for intel's 82 142 not comply to PCI 2.1 specs (it w 143 transaction terminate with succes 144 pciretry enable PCI retries. It is default 145 novga disables VGA I/O ports. It is def 146 device. You should not use this o 147 restart without power off. 148 vga preserve state of VGA I/O ports. 149 enable VGA I/O if BIOS did not it 150 most cases). 151 nobios disables BIOS ROM. It is default 152 itself. You should not use this o 153 restart without power off. 154 bios preserve state of BIOS ROM. It is 155 BIOS if BIOS was not enabled befo 156 noinit tells driver, that devices were a 157 it if you have G100 and/or if dri 158 strange pattern on screen and so 159 are still initialized. It is defa 160 init driver initializes every device i 161 memtype specifies memory type, implies 'i 162 and G400 and has following meanin 163 164 G200: 165 - 0 -> 2x128Kx32 chips, 2MB 166 - 1 -> 2x128Kx32 chips, 4MB 167 - 2 -> 2x256Kx32 chips, 4MB 168 - 3 -> 2x256Kx32 chips, 8MB 169 - 4 -> 2x512Kx16 chips, 8/16 170 - 5 -> same as above 171 - 6 -> 4x128Kx32 chips, 4MB 172 - 7 -> 4x128Kx32 chips, 8MB 173 G400: 174 - 0 -> 2x512Kx16 SDRAM, 16/3 175 - 2x512Kx32 SGRAM, 16/3 176 - 1 -> 2x256Kx32 SGRAM, 8/16 177 - 2 -> 4x128Kx32 SGRAM, 8/16 178 - 3 -> 4x512Kx32 SDRAM, 32MB 179 - 4 -> 4x256Kx32 SGRAM, 16/3 180 - 5 -> 2x1Mx32 SDRAM, 32MB 181 - 6 -> reserved 182 - 7 -> reserved 183 184 You should use sdram or sgram par 185 parameter. 186 nomtrr disables write combining on frame 187 but there is reported minor incom 188 XFree under high loads if write c 189 dropouts). 190 mtrr enables write combining on frame 191 accesses much. It is default. You 192 in kernel and your CPU must have 193 sgram tells to driver that you have Gxx 194 effect without `init`. 195 sdram tells to driver that you have Gxx 196 It is a default. 197 inv24 change timings parameters for 24b 198 Millennium II. Specify this if yo 199 around characters. 200 noinv24 use standard timings. It is the d 201 inverse invert colors on screen (for LCD 202 noinverse show true colors on screen. It is 203 dev:X bind driver to device X. Driver n 204 where device 0 is first `known` d 205 lspci lists devices in this order 206 Default is `every` known device. 207 nohwcursor disables hardware cursor (use sof 208 hwcursor enables hardware cursor. It is de 209 non-accelerated mode (`noaccel` o 210 cursor is used (except for text m 211 noblink disables cursor blinking. Cursor 212 limitation). 213 blink enables cursor blinking. It is de 214 nofastfont disables fastfont feature. It is 215 fastfont:X enables fastfont feature. X speci 216 font data, it must be >= (fontwid 217 It is faster on Gx00 series, but 218 grayscale enable grayscale summing. It work 219 4bpp, 8bpp). In DIRECTCOLOR modes 220 displayed through putc/putcs. Dir 221 can paint colors. 222 nograyscale disable grayscale summing. It is 223 cross4MB enables that pixel line can cross 224 non-Millennium. 225 nocross4MB pixel line must not cross 4MB bou 226 Millennium I or II, because of th 227 limitations which do not allow th 228 incompatible with some (if not al 229 XF86_FBDev. 230 dfp enables digital flat panel interf 231 with secondary (TV) output - if D 232 inactive and vice versa. DFP alwa 233 (monitor) output. 234 dfp:X use settings X for digital flat p 235 0 to 0xFF, and meaning of each in 236 G400 manual, in description of DA 237 operation you should set all bits 238 lowest bit selects who is source 239 or panel. Default value is now re 240 should specify this value only if 241 parameter. 242 outputs:XYZ set mapping between CRTC and outp 243 of 0 (for no CRTC), 1 (CRTC1) or 244 corresponds to primary analog out 245 secondary analog output and third 246 Default setting is 100 for cards 247 101 for G400 with DFP, and 111 fo 248 mapping only on first card, use m 249 devices. 250 vesa:X selects startup videomode. X is n 251 above for detailed explanation. D 252 has 8bpp support. Otherwise first 253 640x480x15bpp, 640x480x24bpp, 640 254 (80x25 text is always available). 255 ============ ================================= 256 257 If you are not satisfied with videomode select 258 can modify it with these options: 259 260 ============ ================================= 261 xres:X horizontal resolution, in pixels. 262 option. 263 yres:X vertical resolution, in pixel lin 264 option. 265 upper:X top boundary: lines between end o 266 pixel line of picture. Default is 267 lower:X bottom boundary: lines between en 268 pulse. Default is derived from `v 269 vslen:X length of VSYNC pulse, in lines. 270 option. 271 left:X left boundary: pixels between end 272 Default is derived from `vesa` op 273 right:X right boundary: pixels between en 274 pulse. Default is derived from `v 275 hslen:X length of HSYNC pulse, in pixels. 276 option. 277 pixclock:X dotclocks, in ps (picoseconds). D 278 option and from `fh` and `fv` opt 279 sync:X sync. pulse - bit 0 inverts HSYNC 280 If bit 3 (value 0x08) is set, com 281 generated. If bit 5 (value 0x20) 282 on. Do not forget that if you wan 283 want composite sync. 284 Default depends on `vesa`. 285 depth:X Bits per pixel: 0=text, 4,8,15,16 286 `vesa`. 287 ============ ================================= 288 289 If you know capabilities of your monitor, you 290 `maxclk`, `fh` and `fv`. In this case, `pixclo 291 pixclock <= maxclk, real_fh <= fh and real_fv 292 293 ============ ================================= 294 maxclk:X maximum dotclock. X can be specif 295 `don`t care`. 296 fh:X maximum horizontal synchronizatio 297 in kHz or Hz. Default is `don't c 298 fv:X maximum vertical frequency. X mus 299 70 for modes derived from `vesa` 300 yres > 400. 301 ============ ================================= 302 303 304 Limitations 305 =========== 306 307 There are known and unknown bugs, features and 308 Currently there are following known bugs: 309 310 - SVGALib does not restore screen on exit 311 - generic fbcon-cfbX procedures do not work o 312 `noaccel` (and cfb4 accel) driver does not 313 with access to `/dev/fb*` on Alpha can hang 314 access to `/dev/fb*` - everyone with access 315 your monitor, believe me...). 316 - 24bpp does not support correctly XF-FBDev o 317 - interlaced text mode is not supported; it l 318 but I'm not sure. 319 - Gxx0 SGRAM/SDRAM is not autodetected. 320 - maybe more... 321 322 And following misfeatures: 323 324 - SVGALib does not restore screen on exit. 325 - pixclock for text modes is limited by hardw 326 327 - 83 MHz on G200 328 - 66 MHz on Millennium I 329 - 60 MHz on Millennium II 330 331 Because I have no access to other devices, 332 frequencies for them. So driver does not ch 333 set frequency higher that this. It causes s 334 pretty effects on screen. Device was not de 335 - my Millennium G200 oscillator has frequency 336 (and it works with 8bpp on about 320 MHz do 337 But Matrox says on product sheet that VCO l 338 them (maybe that chip overheats, but it has 339 none), so it should work). 340 - special mixed video/graphics videomodes of 341 G16V16 are not supported 342 - color keying is not supported 343 - feature connector of Mystique and Gx00 is s 344 by BIOS) 345 - DDC (monitor detection) is supported throug 346 - some check for input values are not so stri 347 specify vslen=4000 and so on). 348 - maybe more... 349 350 And following features: 351 352 - 4bpp is available only on Millennium I and 353 limitation. 354 - selection between 1:5:5:5 and 5:6:5 16bpp v 355 option of fbset: "fbset -depth 16 -rgba 5,5 356 else selects 5:6:5 mode. 357 - text mode uses 6 bit VGA palette instead of 358 instead of one of 16M colors). It is due to 359 Millennium I/II and SVGALib compatibility. 360 361 362 Benchmarks 363 ========== 364 It is time to redraw whole screen 1000 times i 365 time for draw 6144000 characters on screen thr 366 (for 32bpp it is about 3GB of data (exactly 30 367 16 seconds, i.e. 187 MBps). 368 Times were obtained from one older version of 369 faster, it is kernel-space only time on P-II/3 370 PCI slot, G200 in AGP 2x slot. I did not test 371 372 NOACCEL 373 8x16 12x22 374 Millennium I G200 Millennium I G20 375 8bpp 16.42 9.54 12.33 9 376 16bpp 21.00 15.70 19.11 15 377 24bpp 36.66 36.66 35.00 35 378 32bpp 35.00 30.00 33.85 28 379 380 ACCEL, nofastfont 381 8x16 12x22 382 Millennium I G200 Millennium I G20 383 8bpp 7.79 7.24 13.55 7 384 16bpp 9.13 7.78 16.16 7 385 24bpp 14.17 10.72 18.69 10 386 32bpp 16.15 16.16 18.73 13.0 387 388 ACCEL, fastfont 389 8x16 12x22 390 Millennium I G200 Millennium I G20 391 8bpp 8.41 6.01 6.54 4 392 16bpp 9.54 9.12 8.76 6 393 24bpp 15.00 12.36 11.67 10 394 32bpp 16.18 18.29* 12.71 12 395 396 TEXT 397 8x16 398 Millennium I G200 399 TEXT 3.29 1.50 400 401 * Yes, it is slower than Millennium I. 402 403 404 Dualhead G400 405 ============= 406 Driver supports dualhead G400 with some limita 407 + secondary head shares videomemory with prim 408 if you have 32MB of videoram, but if you ha 409 to think twice before choosing videomode (f 410 is not possible). 411 + due to hardware limitation, secondary head 412 videomodes. 413 + secondary head is not accelerated. There we 414 XFree when secondary head used to use accel 415 + secondary head always powerups in 640x480@6 416 fbset to change this mode. 417 + secondary head always powerups in monitor m 418 to change it to TV mode. Also, you must sel 419 NTSC output and 625 lines for PAL output. 420 + kernel is not fully multihead ready. So som 421 + if you compiled it as module, you must inse 422 and matroxfb_crtc2 into kernel. 423 424 425 Dualhead G450 426 ============= 427 Driver supports dualhead G450 with some limita 428 + secondary head shares videomemory with prim 429 if you have 32MB of videoram, but if you ha 430 to think twice before choosing videomode. 431 + due to hardware limitation, secondary head 432 videomodes. 433 + secondary head is not accelerated. 434 + secondary head always powerups in 640x480@6 435 fbset to change this mode. 436 + TV output is not supported 437 + kernel is not fully multihead ready, so som 438 + if you compiled it as module, you must inse 439 into kernel. 440 441 Petr Vandrovec <vandrove@vc.cvut.cz>
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.