The Intrinsyc CerfBoard is a StrongARM 1110-based computer on a board that measures 
approximately 2" square. It includes an Ethernet controller, an RS232-compatible serial port, a
USB function port, and one CompactFlash+ slot on the back. Pictures can be found at the
Intrinsyc website, http://www.intrinsyc.com.

This document describes the support in the Linux kernel for the Intrinsyc CerfBoard as of
version 2.4.0-test4-np1.

Supported in this version:
   - CompactFlash+ slot (select PCMCIA in General Setup and any options that may be required)
   - Onboard Crystal CS8900 Ethernet controller (Cerf CS8900A support in Network Devices)
   - Serial ports with a serial console (hardcoded to 38400 8N1)

Not supported in this version (yet):
   - LCD driver/touchscreen interface
   - UDC (a driver exists right now, but is unstable and slow and only works with the Linux USB)

In order to get this kernel onto your Cerf, you need a server that runs both BOOTP and
TFTP. Detailed instructions should have come with your evaluation kit on how to use the
bootloader. This series of commands will suffice:

   make cerf_config
   make xconfig
   make dep
   make zImage
   cp arch/arm/boot/zImage <TFTP directory>

The default config uses a 4MB RAM disk located at 0xc0500000 as root. Setting the board to
mount root from a NFS partition works, too.


I-Gene Leong, Intrinsyc Software Inc.
ileong@intrinsyc.com

