genfb

genfb* at pci?
genfb* at sbus?

The genfb driver provides an unaccelerated framebuffer console on graphics cards set up by the firmware ( usually ?OpenFirmware ) but which are otherwise unsupported. Since it has no knowledge of the underlying graphics hardware whatsoever it relies on device properties to tell it where to find the framebuffer and what the current video mode's geometry is, this requires machine dependent code to extract this information and hand it to genfb. Currently this is implemented for ?macppc and ?sparc64.
On ?SBus systems there is no need for any such translation code, but many cards use non-standard properties ( AG-10e for example ), pass wrong parameters ( CG12 claims 32bit depth even though the address property points at a monochrome framebuffer ) and there is no widely supported way to change palette registers, so use of this driver with ?SBus hardware is only recommended if there is absolutely no other driver for your ?SBus graphics card. On ?PCI systems things look much better - the 'color!' method is pretty much universally supported and most cards I have seen so far set their properties in a sane way. Of course there are still exceptions ( Sun's wildcat cards don't provide a sane address property and the PGX32 passes a wrong value in linebytes ) but these seem to be rare on Sun hardware and nonexistent on PCI Macs. Native drivers and/or workarounds exist for all known exceptions.
?Xorg with the ?wsfb driver will run in whatever mode and colour depth the console uses.

The main motivation for writing genfb was to provide a machine independent replacement for ?macppc's ofb driver which supports all the ?wsdisplay goodies and doesn't suffer from ofb's cache problems. It can also be used on ?i386 and ?amd64 where it supersedes the vesafb driver - mode setting via VBE has been moved to machine dependent code.

See also

agten - a driver for the AG-10e
cgtwelve - a driver for the CG12
pm2fb - an accelerated driver for the PGX32
wcfb - a driver for 3Dlabs Wildcat graphics boards