GBE

From LinuxMIPS
Revision as of 08:02, 24 July 2008 by Onion (Talk | contribs)

Jump to: navigation, search

What is GBE?

GBE is the Grahics Back End on the SGI O2 and the SGI Visual Workstations. GBE transfers image data from main memory to the attached display and also handles tasks like display resolution, depth and palette.

Accessing GBE

GBE is located at 0x16000000 on the SGI O2 and at 0xd0000000 on the SGI Visual Workstation.

How GBE works

(Text from the Linux driver)

The GBE hardware uses a tiled memory to screen mapping. Tiles are blocks of 512x128, 256x128 or 128x128 pixels, respectively for 8bit, 16bit and 32 bit modes (64 kB). They cover the screen with partial tiles on the right and/or bottom of the screen if needed.

Tiles have the advantage that they can be allocated individually in memory. However, this mapping is not linear at all, which is not really convienient. In order to support linear addressing, the GBE DMA hardware is fooled into thinking the screen is only one tile large and but has a greater height, so that the DMA transfer covers the same region. Tiles are still allocated as independent chunks of 64KB of continuous physical memory and remapped so that the kernel sees the framebuffer as a continuous virtual memory.

Linux support

Framebuffer (dumb) support with GBE is working fine under Linux.

Acceleration

The Linux driver does not support any kind of acceleration. Lately, NetBSD has gained acceleration support for both console [1] and X [2], [3]. This information could be used for Linux too.