[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[oc] Video controller core



Just read some of the messages about building a video controller core.

I have done some work on the other side of the aisle... writing Linux
kernel video device drivers.

Here are some ideas about video cores:

For ultra-low-cost embedded, CGA is the best choice.

If compatibility is a concern at all, though, it is much smarter to
develop a VGA core.  VGA is pretty much universally supported.

But if you want to develop a GOOD video core.......

* Lives on a PCI or AGP bridge

* All 32-bit registers, 100% memory-mapped I/O (MMIO)

* Registers can optionally live in a DMA command buffer.  This is a ring
buffer of register reads and writes, which the video chip processes
asynchronously.

* NO VGA compatibility.  NO text mode.  These can be emulated in BIOS or
other software.

* Integrated *DRAM controller, as the video chip must keep tight control
over both video clocks and memory clocks

* Standard set of 2D accels:  fills, blits (fb/DMA mem -> fb/DMA mem
copy), etc.

* VESA features like DDC, power management

If someone is ambitious, this design can extended to support 3D ---
without changing any of the chip features/logic above.  In most 3D chip
designs, 3D is seamlessly layered on top of 2D, and is very cheap to add
to the design.



-- 
Jeff Garzik              | "Are you the police?"
Building 1024            | 
MandrakeSoft, Inc.       | "No ma'am.  We're musicians."