| 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, please 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) |
| |
| |
| |
| |
| |
| |
| |
| |
| |