blob: 8dbdb1a44429aedc90e770dfba266f8f57e97ce9 [file] [log] [blame]
Jesper Nilsson14c70c32011-04-12 12:05:19 +02001Linux on the CRIS architecture
2==============================
Linus Torvalds1da177e2005-04-16 15:20:36 -07003
Jesper Nilsson14c70c32011-04-12 12:05:19 +02004This is a port of Linux to Axis Communications ETRAX 100LX,
5ETRAX FS and ARTPEC-3 embedded network CPUs.
6
7For more information about CRIS and ETRAX please see further below.
Linus Torvalds1da177e2005-04-16 15:20:36 -07008
9In order to compile this you need a version of gcc with support for the
Jesper Nilsson14c70c32011-04-12 12:05:19 +020010ETRAX chip family. Please see this link for more information on how to
Linus Torvalds1da177e2005-04-16 15:20:36 -070011download the compiler and other tools useful when building and booting
12software for the ETRAX platform:
13
Jesper Nilsson14c70c32011-04-12 12:05:19 +020014http://developer.axis.com/wiki/doku.php?id=axis:install-howto-2_20
Linus Torvalds1da177e2005-04-16 15:20:36 -070015
16What is CRIS ?
17--------------
18
19CRIS is an acronym for 'Code Reduced Instruction Set'. It is the CPU
20architecture in Axis Communication AB's range of embedded network CPU's,
Jesper Nilsson14c70c32011-04-12 12:05:19 +020021called ETRAX.
Linus Torvalds1da177e2005-04-16 15:20:36 -070022
23The ETRAX 100LX chip
24--------------------
25
Jesper Nilsson14c70c32011-04-12 12:05:19 +020026For reference, please see the following link:
Linus Torvalds1da177e2005-04-16 15:20:36 -070027
Jesper Nilsson14c70c32011-04-12 12:05:19 +020028http://www.axis.com/products/dev_etrax_100lx/index.htm
Linus Torvalds1da177e2005-04-16 15:20:36 -070029
Jesper Nilsson14c70c32011-04-12 12:05:19 +020030The ETRAX 100LX is a 100 MIPS processor with 8kB cache, MMU, and a very broad
31range of built-in interfaces, all with modern scatter/gather DMA.
Linus Torvalds1da177e2005-04-16 15:20:36 -070032
33Memory interfaces:
34
35 * SRAM
36 * NOR-flash/ROM
37 * EDO or page-mode DRAM
38 * SDRAM
39
40I/O interfaces:
41
42 * one 10/100 Mbit/s ethernet controller
43 * four serial-ports (up to 6 Mbit/s)
44 * two synchronous serial-ports for multimedia codec's etc.
45 * USB host controller and USB slave
46 * ATA
47 * SCSI
48 * two parallel-ports
49 * two generic 8-bit ports
Jesper Nilsson14c70c32011-04-12 12:05:19 +020050
51 (not all interfaces are available at the same time due to chip pin
Linus Torvalds1da177e2005-04-16 15:20:36 -070052 multiplexing)
53
Jesper Nilsson14c70c32011-04-12 12:05:19 +020054ETRAX 100LX is CRISv10 architecture.
Linus Torvalds1da177e2005-04-16 15:20:36 -070055
Linus Torvalds1da177e2005-04-16 15:20:36 -070056
Jesper Nilsson14c70c32011-04-12 12:05:19 +020057The ETRAX FS and ARTPEC-3 chips
58-------------------------------
59
60The ETRAX FS is a 200MHz 32-bit RISC processor with on-chip 16kB
61I-cache and 16kB D-cache and with a wide range of device interfaces
62including multiple high speed serial ports and an integrated USB 1.1 PHY.
63
64The ARTPEC-3 is a variant of the ETRAX FS with additional IO-units
65used by the Axis Communications network cameras.
66
67See below link for more information:
68
69http://www.axis.com/products/dev_etrax_fs/index.htm
70
71ETRAX FS and ARTPEC-3 are both CRISv32 architectures.
Linus Torvalds1da177e2005-04-16 15:20:36 -070072
73Bootlog
74-------
75
76Just as an example, this is the debug-output from a boot of Linux 2.4 on
77a board with ETRAX 100LX. The displayed BogoMIPS value is 5 times too small :)
78At the end you see some user-mode programs booting like telnet and ftp daemons.
79
80Linux version 2.4.1 (bjornw@godzilla.axis.se) (gcc version 2.96 20000427 (experimental)) #207 Wed Feb 21 15:48:15 CET 2001
81ROM fs in RAM, size 1376256 bytes
82Setting up paging and the MMU.
83On node 0 totalpages: 2048
84zone(0): 2048 pages.
85zone(1): 0 pages.
86zone(2): 0 pages.
87Linux/CRIS port on ETRAX 100LX (c) 2001 Axis Communications AB
88Kernel command line:
89Calibrating delay loop... 19.91 BogoMIPS
90Memory: 13872k/16384k available (587k kernel code, 2512k reserved, 44k data, 24k init)
91kmem_create: Forcing size word alignment - vm_area_struct
92kmem_create: Forcing size word alignment - filp
93Dentry-cache hash table entries: 2048 (order: 1, 16384 bytes)
94Buffer-cache hash table entries: 2048 (order: 0, 8192 bytes)
95Page-cache hash table entries: 2048 (order: 0, 8192 bytes)
96kmem_create: Forcing size word alignment - kiobuf
97kmem_create: Forcing size word alignment - bdev_cache
98Inode-cache hash table entries: 1024 (order: 0, 8192 bytes)
99kmem_create: Forcing size word alignment - inode_cache
100POSIX conformance testing by UNIFIX
101Linux NET4.0 for Linux 2.4
102Based upon Swansea University Computer Society NET3.039
103Starting kswapd v1.8
104kmem_create: Forcing size word alignment - file lock cache
105kmem_create: Forcing size word alignment - blkdev_requests
106block: queued sectors max/low 9109kB/3036kB, 64 slots per queue
107ETRAX 100LX 10/100MBit ethernet v2.0 (c) 2000 Axis Communications AB
108eth0 initialized
109eth0: changed MAC to 00:40:8C:CD:00:00
110ETRAX 100LX serial-driver $Revision: 1.7 $, (c) 2000 Axis Communications AB
111ttyS0 at 0xb0000060 is a builtin UART with DMA
112ttyS1 at 0xb0000068 is a builtin UART with DMA
113ttyS2 at 0xb0000070 is a builtin UART with DMA
114ttyS3 at 0xb0000078 is a builtin UART with DMA
115Axis flash mapping: 200000 at 50000000
116Axis flash: Found 1 x16 CFI device at 0x0 in 16 bit mode
117 Amd/Fujitsu Extended Query Table v1.0 at 0x0040
118Axis flash: JEDEC Device ID is 0xC4. Assuming broken CFI table.
119Axis flash: Swapping erase regions for broken CFI table.
120number of CFI chips: 1
121 Using default partition table
122I2C driver v2.2, (c) 1999-2001 Axis Communications AB
123ETRAX 100LX GPIO driver v2.1, (c) 2001 Axis Communications AB
124NET4: Linux TCP/IP 1.0 for NET4.0
125IP Protocols: ICMP, UDP, TCP
126kmem_create: Forcing size word alignment - ip_dst_cache
127IP: routing cache hash table of 1024 buckets, 8Kbytes
128TCP: Hash tables configured (established 2048 bind 2048)
129NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
130VFS: Mounted root (cramfs filesystem) readonly.
131Init starts up...
132Mounted none on /proc ok.
133Setting up eth0 with ip 10.13.9.116 and mac 00:40:8c:18:04:60
134eth0: changed MAC to 00:40:8C:18:04:60
135Setting up lo with ip 127.0.0.1
136Default gateway is 10.13.9.1
137Hostname is bbox1
138Telnetd starting, using port 23.
139 using /bin/sash as shell.
140sftpd[15]: sftpd $Revision: 1.7 $ starting up
141
142
143
144And here is how some /proc entries look:
145
14617# cd /proc
14717# cat cpuinfo
148cpu : CRIS
149cpu revision : 10
150cpu model : ETRAX 100LX
151cache size : 8 kB
152fpu : no
153mmu : yes
154ethernet : 10/100 Mbps
155token ring : no
156scsi : yes
157ata : yes
158usb : yes
159bogomips : 99.84
160
16117# cat meminfo
162 total: used: free: shared: buffers: cached:
163Mem: 7028736 925696 6103040 114688 0 229376
164Swap: 0 0 0
165MemTotal: 6864 kB
166MemFree: 5960 kB
167MemShared: 112 kB
168Buffers: 0 kB
169Cached: 224 kB
170Active: 224 kB
171Inact_dirty: 0 kB
172Inact_clean: 0 kB
173Inact_target: 0 kB
174HighTotal: 0 kB
175HighFree: 0 kB
176LowTotal: 6864 kB
177LowFree: 5960 kB
178SwapTotal: 0 kB
179SwapFree: 0 kB
18017# ls -l /bin
181-rwxr-xr-x 1 342 100 10356 Jan 01 00:00 ifconfig
182-rwxr-xr-x 1 342 100 17548 Jan 01 00:00 init
183-rwxr-xr-x 1 342 100 9488 Jan 01 00:00 route
184-rwxr-xr-x 1 342 100 46036 Jan 01 00:00 sftpd
185-rwxr-xr-x 1 342 100 48104 Jan 01 00:00 sh
186-rwxr-xr-x 1 342 100 16252 Jan 01 00:00 telnetd
187
188
Linus Torvalds1da177e2005-04-16 15:20:36 -0700189
190
191
192
193
194
195