File:  [NetBSD Developer Wiki] / wikisrc / users / macallan / genfb.mdwn
Revision 1.1: download - view: text, annotated - select for diffs
Wed Apr 21 09:42:13 2010 UTC (3 years, 11 months ago) by wiki
Branches: MAIN
CVS tags: HEAD
web commit by macallan

## 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]].<br>
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.<br>
[[Xorg]] with the [[wsfb|xf86-video-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]]<br>
[[cgtwelve]] - a driver for the CG12<br>
[[pm2fb]] - an accelerated driver for the [[PGX32]]<br>
[[wcfb]] - a driver for 3Dlabs Wildcat graphics boards<br>

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb