Linux on the CRIS architecture
==============================

This is a port of Linux to Axis Communications ETRAX 100LX,
ETRAX FS and ARTPEC-3 embedded network CPUs.

For more information about CRIS and ETRAX please see further below.

In order to compile this you need a version of gcc with support for the
ETRAX chip family. Please see this link for more information on how to
download the compiler and other tools useful when building and booting
software for the ETRAX platform:

http://developer.axis.com/wiki/doku.php?id=axis:install-howto-2_20

What is CRIS ?
--------------

CRIS is an acronym for 'Code Reduced Instruction Set'. It is the CPU
architecture in Axis Communication AB's range of embedded network CPU's,
called ETRAX.

The ETRAX 100LX chip
--------------------

For reference, please see the following link:

http://www.axis.com/products/dev_etrax_100lx/index.htm

The ETRAX 100LX is a 100 MIPS processor with 8kB cache, MMU, and a very broad
range of built-in interfaces, all with modern scatter/gather DMA.

Memory interfaces:

	* SRAM
	* NOR-flash/ROM
	* EDO or page-mode DRAM
	* SDRAM

I/O interfaces:

	* one 10/100 Mbit/s ethernet controller
	* four serial-ports (up to 6 Mbit/s)
	* two synchronous serial-ports for multimedia codec's etc.
	* USB host controller and USB slave
	* ATA
	* SCSI
	* two parallel-ports
	* two generic 8-bit ports

	(not all interfaces are available at the same time due to chip pin
         multiplexing)

ETRAX 100LX is CRISv10 architecture.


The ETRAX FS and ARTPEC-3 chips
-------------------------------

The ETRAX FS is a 200MHz 32-bit RISC processor with on-chip 16kB
I-cache and 16kB D-cache and with a wide range of device interfaces
including multiple high speed serial ports and an integrated USB 1.1 PHY.

The ARTPEC-3 is a variant of the ETRAX FS with additional IO-units
used by the Axis Communications network cameras.

See below link for more information:

http://www.axis.com/products/dev_etrax_fs/index.htm

ETRAX FS and ARTPEC-3 are both CRISv32 architectures.

Bootlog
-------

Just as an example, this is the debug-output from a boot of Linux 2.4 on
a board with ETRAX 100LX. The displayed BogoMIPS value is 5 times too small :)
At the end you see some user-mode programs booting like telnet and ftp daemons.

Linux version 2.4.1 (bjornw@godzilla.axis.se) (gcc version 2.96 20000427 (experimental)) #207 Wed Feb 21 15:48:15 CET 2001
ROM fs in RAM, size 1376256 bytes
Setting up paging and the MMU.
On node 0 totalpages: 2048
zone(0): 2048 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Linux/CRIS port on ETRAX 100LX (c) 2001 Axis Communications AB
Kernel command line: 
Calibrating delay loop... 19.91 BogoMIPS
Memory: 13872k/16384k available (587k kernel code, 2512k reserved, 44k data, 24k init)
kmem_create: Forcing size word alignment - vm_area_struct
kmem_create: Forcing size word alignment - filp
Dentry-cache hash table entries: 2048 (order: 1, 16384 bytes)
Buffer-cache hash table entries: 2048 (order: 0, 8192 bytes)
Page-cache hash table entries: 2048 (order: 0, 8192 bytes)
kmem_create: Forcing size word alignment - kiobuf
kmem_create: Forcing size word alignment - bdev_cache
Inode-cache hash table entries: 1024 (order: 0, 8192 bytes)
kmem_create: Forcing size word alignment - inode_cache
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Starting kswapd v1.8
kmem_create: Forcing size word alignment - file lock cache
kmem_create: Forcing size word alignment - blkdev_requests
block: queued sectors max/low 9109kB/3036kB, 64 slots per queue
ETRAX 100LX 10/100MBit ethernet v2.0 (c) 2000 Axis Communications AB
eth0 initialized
eth0: changed MAC to 00:40:8C:CD:00:00
ETRAX 100LX serial-driver $Revision: 1.7 $, (c) 2000 Axis Communications AB
ttyS0 at 0xb0000060 is a builtin UART with DMA
ttyS1 at 0xb0000068 is a builtin UART with DMA
ttyS2 at 0xb0000070 is a builtin UART with DMA
ttyS3 at 0xb0000078 is a builtin UART with DMA
Axis flash mapping: 200000 at 50000000
Axis flash: Found 1 x16 CFI device at 0x0 in 16 bit mode
 Amd/Fujitsu Extended Query Table v1.0 at 0x0040
Axis flash: JEDEC Device ID is 0xC4. Assuming broken CFI table.
Axis flash: Swapping erase regions for broken CFI table.
number of CFI chips: 1
 Using default partition table
I2C driver v2.2, (c) 1999-2001 Axis Communications AB
ETRAX 100LX GPIO driver v2.1, (c) 2001 Axis Communications AB
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
kmem_create: Forcing size word alignment - ip_dst_cache
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP: Hash tables configured (established 2048 bind 2048)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (cramfs filesystem) readonly.
Init starts up...
Mounted none on /proc ok.
Setting up eth0 with ip 10.13.9.116 and mac 00:40:8c:18:04:60
eth0: changed MAC to 00:40:8C:18:04:60
Setting up lo with ip 127.0.0.1
Default gateway is 10.13.9.1
Hostname is bbox1
Telnetd starting, using port 23.
  using /bin/sash as shell.
sftpd[15]: sftpd $Revision: 1.7 $ starting up



And here is how some /proc entries look:

17# cd /proc
17# cat cpuinfo
cpu             : CRIS
cpu revision    : 10
cpu model       : ETRAX 100LX
cache size      : 8 kB
fpu             : no
mmu             : yes
ethernet        : 10/100 Mbps
token ring      : no
scsi            : yes
ata             : yes
usb             : yes
bogomips        : 99.84

17# cat meminfo
        total:    used:    free:  shared: buffers:  cached:
Mem:   7028736   925696  6103040   114688        0   229376
Swap:        0        0        0
MemTotal:         6864 kB
MemFree:          5960 kB
MemShared:         112 kB
Buffers:             0 kB
Cached:            224 kB
Active:            224 kB
Inact_dirty:         0 kB
Inact_clean:         0 kB
Inact_target:        0 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:         6864 kB
LowFree:          5960 kB
SwapTotal:           0 kB
SwapFree:            0 kB
17# ls -l /bin
-rwxr-xr-x  1 342      100         10356  Jan 01 00:00 ifconfig
-rwxr-xr-x  1 342      100         17548  Jan 01 00:00 init
-rwxr-xr-x  1 342      100          9488  Jan 01 00:00 route
-rwxr-xr-x  1 342      100         46036  Jan 01 00:00 sftpd
-rwxr-xr-x  1 342      100         48104  Jan 01 00:00 sh
-rwxr-xr-x  1 342      100         16252  Jan 01 00:00 telnetd









