
The main goal of using uCLinux was to show that D68000 microprocessor core is fully functional and well validated IP Core. For that purpose complete testing system has been built basing on CYCLONEII DoCD2_C2_ETH_SDRAM32 FPGA board with some on-board memories and peripherals. The widely known Operating System for embedded solutions - uCLinux - has been used to run with D68000. Such combination of hardware and software creates useful and flexible platform with D68000 IP Core as main processor.
The most of the applications and tools have been already available as GPL based software. As a source for all uCLinux based stuffs http://www.uclinux.org site was used.
Contents of this document:


The testing system is consisted of the following components presented in figure below.

It has two serial communication ports used for uCLinux image upload from host, and as a main console used for interactive communication between user and uCLinux. A one 10/100 Mb ethernet connector is used to plug twisted pairs LAN cable.

Host software platform is built with GCC compiler, GDB debugger, and D68000 simulator. They are running with Linux & Windows OS. These set of tools is used to produce uCLinux system image including linux-2.4.20 kernel and applications running with kernel. It also assures instant simulation of compiled uCLinux system image, and checking how it works. The sources are available at http://www.uclinux.org

A small boot-loader has been written to upload system image and launch booting procedure of uCLinux. Boot-loader resides inside lower addresses of SRAM memory, handles UART events coming from host sending system image. After successful upload, kernel booting procedure starts. System booting process can be generalized to the following steps:
- initialize memory and hardware
- setup device drivers
- mount root file system
- execute /sbin/init
- start network service
- launch shell program

Booting uCLinux system is very fast and taking only few seconds. The reported boot messages are listed below:
Linux version 2.4.20-uc0 (root@back.comp.dcd.pl) (gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from http://www.snapgear.com/)) #4 Wed Oct 22 19:46:40 CEST 2003
D68000 support (C) 2003 DCD
uClinux/D68000
D68000 by DCD
Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne
On node 0 totalpages: 1568
zone(0): 0 pages.
zone(1): 1568 pages.
zone(2): 0 pages.
Kernel command line: console=/dev/ttyS0 root=/dev/rom0
Calibrating delay loop... 2.63 BogoMIPS
Memory available: 4512k/6272k RAM, 0k/0k ROM (746k kernel code, 192k data)
Dentry cache hash table entries: 1024 (order: 1, 8192 bytes)
Inode cache hash table entries: 512 (order: 0, 4096 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 2048 (order: 1, 8192 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
D68000 serial driver version 0.25
ttyS0 at 0x00fffffc (irq = 2) is a builtin D68000 UART
LAN91C111: smc_probe at 0x00FE0300 addr
SMSC LAN91C111 Driver (v2.01), (Linux Kernel 2.4 + Support for Odd Byte) 09/24/01 - by Pramod Bhardwaj (pramod.bhardwaj@smsc.com)
eth0: SMC91C11xFD(rev:1) at 0xfe0300 IRQ:4 MEMSIZE:8192b NOWAIT:0 ADDR: 00:cf:49:52:01:c3
Blkmem copyright 1998,1999 D. Jeff Dionne
Blkmem copyright 1998 Kenneth Albanowski
Blkmem 1 disk images:
0: 11130C-1B470B [VIRTUAL 11130C-1B470B] (RO)
RAMDISK driver initialized: 16 RAM disks of 512K size 1024 blocksize
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 512 bind 512)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: Linux IPX 0.47 for NET4.0
VFS: Mounted root (romfs filesystem) readonly.
Freeing unused kernel memory: 0k freed (0xf8000 - 0xf7000)
Shell invoked to run file: /etc/rc
Command: hostname uCFPGA.comp.dcd.pl.
Command: /bin/expand /etc/ramfs.img /dev/ram0
Command: mount -t proc proc /proc
Command:
Command: mount -t ext2 /dev/ram0 /var
Command: mkdir /var/tmp
Command: mkdir /var/log
Command: mkdir /var/run
Command: mkdir /var/lock
Command:
Command: date 102219502003
Thu Oct 22 19:50:00 UTC 2003
Command:
Command: ifconfig lo 127.0.0.1
Command: route add -net 127.0.0.0 netmask 255.0.0.0 lo
Command: ifconfig eth0 10.10.10.111 netmask 255.255.255.0 broadcast 10.10.10.255
eth0: PHY=LAN83C183 (LAN91C111 Internal)
Command: route add 10.10.10.111 eth0
Command: route add default gw 10.10.10.100
Command: portmap &
[18]
Command: cat /etc/motd
Welcome to
____ _ _
/ __| ||_|
_ _| | | | _ ____ _ _ _ _
| | | | | | || | _ \| | | |\ \/ /
| |_| | |__| || | | | | |_| |/ \
| ___\____|_||_|_| |_|\____|\_/\_/
| |
|_|
For further information check:
http://www.uclinux.org/
D68000 processor
Command: ifconfig
eth0 Link encap:Ethernet HWaddr 00:CF:49:52:01:C3
inet addr:10.10.10.111 Bcast:10.10.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 iB) TX bytes:0 (0.0 iB)
Interrupt:4 Base address:0x300
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 iB) TX bytes:0 (0.0 iB)
Command: route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.10.111 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 10.10.10.100 0.0.0.0 UG 0 0 0 eth0
Execution Finished, Exiting
Sash command shell (version 1.1.1)
/>

The BOA application is used as HTTP server. It is small quite good HTTP server. It runs example web page.
/> ps
PID PORT STAT SIZE SHARED %CPU COMMAND
1 S 90K 0K 0.0 init
2 S 0K 0K 0.0 keventd
3 S 0K 0K 0.0 ksoftirqd_CPU0
4 S 0K 0K 0.0 kswapd
5 S 0K 0K 0.0 bdflush
6 S 0K 0K 0.0 kupdated
18 S 110K 0K 0.0 portmap
21 S0 S 90K 0K 0.0 /bin/sh
22 S 90K 0K 0.0 /bin/boa
60 S0 R 82K 0K 0.0 ps
/>


More details about D68000 running uCLinux can be found in the following document.
To obtain more information about D68000 microprocessor please check this link.
For any comments/questions please contact DCD.
|