Back to home page

LXR

 
 

    


0001 Linux on the CRIS architecture
0002 ==============================
0003 
0004 This is a port of Linux to Axis Communications ETRAX 100LX,
0005 ETRAX FS and ARTPEC-3 embedded network CPUs.
0006 
0007 For more information about CRIS and ETRAX please see further below.
0008 
0009 In order to compile this you need a version of gcc with support for the
0010 ETRAX chip family. Please see this link for more information on how to
0011 download the compiler and other tools useful when building and booting
0012 software for the ETRAX platform:
0013 
0014 http://developer.axis.com/wiki/doku.php?id=axis:install-howto-2_20
0015 
0016 What is CRIS ?
0017 --------------
0018 
0019 CRIS is an acronym for 'Code Reduced Instruction Set'. It is the CPU
0020 architecture in Axis Communication AB's range of embedded network CPU's,
0021 called ETRAX.
0022 
0023 The ETRAX 100LX chip
0024 --------------------
0025 
0026 For reference, please see the following link:
0027 
0028 http://www.axis.com/products/dev_etrax_100lx/index.htm
0029 
0030 The ETRAX 100LX is a 100 MIPS processor with 8kB cache, MMU, and a very broad
0031 range of built-in interfaces, all with modern scatter/gather DMA.
0032 
0033 Memory interfaces:
0034 
0035         * SRAM
0036         * NOR-flash/ROM
0037         * EDO or page-mode DRAM
0038         * SDRAM
0039 
0040 I/O interfaces:
0041 
0042         * one 10/100 Mbit/s ethernet controller
0043         * four serial-ports (up to 6 Mbit/s)
0044         * two synchronous serial-ports for multimedia codec's etc.
0045         * USB host controller and USB slave
0046         * ATA
0047         * SCSI
0048         * two parallel-ports
0049         * two generic 8-bit ports
0050 
0051         (not all interfaces are available at the same time due to chip pin
0052          multiplexing)
0053 
0054 ETRAX 100LX is CRISv10 architecture.
0055 
0056 
0057 The ETRAX FS and ARTPEC-3 chips
0058 -------------------------------
0059 
0060 The ETRAX FS is a 200MHz 32-bit RISC processor with on-chip 16kB
0061 I-cache and 16kB D-cache and with a wide range of device interfaces
0062 including multiple high speed serial ports and an integrated USB 1.1 PHY.
0063 
0064 The ARTPEC-3 is a variant of the ETRAX FS with additional IO-units
0065 used by the Axis Communications network cameras.
0066 
0067 See below link for more information:
0068 
0069 http://www.axis.com/products/dev_etrax_fs/index.htm
0070 
0071 ETRAX FS and ARTPEC-3 are both CRISv32 architectures.
0072 
0073 Bootlog
0074 -------
0075 
0076 Just as an example, this is the debug-output from a boot of Linux 2.4 on
0077 a board with ETRAX 100LX. The displayed BogoMIPS value is 5 times too small :)
0078 At the end you see some user-mode programs booting like telnet and ftp daemons.
0079 
0080 Linux version 2.4.1 (bjornw@godzilla.axis.se) (gcc version 2.96 20000427 (experimental)) #207 Wed Feb 21 15:48:15 CET 2001
0081 ROM fs in RAM, size 1376256 bytes
0082 Setting up paging and the MMU.
0083 On node 0 totalpages: 2048
0084 zone(0): 2048 pages.
0085 zone(1): 0 pages.
0086 zone(2): 0 pages.
0087 Linux/CRIS port on ETRAX 100LX (c) 2001 Axis Communications AB
0088 Kernel command line: 
0089 Calibrating delay loop... 19.91 BogoMIPS
0090 Memory: 13872k/16384k available (587k kernel code, 2512k reserved, 44k data, 24k init)
0091 kmem_create: Forcing size word alignment - vm_area_struct
0092 kmem_create: Forcing size word alignment - filp
0093 Dentry-cache hash table entries: 2048 (order: 1, 16384 bytes)
0094 Buffer-cache hash table entries: 2048 (order: 0, 8192 bytes)
0095 Page-cache hash table entries: 2048 (order: 0, 8192 bytes)
0096 kmem_create: Forcing size word alignment - kiobuf
0097 kmem_create: Forcing size word alignment - bdev_cache
0098 Inode-cache hash table entries: 1024 (order: 0, 8192 bytes)
0099 kmem_create: Forcing size word alignment - inode_cache
0100 POSIX conformance testing by UNIFIX
0101 Linux NET4.0 for Linux 2.4
0102 Based upon Swansea University Computer Society NET3.039
0103 Starting kswapd v1.8
0104 kmem_create: Forcing size word alignment - file lock cache
0105 kmem_create: Forcing size word alignment - blkdev_requests
0106 block: queued sectors max/low 9109kB/3036kB, 64 slots per queue
0107 ETRAX 100LX 10/100MBit ethernet v2.0 (c) 2000 Axis Communications AB
0108 eth0 initialized
0109 eth0: changed MAC to 00:40:8C:CD:00:00
0110 ETRAX 100LX serial-driver $Revision: 1.7 $, (c) 2000 Axis Communications AB
0111 ttyS0 at 0xb0000060 is a builtin UART with DMA
0112 ttyS1 at 0xb0000068 is a builtin UART with DMA
0113 ttyS2 at 0xb0000070 is a builtin UART with DMA
0114 ttyS3 at 0xb0000078 is a builtin UART with DMA
0115 Axis flash mapping: 200000 at 50000000
0116 Axis flash: Found 1 x16 CFI device at 0x0 in 16 bit mode
0117  Amd/Fujitsu Extended Query Table v1.0 at 0x0040
0118 Axis flash: JEDEC Device ID is 0xC4. Assuming broken CFI table.
0119 Axis flash: Swapping erase regions for broken CFI table.
0120 number of CFI chips: 1
0121  Using default partition table
0122 I2C driver v2.2, (c) 1999-2001 Axis Communications AB
0123 ETRAX 100LX GPIO driver v2.1, (c) 2001 Axis Communications AB
0124 NET4: Linux TCP/IP 1.0 for NET4.0
0125 IP Protocols: ICMP, UDP, TCP
0126 kmem_create: Forcing size word alignment - ip_dst_cache
0127 IP: routing cache hash table of 1024 buckets, 8Kbytes
0128 TCP: Hash tables configured (established 2048 bind 2048)
0129 NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
0130 VFS: Mounted root (cramfs filesystem) readonly.
0131 Init starts up...
0132 Mounted none on /proc ok.
0133 Setting up eth0 with ip 10.13.9.116 and mac 00:40:8c:18:04:60
0134 eth0: changed MAC to 00:40:8C:18:04:60
0135 Setting up lo with ip 127.0.0.1
0136 Default gateway is 10.13.9.1
0137 Hostname is bbox1
0138 Telnetd starting, using port 23.
0139   using /bin/sash as shell.
0140 sftpd[15]: sftpd $Revision: 1.7 $ starting up
0141 
0142 
0143 
0144 And here is how some /proc entries look:
0145 
0146 17# cd /proc
0147 17# cat cpuinfo
0148 cpu             : CRIS
0149 cpu revision    : 10
0150 cpu model       : ETRAX 100LX
0151 cache size      : 8 kB
0152 fpu             : no
0153 mmu             : yes
0154 ethernet        : 10/100 Mbps
0155 token ring      : no
0156 scsi            : yes
0157 ata             : yes
0158 usb             : yes
0159 bogomips        : 99.84
0160 
0161 17# cat meminfo
0162         total:    used:    free:  shared: buffers:  cached:
0163 Mem:   7028736   925696  6103040   114688        0   229376
0164 Swap:        0        0        0
0165 MemTotal:         6864 kB
0166 MemFree:          5960 kB
0167 MemShared:         112 kB
0168 Buffers:             0 kB
0169 Cached:            224 kB
0170 Active:            224 kB
0171 Inact_dirty:         0 kB
0172 Inact_clean:         0 kB
0173 Inact_target:        0 kB
0174 HighTotal:           0 kB
0175 HighFree:            0 kB
0176 LowTotal:         6864 kB
0177 LowFree:          5960 kB
0178 SwapTotal:           0 kB
0179 SwapFree:            0 kB
0180 17# ls -l /bin
0181 -rwxr-xr-x  1 342      100         10356  Jan 01 00:00 ifconfig
0182 -rwxr-xr-x  1 342      100         17548  Jan 01 00:00 init
0183 -rwxr-xr-x  1 342      100          9488  Jan 01 00:00 route
0184 -rwxr-xr-x  1 342      100         46036  Jan 01 00:00 sftpd
0185 -rwxr-xr-x  1 342      100         48104  Jan 01 00:00 sh
0186 -rwxr-xr-x  1 342      100         16252  Jan 01 00:00 telnetd
0187 
0188 
0189 
0190 
0191 
0192 
0193 
0194 
0195