OpenBSD/mvme88k is a port of OpenBSD to the systems built upon Motorola's 88xxx-based VME motherboard family.

A mailing list for m88k-based ports is available at m88k@openbsd.org. To join the OpenBSD/m88k mailing list, send a message body of "subscribe m88k" to majordomo@openbsd.org. Please be sure to check our mailing list policy before subscribing.

The current port maintainer is Miod Vallat (miod@openbsd.org), with the help of Steve Murphree. Others are definitely welcome to contribute!

Table of contents


The Motorola 88k processor is said to be the best RISC processor ever devised. Its simplicity and elegance combine to make the mvme88k a hearty, robust platform.

Nivas Madhur started the initial mvme88k port for the MVME187 card, but has since moved on to another employer. The port was brought in the OpenBSD tree by Dale Rahn, but he did not have enough time to work on it. Steve Murphree, Jr. eventually completed the port to the MVME187 in November 1998.

Unfortunately, at the same time, a compiler upgrade from gcc 2.8.1 to egcs exposed a lot of problems in the mvme88k support in gcc, which could not be fixed in time for mvme88k to be a supported OpenBSD 2.5 release.

The lack of an in-tree toolchain did not prevent further work on the port, and a lot of changes were made to the codebase, such as revamped autoconf and on-board SCSI driver, greatly expanded VME bus support, a working install process that correctly creates a Motorola VID block on the disks, and support for MVME188 as well as improving support for MVME197.

During summer 2003, an effort to fix the toolchain eventually produced a working gcc 2.95 compiler, and allowed the port to be self-hosting again. With the help of Mark Kettenis, the toolchain effort eventually produced working binutils and gdb in late may 2004.

Work towards multiprocessor support on the MVME188 boards started in summer 2005 and, after a lot of tedious bugfixing, was eventually completed shortly after the 4.2 release in november 2007.

The next step was getting the 88110-based MVME197 designs to work. Single-processor kernels started to run reliably in december 2007; multiprocessor support was completed in march 2009, but kept triggering obscure bugs which eventually got tracked down to a processor errata, fixed for good in april 2010.

Current status:

Currently, MVME187, MVME188 and MVME197 boards, as well as similar designs, are booting multi-user, supporting most of the on-board devices. There are still a few caveats; depending on your exact hardware setup, your mileage may vary. Work is in progress to fix the remaining problems.

Projects (in no particular order):

Supported hardware:

Supported processor boards

Besides various Motorola complete systems (M8120, Series 900, etc), this port also runs on the MVME187-based Triton Dolphin System 100.

Supported on-board devices

Supported VME boards

Unsupported processor boards

These boards are currently not supported. There is nothing, apart from lack of available hardware, preventing them from being supported eventually.

Getting and installing OpenBSD/mvme88k:

The latest supported OpenBSD/mvme88k release is OpenBSD 4.8. Here are the OpenBSD/mvme88k 4.8 installation instructions .

Snapshots are made available from time to time, in this location as well as in a few mirrors. Here are the OpenBSD/mvme88k snapshot installation instructions as well.

Hardware details:

As VME hardware is quite uncommon in the average retail place, and Motorola 881x0-based hardware is even more rare, this section is here to satisfy the well-founded curiosity about the mvme88k hardware.

A comprehensive reference about the m88k processor and the various designs built upon it is being gathered by Paul Weissmann at badabada.

Pictures of a Motorola 900 modular chassis, with a 33MHz MVME187 CPU board, 32MB RAM, 4 MVME332XT serial boards, and an Archive 250MB QIC tape drive.

This is a boot log of an MVME197DP system.

[ using 205464 bytes of bsd a.out symbol table ]
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2010 OpenBSD. All rights reserved.  http://www.OpenBSD.org

OpenBSD 4.7-current (GENERIC.MP) #308: Thu Apr 15 21:09:19 GMT 2010
real mem = 134217728 (128MB)
avail mem = 125927424 (120MB)
mainbus0 at root: Motorola MVME197, 50MHz
cpu0: M88110 version 0xf, 8K I/D caches
cpu0: external M88410 cache controller
cpu1: M88110 version 0xf, 8K I/D caches
cpu1: external M88410 cache controller
bussw0 at mainbus0 addr 0xfff00000: rev 4
pcctwo0 at bussw0 offset 0x0: rev 0
nvram0 at pcctwo0 offset 0xc0000: MK48T08
cl0 at pcctwo0 offset 0x45000 ipl 3: console
osiop0 at pcctwo0 offset 0x47000 ipl 2: NCR53C710 rev 2, 50MHz
scsibus0 at osiop0: 8 targets, initiator 7
osiop0: target 0 now using 8 bit 10 MHz 8 REQ/ACK offset xfers
sd0 at scsibus0 targ 0 lun 0: <SAMSUNG, WN34324U (gm030), 0105> SCSI2 0/direct fixed
sd0: 4120MB, 512 bytes/sec, 8438976 sec total
osiop0: target 1 now using 8 bit 10 MHz 8 REQ/ACK offset xfers
sd1 at scsibus0 targ 1 lun 0: <QUANTUM, FIREBALL_TM3200S, 300X> SCSI2 0/direct fixed
sd1: 3067MB, 512 bytes/sec, 6281856 sec total
vme0 at pcctwo0 offset 0x40000
vme0: using BUG parameters
vme0: 1phys 0x08000000-0xefff0000 to VME 0x08000000-0xefff0000
vme0: vme to cpu irq level 1:1
vmes0 at vme0
vmel0 at vme0
ie0 at pcctwo0 offset 0x46000 ipl 3: address 08:00:3e:23:ed:e8
vscsi0 at root
scsibus1 at vscsi0: 256 targets
softraid0 at root
boot device: sd0
root on sd0a swap on sd0b dump on sd0b
Automatic boot in progress: starting file system checks.
/dev/rsd0a: file system is clean; not checking
/dev/rsd0f: file system is clean; not checking
/dev/rsd1a: file system is clean; not checking
/dev/rsd0d: file system is clean; not checking
/dev/rsd0h: file system is clean; not checking
/dev/rsd0e: file system is clean; not checking
/dev/rsd0g: file system is clean; not checking
setting tty flags
ddb.console: 0 -> 1
kern.splassert: 1 -> 2
starting network
starting system logger
starting initial daemons: portmap ypbind rdate ntpd.
savecore: no core dump
checking quotas: done.
building ps databases: kvm dev.
clearing /tmp
starting pre-securelevel daemons:.
setting kernel security level: kern.securelevel: 0 -> 1
creating runtime link editor directory cache.
preserving editor files.
starting network daemons: sendmail inetd sshd.
starting local daemons:.
standard daemons: cron.
Thu Apr 15 21:12:51 GMT 2010

OpenBSD/mvme88k (arzon.gentiane.org) (console)


Supported platforms
$OpenBSD: mvme88k.html,v 1.82 2010/11/01 22:06:58 jasper Exp $