What is this all about?

Some time ago DIGITAL built the Shark as a reference design for StrongARM based network computers (nc). They never really sold it but gave it to companies to demonstrate how the StrongARM could be used.

The hardware is more or less PC like but with a StrongARM 110 Processor at 233MHz. The integer performance is not bad but the busses are slow and there is no floating point unit.

Originally DEC used NetBSD as the operating system for the Shark. In 1999, I started to port Linux to this plattform and it runs well by now.

Since DEC was sold to Compaq you can get more information about the hardware and the original software here on the Compaq page.

The current status

Recently, the normal kernels from work out of the box. You can take a look at the Kernel Autobuilder to see which recent kernel could be build without errors. Those will generally run but there is no guarantee for that, so you might need to try a few. At the moment I use and support only 2.6 kernels. Additional patches might be found from Russel King. You might also need an additional patch from my patch directory. You can also try a old shark source for a start, but it is almost always better to get a new one yourself. Be careful that zImages before version 2.6.13-rc3-git4 must not exceed one megabyte in size, or you will not be able to boot them.

Currently the system runs stable and I don't add too much now. I only try to keep up with the current kernels. Nevertheless this is work in progress and I do not consider it perfect.

Unsupported devices

There are still a few devices missing, mostly because I don't have the time to add them or the hardware to test them.

  • smartcard: I have no idea what this does and I don't have any cards and no documentation. And the FIQ code must be done first. So I probably won't do this at all. Any volunteers?
  • flashcard: Same as above, I would try it if I had something to put in there. As far as I know, only memory-cards can be used, and these are difficult to get nowadays.
  • infrared: I will continue with this one as soon as I find the time.

Supported devices

  • ide
  • gameport
  • parallel port is detected as an SPP port.
  • serial port
  • sound can play mp3 using a fixedpoint decoder.
  • LEDs
  • PCI seems to work, I have nothing to test it.
  • graphics has some problems with color depths other than 8 bit. Note that I only have a revision 5 hardware here. It uses a CyberPro chip that is supported and works. The older revision 4 boards have a different graphics chip which I cannot test and therefor don't support. If someone wants to add support for it, I'd be glad to hear from you.

How to get it running?

The steps to get a Shark running with Linux are different depending on the way you want to boot and where your root filesystem is. I will only give an introduction to some Shark specific things and will not explain Linux in general here. Unless stated otherwise I will assume that you want to boot from the network.

First you need a dhcp server reachable within your subnet. I use a standard debian dhcpd with these entries in the config:

option domain-name "";
option domain-name-servers;
option subnet-mask;
default-lease-time 600;
max-lease-time 7200;

host shark {
   hardware ethernet 08:00:2b:xx:xx:xx;
   filename "/tftpboot/zImage";
   option routers;
You will have to adjust this to your network, of course.

You will need a kernel on your server and a tftpd running. I will put a new kernel to this directory from time to time but they don't have nfs root support, so if you need this or other features you will have to compile your own kernel from source. Look here for what you need.

You need a current firmware on the Shark. Older versions are known to make problems. I use Open Firmware Built September 04, 1998 13:29:03 for testing here. Unfortunately I do not know where it can be found now, if all else fails, send an email to me. You can find additional information about flashing the firmware here. And remember: you are doing it at your own risk.

When the Shark is switched on, its actions depend on some variables that can be changed at the monitor prompt. I have them as follows:

setenv boot-device net
setenv boot-file root=/dev/hda3 console=ttyS0 ether=10,0x301,eth0
printenv shows all the variables. It is important to set the ethernet correctly or the Shark will not find the chip.

If all is setup correctly the kernel should be loaded via tftp and boot depending on the parameters in boot-file.

It is possible to boot the Shark from an ide harddisk, but this requires some hacking. The firmware can only read NetBSD partition tables and either FAT or NetBSD formated partitions. As the NetBSD partition table is problematic with linux, I also have a DOS partition table on my disk. I have a NetBSD partition at the beginning of the disk and can thus boot with boot disk:\kernel.

If you have further questions, mail Me.


Alexander Schulz
GPG Public Key (FC2C D691 523D FC80 5A38 6D02 20E6 808E F94C A67D)

Last modified: Sun Apr 16 20:07:49 2006