New matroxfb (or Re: kernel 2.1.131 with Matrox G100 and mat...)

Petr Vandrovec Ing. VTEI (VANDROVE@vc.cvut.cz)
Mon, 7 Dec 1998 23:29:54 MET-1


Hello,
> what's the current state of the Matrox Productiva G100 support? Is there
> any (possibly yet unofficial) patch available?
I just released driver version 1.6b, downloadable from
ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/matroxfb.gz
It is patch for Linus's 2.1.131...
> The G100 support in 2.1.131 doesn't work for me - neither as module nor
> compiled in. According to the logs, it cannot determine the memory size
> of my graphics card. However it messes up the screen, I cannot see any
> useful string on it, instead a mix of chars and horribly flickering
> (short) lines.
Yes, it is known problem. I hope that fixed (I have no such hardware
here).
> So my first question is, whether it is possible to leave the screen in a
> usable state, when initializing fails (like here with this memory problem)?
No :-) Driver gives up at any moment and there are tons of bytes to
reprogram, some of them are WriteOnly (for example memory access timing)
and most of them undocumented (G100/G200 driver is written without any
doc because of Matrox Devrel said that they send specs to XFree team and
it is enough for Linux community...).
> I digged a bit in the kernel sources (matroxfb.c). The cause of the error
> message seemed to be the determination of the real video memory size in the
> getmemory function.
If driver switches memory interface into SGRAM, it cannot find SDRAM.
And vice versa...
> BTW, I have several problems with kernel parameters regarding matroxfb.
> What, for example, is the correct syntax for specifying the amount of
> memory? Is it 'video=matrox:mem:8M'?
If you have (detected) more than 8MB, you can use "mem:8M"... But because of
driver knows better than you, how much memory you have, you can only decrease
"available" memory.
> Nevertheless, this didn't help here. One problem is, that the mem variable
> is set up in matroxfb_setup, but this is called after matroxfb_init, and
> therefore mem is still 0 when used during init. The second problem
it is global variable...
> (vid.len=0, see above) showed up, when I hardcoded mem to 8, before using
> it in the init routine.
yes.
> Well, there's a new XFree version, which has Matrox G100 support. Maybe
> you can get the necessary information from it?
No, because of it is not documented (used) in XFree driver. I'm programing
device from scratch due to Alpha, PPC and dualhead users. And this case
is problem with this initial setup. XFree driver simple does not modify
video memory type/timmings, so it has not these problems. Simple, but
does not work in multihead configuration.

Now, for other readers of linux-kernel, what's new in 1.6b:
1) textmode support - there is now native (multihead) textmode. due to
hardware limitation, you can use only 32KB of memory on Millennium I
(it is 16K chars). On other device (Mill II, Myst, Gxxx), you can use
128KB of memory (64K chars). It is a bit more than vgacon does. But
it is a bit slower than vgacon.
Videomode support 8- and 9-dot fonts (you MUST convert your 8xX fonts
(for example built-in SUN8x16) into real 9xX fonts... ninth column is
ignored, but width is relevant).
Pixclock for textmode is very limited: G200 ~83MHz, Millenium I 66MHz
and Millenium II 60MHz. I do not have other hardware to test
(thus new value for vesa: 0x2 = 80x25 textmode)
2) support for 6MB Millenium I probably does not work... Because of
I do not know about any user of this feature (there was only one: me),
it will be removed in future, I think
3) fix for G200: it is not possible to have 8bpp with right_margin==24.
I do not know why, but it simple does not work (G200 users can
try yourself: "fbset -right_margin 24 -depth 8". depth=16,24 or 32 works
fine.
4) SVGALIB compatibility mode: if you run SVGALib program from textmode
console, it will run if you set target system type to "generic vga".
At least on G200 and Millenium I (of course on ia32, but if you have
svgalib for another architecture, it should work too).
Due to this (6bit DAC compatibility mode) there is a problem with
penguin logo in 8bpp. Close your eyes during booting or boot with 16bpp.
So if you are Alpha and/or PPC user, you have Matrox and can test this,
please test textmode support and send me results (private please, to
vandrove@vc.cvut.cz).

Please, do not report that:
a) penguin logo is miscolored
b) you see nothing (or garbage) when you compiled both vesafb and
matroxfb into kernel (unless you really have two videodevices in box...)
You should remove vesafb and try again (and do not use "vga=XX" param)
c) you tried textmode for 1600x1200/80Hz and it looks strange
(same applies for 640x480/200Hz: pixclock must be >= 16200 (depends
on hardware piece)) (matrox BIOS supports at most 1056x480/60Hz, most
of matroxes can do 1024x768/60Hz, but nothing more).
d) svgalib does not work when started from graphics console. It works
only when hardware is in VGA-compatible mode (== textmode).
e) svgalib does not restore screen at exit unless you know why...

Best regards and thank for you time,
Petr Vandrovec
vandrove@vc.cvut.cz

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/