OpenBSD/mvme88k is an effort to port OpenBSD to the systems built upon Motorola's 881x0-based VME motherboard family.
The current port maintainer is Miodrag Vallat (miod@openbsd.org), with the help of Steve Murphree. Others are definitely welcome to contribute!
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 revealed 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, 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.
Currently, only the MVME187 and MVME188 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 on progress to fix the remaining problems and reliably support more boards.
Besides various Motorola complete systems (M8120, MVME187-based series 900, etc), this port also runs on the MVME187-based Triton Dolphin System 100.
These boards are currently not supported. However, code for some of them exists in the tree, and is currently being debugged.
The latest supported OpenBSD/mvme88k release is OpenBSD 3.6. Here are the OpenBSD/mvme88k 3.6 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.
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 MVME187 system.
CPU0 is attached with 2 MC88200 CMMUs CPU0 is master CPU [ using 164336 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-2003 OpenBSD. All rights reserved. http://www.OpenBSD.org OpenBSD 3.4-current (GENERIC) #339: Thu Dec 25 20:53:33 GMT 2003 miod@ramade.gentiane.org:/usr/src/sys/arch/mvme88k/compile/GENERIC real mem = 33554432 avail mem = 28024832 (6842 pages) using 435 buffers containing 1781760 bytes of memory mainbus0 (root): Motorola MVME187, 25MHz cpu0: M88100 rev 0x3, 2 CMMU cpu0: M88200 (16K) rev 0x9, global Icache, M88200 (16K) rev 0x9, global Dcache bugtty0 at mainbus0 addr 0xfff45000: fallback console pcctwo0 at mainbus0 addr 0xfff00000: rev 0 clock0 at pcctwo0 ipl 5 memc0 at pcctwo0 offset 0x43000: MEMC040 rev 1 nvram0 at pcctwo0 offset 0xc0000: MK48T08 len 8192 cl0 at pcctwo0 offset 0x45000 ipl 3 console ssh0 at pcctwo0 offset 0x47000 ipl 2: version 0 target 7 scsibus0 at ssh0: 8 targets vme0 at pcctwo0 offset 0x40000: vector base 0x80, system controller vme0: using BUG parameters vme0: 1phys 0x02000000-0xefff0000 to VME 0x02000000-0xefff0000 vme0: 2phys 0xff000000-0xff7f0000 to VME 0xff000000-0xff7f0000 vme0: 3phys 0x00000000-0x00000000 to VME 0x00000000-0x00000000 vme0: 4phys 0x00000000-0x00000000 to VME 0x00000000-0x00000000 vme0: vme to cpu irq level 1:1 vmes0 at vme0 vx0 at vmes0 addr 0xff780000 vaddr 0x3ad0000 vec 0x80 ipl 3 vx0: created channel 1 vs0 at vmes0 addr 0xffff9000 vaddr 0x3ae0000 vec 0x81 ipl 2: target 7 scsibus1 at vs0: 8 targets sd0 at scsibus1 targ 0 lun 0: <COMPAQPC, DCAS-32160, S6CA> SCSI2 0/direct fixed sd0: 2006MB, 8188 cyl, 3 head, 167 sec, 512 bytes/sec, 4110000 sec total vmel0 at vme0 ie0 at pcctwo0 offset 0x46000 ipl 1: address 08:00:3e:21:07:25 boot device: sd0 root on sd0a rootdev=0x400 rrootdev=0x800 rawdev=0x802 Automatic boot in progress: starting file system checks. /dev/rsd0a: file system is clean; not checking /dev/rsd0d: file system is clean; not checking /dev/rsd0e: file system is clean; not checking /dev/rsd0f: file system is clean; not checking /dev/rsd0g: file system is clean; not checking /dev/rsd0h: file system is clean; not checking /dev/rsd0i: file system is clean; not checking setting tty flags ddb.console: 0 -> 1 kern.splassert: 0 -> 2 starting network add net default: gateway odyssee starting system logger starting rpc daemons: portmap ypbind rdate timed. 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 preserving editor files creating runtime link editor directory cache. starting network daemons: sendmail inetd sshd. starting local daemons:. standard daemons: cron. Sat Jan 3 22:58:54 GMT 2004 OpenBSD/mvme88k (ramade.gentiane.org) (console) login: