2024-09-09 08:57:42 +00:00
|
|
|
Linux on the CRIS architecture
|
|
|
|
==============================
|
2024-09-09 08:52:07 +00:00
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
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.
|
2024-09-09 08:52:07 +00:00
|
|
|
|
|
|
|
In order to compile this you need a version of gcc with support for the
|
2024-09-09 08:57:42 +00:00
|
|
|
ETRAX chip family. Please see this link for more information on how to
|
2024-09-09 08:52:07 +00:00
|
|
|
download the compiler and other tools useful when building and booting
|
|
|
|
software for the ETRAX platform:
|
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
http://developer.axis.com/wiki/doku.php?id=axis:install-howto-2_20
|
2024-09-09 08:52:07 +00:00
|
|
|
|
|
|
|
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,
|
2024-09-09 08:57:42 +00:00
|
|
|
called ETRAX.
|
2024-09-09 08:52:07 +00:00
|
|
|
|
|
|
|
The ETRAX 100LX chip
|
|
|
|
--------------------
|
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
For reference, please see the following link:
|
2024-09-09 08:52:07 +00:00
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
http://www.axis.com/products/dev_etrax_100lx/index.htm
|
2024-09-09 08:52:07 +00:00
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
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.
|
2024-09-09 08:52:07 +00:00
|
|
|
|
|
|
|
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
|
2024-09-09 08:57:42 +00:00
|
|
|
|
|
|
|
(not all interfaces are available at the same time due to chip pin
|
2024-09-09 08:52:07 +00:00
|
|
|
multiplexing)
|
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
ETRAX 100LX is CRISv10 architecture.
|
|
|
|
|
|
|
|
|
|
|
|
The ETRAX FS and ARTPEC-3 chips
|
|
|
|
-------------------------------
|
2024-09-09 08:52:07 +00:00
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
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.
|
2024-09-09 08:52:07 +00:00
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
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.
|
2024-09-09 08:52:07 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|