ADS GraphicsClient Plus Single Board Computer

For more details, contact Applied Data Systems or see
http://www.applieddata.net/products.html

The original Linux support for this product has been provided by 
Nicolas Pitre <nico@cam.org>. Continued development work by
Woojung Huh <whuh@applieddata.net>

It's currently possible to mount a root filesystem via NFS providing a
complete Linux environment.  Otherwise a ramdisk image may be used.  The
board supports MTD/JFFS, so you could also mount something on there.

Use 'make graphicsclient_config' before any 'make config'.  This will set up
defaults for GraphicsClient Plus support.

The kernel zImage is linked to be loaded and executed at 0xc0200000.  
Also the following registers should have the specified values upon entry:

	r0 = 0
	r1 = 29	(this is the GraphicsClient architecture number)

Linux can  be used with the ADS BootLoader that ships with the
newer rev boards. See their documentation on how to load Linux.
Angel is not available for the GraphicsClient Plus AFAIK.

There is a  board known as just the GraphicsClient that ADS used to
produce but has end of lifed. This code will not work on the older
board with the ADS bootloader, but should still work with Angel,
as outlined below.  In any case, if you're planning on deploying
something en masse, you should probably get the newer board.

If using Angel on the older boards, here is a typical angel.opt option file
if the kernel is loaded through the Angel Debug Monitor:

----- begin angelboot.opt -----
base 0xc0200000
entry 0xc0200000
r0 0x00000000
r1 0x0000001d
device /dev/ttyS1
options "38400 8N1"
baud 115200
#otherfile ramdisk.gz
#otherbase 0xc0800000
exec minicom
----- end angelboot.opt -----

Then the kernel (and ramdisk if otherfile/otherbase lines above are
uncommented) would be loaded with:

	angelboot -f angelboot.opt zImage

Here it is assumed that the board is connected to ttyS1 on your PC
and that minicom is preconfigured with /dev/ttyS1, 38400 baud, 8N1, no flow
control by default.

If any other bootloader is used, ensure it accomplish the same, especially
for r0/r1 register values before jumping into the kernel.


Supported peripherals:
- SA1100 LCD frame buffer (8/16bpp...sort of)
- on-board SMC 92C96 ethernet NIC
- SA1100 serial port
- flash memory access (MTD/JFFS)
- pcmcia
- touchscreen(ucb1200)
- ps/2 keyboard
- console on LCD screen
- serial ports (ttyS[0-2])
  - ttyS0 is default for serial console
- Smart I/O (ADC, keypad, digital inputs, etc)
  See http://www.applieddata.com/developers/linux for IOCTL documentation
  and example user space code. ps/2 keybd is multiplexed through this driver

To do:
- UCB1200 audio with new ucb_generic layer
- everything else!  :-)

Notes:

- The flash on board is divided into 3 partitions.  mtd0 is where
  the ADS boot ROM and zImage is stored.  It's been marked as
  read-only to keep you from blasting over the bootloader. :)  mtd1 is
  for the ramdisk.gz image.  mtd2 is user flash space and can be
  utilized for either JFFS or if you're feeling crazy, running ext2
  on top of it. If you're not using the ADS bootloader, you're
  welcome to blast over the mtd1 partition also.

- 16bpp mode requires a different cable than what ships with the board.
  Contact ADS or look through the manual to wire your own. Currently,
  if you compile with 16bit mode support and switch into a lower bpp
  mode, the timing is off so the image is corrupted.  This will be
  fixed soon.

Any contribution can be sent to nico@cam.org and will be greatly welcome!

