| 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 | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  | 
 |  |