Digital Core Design

The Power of Intellectual Property

uCLinux D68000

Testing Platform


The main goal of using uCLinux was to show that D68000 microprocessor IP Core is fully functional and well validated. For that purpose, we have built a complete testing system based on CYCLONE-II DoCD2_C2_ETH_SDRAM32 FPGA board, with some on-board memories and peripherals. We have used the world-wide known Operating System for embedded solutions - uCLinux - to run with D68000. Such combination of hardware and software creates very useful and flexible platform, with D68000 IP Core as a main processor.

The most of the applications and tools were already available as GPL based software. As a source for all information regarding uCLinux, we have used


Contents of this document:


Target System overview

The testing system consists of the components presented in the figure below.

It contains two serial communication ports, used for uCLinux image upload from host and as a main console, used for interactive communication between the user and uCLinux. We have used 10/100 Mb Ethernet connector, to plug twisted pairs LAN cable.

Host software overview

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

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:

Booting uClinux

Booting uCLinux system is very fast and takes only few seconds. The reported boot messages are listed below:

Linux version 2.4.20-uc0 ( (gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from XIP and shared lib patches from #4 Wed Oct 22 19:46:40 CEST 2003

D68000 support (C) 2003 DCD

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 (
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
Command: /bin/expand /etc/ramfs.img /dev/ram0
Command: mount -t proc proc /proc
Command: mount -t ext2 /dev/ram0 /var
Command: mkdir /var/tmp
Command: mkdir /var/log
Command: mkdir /var/run
Command: mkdir /var/lock
Command: date 102219502003
Thu Oct 22 19:50:00 UTC 2003
Command: ifconfig lo
Command: route add -net netmask lo
Command: ifconfig eth0 netmask broadcast
eth0: PHY=LAN83C183 (LAN91C111 Internal)
Command: route add eth0
Command: route add default gw
Command: portmap &
Command: cat /etc/motd
Welcome to
          ____ _  _
         /  __| ||_|
    _   _| |  | | _ ____  _   _  _  _
   | | | | |  | || |  _ | | | | / /
   | |_| | |__| || | | | | |_| |/   
   |  ___\____|_||_|_| |_|\____|\_/\_/
   | |

For further information check:
D68000 processor

Command: ifconfig
eth0      Link encap:Ethernet HWaddr 00:CF:49:52:01:C3
          inet addr: Bcast: Mask:
          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: Mask:
          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 UH    0      0        0 eth0   U     0      0        0 eth0       U     0      0        0 lo         UG    0      0        0 eth0
  Execution Finished, Exiting

Sash command shell (version 1.1.1)


HTTP server

The BOA application is used as HTTP server. It is small and quite good HTTP server. It runs example web page.

/> ps

   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

Application Notes

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.