This package provides an eCos framebuffer device driver for a VGA graphics card in a standard PC. Although VGA is now very old technology, more recent PC graphics hardware usually still provides compatibility. The device driver works by interacting directly with the hardware, not via the video BIOS, so the level of compatibility must be very high. Hence the driver cannot be guaranteed to work with all PC graphics cards and should be used with care.
CYGPKG_DEVS_FRAMEBUF_I386_PCVGA is a hardware
package and is loaded automatically when configuring eCos for a PC
target. By default it is inactive and does not add any code size or
data overheads. To activate the driver the generic framebuffer package
CYGPKG_IO_FRAMEBUF should be added to the
configuration. The driver's functionality is only accessible via the
API defined by the generic package.
The driver supports just one of the VGA graphics modes, mode 13. This
provides an 8bpp linear framebuffer with a resolution of 320x200
pixels, and uses a writeable palette for colour management. The
cyg_fb structure for this is
cyg_pcvga_fb_mode13_320x200x8, and the identifier
for use with the framebuffer macro API is
mode13_320x200x8. The only
ioctl operations supported are
There is one configuration option specific to the PC VGA hardware.
Some of the documentation for these cards recommends a delay after
every VGA register access because not all graphics cards can keep up
with full-speed I/O. By default the driver implements such a delay,
but obviously this slows down certain operations. If the graphics card
actually being used does not require this delay then the configuration
can be disabled.