OpenBSD sparc


OpenBSD/sparc runs on most of the 32bit Sun SPARC workstations, including the sun4, sun4c, sun4e and sun4m architecture families (but not the 64bit UltraSPARC computers, which are supported by OpenBSD/sparc64).

The OpenBSD/sparc port was discontinued after the 5.9 release.

A mailing list dedicated to the OpenBSD/sparc and OpenBSD/sparc64 ports is available at [email protected]. To join the OpenBSD/sparc mailing list, send a message body of "subscribe sparc" to [email protected]. Please be sure to check our mailing list policy before subscribing.


History:

The original 4.4BSD port was done by Chris Torek as a contract to LBL. The code was released by Chris in mid-1993, and Theo de Raadt worked it into shape for the NetBSD tree. Theo and Markus Wild worked on improving Chris' original SunOS compatibility code into a highly complete and reliable emulation. Chuck Cranor ported the sun4c code to the 8KB pagesize sun4 architecture, and Theo merged this code in a way that would allow the same kernel and programs to run on either sun4c or sun4 machines (unlike Sun's separate kernel environments). This last change also required a rewrite of the device configuration code. Just after the NetBSD/sparc 1.0 release, Peter Galbavy wrote an ESP SCSI device driver as a replacement for Chris' sparc-specific SCSI code.

At this point a conflict emerged between Theo and the other people he started the NetBSD project with, and Theo was forced by the core group to resign from NetBSD. After Theo left NetBSD, a few people in the NetBSD group did some other things for the port: Paul Kranenburg ported a floppy driver and started writing support for the 4/400. Chuck spent many long hours working on the ie, xy, xd device drivers.

Theo continued working independently, and made a number of additions: P4 support, flexible boot strategy, a few graphics drivers with the help from John Stone, and masses of bug fixes.

Work on porting OpenBSD/sparc to the sun4m platform was started by Theo, but tendinitis problems with his wrists and the problems with the NetBSD core combined made him stop this work. The initial sun4m work was passed to Aaron Brown of Harvard, who was paid out of Margo Seltzer's research funds. This initial stuff consisted mostly of a few attempts at building pmap structure that could support all 3 MMU types efficiently. Also, David Miller of the UltraLinux project got a little bit involved.

Theo and Jason Downs merged the NetBSD sparc code back into OpenBSD, making OpenBSD/sparc usable again. Jason Wright wrote a few new SBus Ethernet drivers with information from the UltraLinux project and has merged a few bits from NetBSD sources to improve the stability of this architecture. Over the time, Art Grabowski fixed various stability or reliability issues, and added non-executable stack and heap on sun4m machines. The frame buffer and console code was completely overhauled for OpenBSD 3.2, improving display speed with some frame buffers, and supporting more cards.


Current status:

Currently, all the hardware listed in the supported hardware section below boots multi-user, and supports enough (if not all) of the on-board devices to be generally usable. A growing set of third-party SBus cards are also supported.

The X Window System works on all supported frame buffers, including multi-head configurations. No accelerated server is provided at the moment, although this is being worked on.

An important note about OpenBSD/sparc is that it is designed so that a single kernel can run on ALL SUPPORTED SPARC machines. Whereas SunOS and Solaris have always had separate 'kernel architectures', i.e. sun4, sun4c, sun4e and sun4m, the same 'GENERIC' OpenBSD kernel will run on all the supported models.

Most of the problems with OpenBSD/sparc are believed to stem from the wide variety of SPARC processor and cache implementations along with their undocumented bugs, rather than general kernel problems. Feedback on which models do and do not work reliably is appreciated, particularly with newer models or upgrades.


Supported hardware:

Supported machines

The following SPARC clones are also supported (non exhaustive list):

Supported devices

This list of devices basically declares that any "stock" sun4c or sun4m "SPARCstation" or "SPARCserver" machine will probably work; for sun4 and sun4e machines one must be more careful.

* Not supported in sun4c and sun4e class machines due to PROM limitations.

Unsupported machines

Unsupported Devices

First of all, there are MANY unsupported devices. A comprehensive list can probably not be written.


Hardware documentation:

Previous to 2007, it was extremely difficult or impossible to get much of the necessary hardware documentation for these machines. Members of our team (in particular David Gwynne) were instrumental in pressuring and convincing Sun to go back into their archives and dig up the data sheets that they had written in-house, describing the operation of their chips to their own engineers. These documents can now be found at http://wikis.sun.com/display/FOSSdocs/Home. Some documents are still missing at that site, so we ask that interested developers contact Sun and request additional information.


Getting and installing OpenBSD/sparc:

The last supported OpenBSD/sparc release was OpenBSD 5.9. Here are the OpenBSD/sparc 5.9 installation instructions.

There are several installation media provided, so that OpenBSD/sparc can be installed or upgraded via CD and floppy boot images on sun4c and sun4m, miniroot images for machines without floppies (such as sun4 machines), as well as network and diskless installs.