[Top] [All Lists]

Re: SGI O2: working framebuffer/X11 modes?

To: "Stephen P. Becker" <>
Subject: Re: SGI O2: working framebuffer/X11 modes?
From: Michael Joosten <>
Date: Fri, 09 Dec 2005 21:29:32 +0100
In-reply-to: <>
Organization: Siemens C-LAB
Original-recipient: rfc822;
References: <> <>
User-agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)
Ups, that was fast...

Stephen P. Becker wrote:

Prior to the 2.6.15-rc1 import into linux-mips git, X was only useable if some variant of the gbefb patch at was used. The symptom was that the X server would start and appear to be running, but you would only have a black screen as the output. There was the additional oddity that even with this patch applied, X would do the old black screen thing for anybody with greater than 256mb, but less than 768mb of RAM (introduced by the ip32 full memory patch which went into the linux-mips tree in the past year or so). In 2.6.15, now we only need the following change for X to work, and there seems to be no restrictions on the amount of RAM under which X will run: Another oddity which has plagued gbefb on O2 is that allocating more than 4mb of memory to gbefb causes it to fail outright. The kernel will boot and userland comes up, but the framebuffer never initializes.

As just today another old O2 materialized on the trash heap around here, I actually might try my luck - but it's a R10K O2, IP32. The sgivwfb driver uses by default 8MB at the highest end of phys memory, and increasing it to 16MB hasn't harmed yet.

Currently, the only VisWS mode that works under X11 is Depth 15bit,
using the 2 byte/16bit ARGB5 mode in sgivwfb.c, with 1280x1024 or higher with the 1600sw LCD panel.

Interesting, because everything I have heard from folks who have tried to use 1600sw with their O2s say that it doesn't work at all.

Well, I don't have a 1600sw, and there are some internal patches in the visws mailing list of Florian Boor who added a I2C self configuration to the driver, such that entereing the monitor type by kernel cmd line argument is not necessary anymore.

In any case, X runs just fine at every single resolution I have tried, including 640x480, 800x600, 1024x768, and 1280x1024. Basically, if you have a working framebuffer at any particular resolution (I usually pass it at boot time via something like video=gbefb:1280x1024-16@85), X will run at that resolution, no problem, since we are just using the fbdev X driver.

OK, resolution also seems less a problem with the sgivwfb driver (though I remember a weirdness with 1024x768), but...

Surprisingly, Depth 16 in
/etc/X11/xorg.conf is not completely OK anymore, perhaps due to problems with the transparency bit. Anything else like 24 or 8 bit looks decidedly odd, and hard to read at all. Namely 24/32bit is completely broken, the width of the
display is only 2/3 of the screen, though timing is still OK.

To my knowledge, running X in anything but 15bit depth has never worked on O2. I have attempted to start my O2 up with gbefb running at various depths other than 16, and they always fail, defaulting back to 640x480 at 16bpp (or occasionally even hanging the kernel). Attempting to force some depth in the X config file always screwed things up whenever I attempted this. Furthermore, it seems like the new modular is smarter about probing the framebuffer capabilities, and totally ignores the depth you specify in xorg.conf, defaulting straight to 15.

...different depths produce funny results. Haven't tried 8bit, but 24 is definitely broken. You can still see something, but barely. So, we can probably deduce that the other-than-15bit modes were never actually tested by the original author (some intern then a SGI?). Recent info about the chances to get some hardware docs about the VisWS from SGI were simply turned down by the astonishing fact that they really dumped the whole product line: hardware, contracts, subcontractors (developed the gfx drivers for Win NT) and even documentation. Speak about a deed (x86 graphics workstations) so awful that nobody at SGI wanted be remembered about it ?

Thanks a bunch, Michael

<Prev in Thread] Current Thread [Next in Thread>