1 |
1275 |
phoenix |
Linux 2.4 on the CRIS architecture
|
2 |
|
|
==================================
|
3 |
|
|
$Id: README,v 1.1.1.1 2004-04-15 02:32:16 phoenix 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 |
|
|
|
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.1.1.1 $, (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.1.1.1 $ 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 |
|
|
|