Linux 2.4 on the CRIS architecture
==================================
$Id: README,v 1.7 2001/04/19 12:38:32 bjornw Exp $

This is a port of Linux 2.4 to Axis Communications ETRAX 100LX embedded 
network CPU. 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/doc/software/devboard_lx/install-howto.html

<more specific information should come in this document later>

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 latest CPU is called ETRAX 100LX, where LX stands for
'Linux' because the chip was designed to be a good host for the Linux
operating system.

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

For reference, plase see the press-release:

http://www.axis.com/news/us/001101_etrax.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)

The previous version of the ETRAX, the ETRAX 100, sits in almost all of
Axis shipping thin-servers like the Axis 2100 web camera or the ETRAX 100
developer-board. It lacks an MMU so the Linux we run on that is a version
of uClinux (Linux 2.0 without MM-support) ported to the CRIS architecture.
The new Linux 2.4 port has full MM and needs a CPU with an MMU, so it will
not run on the ETRAX 100.

A version of the Axis developer-board with ETRAX 100LX (running Linux
2.4) is now available. For more information please see developer.axis.com.


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


(All programs are statically linked to the libc at this point - we have not ported the
 shared libraries yet)









