Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | Linux 2.4 on the CRIS architecture |
| 2 | ================================== |
| 3 | $Id: README,v 1.7 2001/04/19 12:38:32 bjornw Exp $ |
| 4 | |
| 5 | This is a port of Linux 2.4 to Axis Communications ETRAX 100LX embedded |
| 6 | network CPU. For more information about CRIS and ETRAX please see further |
| 7 | below. |
| 8 | |
| 9 | In order to compile this you need a version of gcc with support for the |
| 10 | ETRAX chip family. Please see this link for more information on how to |
| 11 | download the compiler and other tools useful when building and booting |
| 12 | software for the ETRAX platform: |
| 13 | |
| 14 | http://developer.axis.com/doc/software/devboard_lx/install-howto.html |
| 15 | |
| 16 | <more specific information should come in this document later> |
| 17 | |
| 18 | What is CRIS ? |
| 19 | -------------- |
| 20 | |
| 21 | CRIS is an acronym for 'Code Reduced Instruction Set'. It is the CPU |
| 22 | architecture in Axis Communication AB's range of embedded network CPU's, |
| 23 | called ETRAX. The latest CPU is called ETRAX 100LX, where LX stands for |
| 24 | 'Linux' because the chip was designed to be a good host for the Linux |
| 25 | operating system. |
| 26 | |
| 27 | The ETRAX 100LX chip |
| 28 | -------------------- |
| 29 | |
| 30 | For reference, plase see the press-release: |
| 31 | |
| 32 | http://www.axis.com/news/us/001101_etrax.htm |
| 33 | |
| 34 | The ETRAX 100LX is a 100 MIPS processor with 8kB cache, MMU, and a very broad |
| 35 | range of built-in interfaces, all with modern scatter/gather DMA. |
| 36 | |
| 37 | Memory interfaces: |
| 38 | |
| 39 | * SRAM |
| 40 | * NOR-flash/ROM |
| 41 | * EDO or page-mode DRAM |
| 42 | * SDRAM |
| 43 | |
| 44 | I/O interfaces: |
| 45 | |
| 46 | * one 10/100 Mbit/s ethernet controller |
| 47 | * four serial-ports (up to 6 Mbit/s) |
| 48 | * two synchronous serial-ports for multimedia codec's etc. |
| 49 | * USB host controller and USB slave |
| 50 | * ATA |
| 51 | * SCSI |
| 52 | * two parallel-ports |
| 53 | * two generic 8-bit ports |
| 54 | |
| 55 | (not all interfaces are available at the same time due to chip pin |
| 56 | multiplexing) |
| 57 | |
| 58 | The previous version of the ETRAX, the ETRAX 100, sits in almost all of |
| 59 | Axis shipping thin-servers like the Axis 2100 web camera or the ETRAX 100 |
| 60 | developer-board. It lacks an MMU so the Linux we run on that is a version |
| 61 | of uClinux (Linux 2.0 without MM-support) ported to the CRIS architecture. |
| 62 | The new Linux 2.4 port has full MM and needs a CPU with an MMU, so it will |
| 63 | not run on the ETRAX 100. |
| 64 | |
| 65 | A version of the Axis developer-board with ETRAX 100LX (running Linux |
| 66 | 2.4) is now available. For more information please see developer.axis.com. |
| 67 | |
| 68 | |
| 69 | Bootlog |
| 70 | ------- |
| 71 | |
| 72 | Just as an example, this is the debug-output from a boot of Linux 2.4 on |
| 73 | a board with ETRAX 100LX. The displayed BogoMIPS value is 5 times too small :) |
| 74 | At the end you see some user-mode programs booting like telnet and ftp daemons. |
| 75 | |
| 76 | Linux version 2.4.1 (bjornw@godzilla.axis.se) (gcc version 2.96 20000427 (experimental)) #207 Wed Feb 21 15:48:15 CET 2001 |
| 77 | ROM fs in RAM, size 1376256 bytes |
| 78 | Setting up paging and the MMU. |
| 79 | On node 0 totalpages: 2048 |
| 80 | zone(0): 2048 pages. |
| 81 | zone(1): 0 pages. |
| 82 | zone(2): 0 pages. |
| 83 | Linux/CRIS port on ETRAX 100LX (c) 2001 Axis Communications AB |
| 84 | Kernel command line: |
| 85 | Calibrating delay loop... 19.91 BogoMIPS |
| 86 | Memory: 13872k/16384k available (587k kernel code, 2512k reserved, 44k data, 24k init) |
| 87 | kmem_create: Forcing size word alignment - vm_area_struct |
| 88 | kmem_create: Forcing size word alignment - filp |
| 89 | Dentry-cache hash table entries: 2048 (order: 1, 16384 bytes) |
| 90 | Buffer-cache hash table entries: 2048 (order: 0, 8192 bytes) |
| 91 | Page-cache hash table entries: 2048 (order: 0, 8192 bytes) |
| 92 | kmem_create: Forcing size word alignment - kiobuf |
| 93 | kmem_create: Forcing size word alignment - bdev_cache |
| 94 | Inode-cache hash table entries: 1024 (order: 0, 8192 bytes) |
| 95 | kmem_create: Forcing size word alignment - inode_cache |
| 96 | POSIX conformance testing by UNIFIX |
| 97 | Linux NET4.0 for Linux 2.4 |
| 98 | Based upon Swansea University Computer Society NET3.039 |
| 99 | Starting kswapd v1.8 |
| 100 | kmem_create: Forcing size word alignment - file lock cache |
| 101 | kmem_create: Forcing size word alignment - blkdev_requests |
| 102 | block: queued sectors max/low 9109kB/3036kB, 64 slots per queue |
| 103 | ETRAX 100LX 10/100MBit ethernet v2.0 (c) 2000 Axis Communications AB |
| 104 | eth0 initialized |
| 105 | eth0: changed MAC to 00:40:8C:CD:00:00 |
| 106 | ETRAX 100LX serial-driver $Revision: 1.7 $, (c) 2000 Axis Communications AB |
| 107 | ttyS0 at 0xb0000060 is a builtin UART with DMA |
| 108 | ttyS1 at 0xb0000068 is a builtin UART with DMA |
| 109 | ttyS2 at 0xb0000070 is a builtin UART with DMA |
| 110 | ttyS3 at 0xb0000078 is a builtin UART with DMA |
| 111 | Axis flash mapping: 200000 at 50000000 |
| 112 | Axis flash: Found 1 x16 CFI device at 0x0 in 16 bit mode |
| 113 | Amd/Fujitsu Extended Query Table v1.0 at 0x0040 |
| 114 | Axis flash: JEDEC Device ID is 0xC4. Assuming broken CFI table. |
| 115 | Axis flash: Swapping erase regions for broken CFI table. |
| 116 | number of CFI chips: 1 |
| 117 | Using default partition table |
| 118 | I2C driver v2.2, (c) 1999-2001 Axis Communications AB |
| 119 | ETRAX 100LX GPIO driver v2.1, (c) 2001 Axis Communications AB |
| 120 | NET4: Linux TCP/IP 1.0 for NET4.0 |
| 121 | IP Protocols: ICMP, UDP, TCP |
| 122 | kmem_create: Forcing size word alignment - ip_dst_cache |
| 123 | IP: routing cache hash table of 1024 buckets, 8Kbytes |
| 124 | TCP: Hash tables configured (established 2048 bind 2048) |
| 125 | NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. |
| 126 | VFS: Mounted root (cramfs filesystem) readonly. |
| 127 | Init starts up... |
| 128 | Mounted none on /proc ok. |
| 129 | Setting up eth0 with ip 10.13.9.116 and mac 00:40:8c:18:04:60 |
| 130 | eth0: changed MAC to 00:40:8C:18:04:60 |
| 131 | Setting up lo with ip 127.0.0.1 |
| 132 | Default gateway is 10.13.9.1 |
| 133 | Hostname is bbox1 |
| 134 | Telnetd starting, using port 23. |
| 135 | using /bin/sash as shell. |
| 136 | sftpd[15]: sftpd $Revision: 1.7 $ starting up |
| 137 | |
| 138 | |
| 139 | |
| 140 | And here is how some /proc entries look: |
| 141 | |
| 142 | 17# cd /proc |
| 143 | 17# cat cpuinfo |
| 144 | cpu : CRIS |
| 145 | cpu revision : 10 |
| 146 | cpu model : ETRAX 100LX |
| 147 | cache size : 8 kB |
| 148 | fpu : no |
| 149 | mmu : yes |
| 150 | ethernet : 10/100 Mbps |
| 151 | token ring : no |
| 152 | scsi : yes |
| 153 | ata : yes |
| 154 | usb : yes |
| 155 | bogomips : 99.84 |
| 156 | |
| 157 | 17# cat meminfo |
| 158 | total: used: free: shared: buffers: cached: |
| 159 | Mem: 7028736 925696 6103040 114688 0 229376 |
| 160 | Swap: 0 0 0 |
| 161 | MemTotal: 6864 kB |
| 162 | MemFree: 5960 kB |
| 163 | MemShared: 112 kB |
| 164 | Buffers: 0 kB |
| 165 | Cached: 224 kB |
| 166 | Active: 224 kB |
| 167 | Inact_dirty: 0 kB |
| 168 | Inact_clean: 0 kB |
| 169 | Inact_target: 0 kB |
| 170 | HighTotal: 0 kB |
| 171 | HighFree: 0 kB |
| 172 | LowTotal: 6864 kB |
| 173 | LowFree: 5960 kB |
| 174 | SwapTotal: 0 kB |
| 175 | SwapFree: 0 kB |
| 176 | 17# ls -l /bin |
| 177 | -rwxr-xr-x 1 342 100 10356 Jan 01 00:00 ifconfig |
| 178 | -rwxr-xr-x 1 342 100 17548 Jan 01 00:00 init |
| 179 | -rwxr-xr-x 1 342 100 9488 Jan 01 00:00 route |
| 180 | -rwxr-xr-x 1 342 100 46036 Jan 01 00:00 sftpd |
| 181 | -rwxr-xr-x 1 342 100 48104 Jan 01 00:00 sh |
| 182 | -rwxr-xr-x 1 342 100 16252 Jan 01 00:00 telnetd |
| 183 | |
| 184 | |
| 185 | (All programs are statically linked to the libc at this point - we have not ported the |
| 186 | shared libraries yet) |
| 187 | |
| 188 | |
| 189 | |
| 190 | |
| 191 | |
| 192 | |
| 193 | |
| 194 | |
| 195 | |