CFXGA - X Server for a Compact Flash VGA card
The CFXGA
The CFXGA
is (was) a compact flash card made by I-O DATA that supports VGA, S-Video
and Composite output. It comes with a Linux
driver,image viewer and mirror tool. Unfortunally, it does not
support interactive graphics. This page has an X server which solves
this problem.
Inside the CFXGA
The Epson
S1D13806 VGA chip is the core of the CFXGA. CF does not have
enough address lines to memory map the frame buffer of this
chip. Instead, I-O Data is using the BLT interface which is supported
by their kernel module. We leverage this for our X server.
X Server
The X server works, but the code isnt very
pretty. :) The code has been functional and stable since around
October 2004. We are using the shadow buffer and then BLTing our
updates using the kernel driver. At present we only support 640x480 at
16bpp. There is a long list of improvements which include: more
resolutions and color depths, better error handling (like when the
card is ejected), supporting the X acceleration interface, support
dpms, and generally cleaning up the code. If you would like to address
any of these issues, please feel free to send patches to kent [at]
cc.gatech.edu.
Driving a MicroOptical
Several MicroOptical displays prefer
to be driven at 604x480@60Hz. To get 60Hz, we also modified the I-O
Data kernel module. Our modified module initializes the S1D13806 to
640x480@60Hz and 16bpp. Note that we also changed the name of the
module to iodata_cs.
Mini Howto
- Get the kernel module to load automatically. This involves
changing some lines /etc/pcmcia/config so the pcmcia scripts load the
module and create the right /dev files. In particular for our kernel
module, add these two lines:
device "iodata_cs" needs_mtd
class "memory" module "iodata_cs"
and change the Anonymous Memory entry to look like this:
card "Anonymous Memory"
anonymous
bind "iodata_cs"
- Run the X server
If X complains make sure you have framebuffer support compiled into the kernel and have the proper tty dev files (eg /dev/tty0, major 4, minor 0, etc.)
Downloads
X server binary compiled for StrongArm.
Source code patch for XFree86 4.3.
Source for modified kernel module (for 640x480@60Hz)
This web page and software is maintained by Kent Lyons: kent [at]
cc.gatech.edu.