OpenBSD/hppa runs on a large set of the 32-bit Hewlett Packard Precision Architecture workstations and servers (HP PA-RISC).
A mailing list dedicated to the OpenBSD/hppa port is available at hppa@openbsd.org. To join the OpenBSD/hppa mailing list, send a message body of "subscribe hppa" to majordomo@openbsd.org. Please be sure to check our mailing list policy before subscribing.
The current port maintainer is Michael Shalayeff. Others are definitely welcome to contribute!
This project was started in those days when the only open source operating systems for HP PA-RISC computers were Lites and MkLinux. These two sources were a major supply of information and code for initial development of the OpenBSD/hppa port. HPBSD is encumbered by HP proprietary code and USL licensing and is not publicly available. One of the major direct benefits from previous porting efforts (besides the code, of course) was support for HP PA-RISC in GCC and binutils, which allowed quick building of a cross-tools environment for development.
Later on, Hewlett-Packard decided to sponsor a Linux port to the PA-RISC family, which actually resulted in some proprietary documentation being released, even though their target was a different class of 9000 machines back then.
Although there have been no official releases of this port yet, the supported systems boot to multi-user and full snapshots are made periodically.
The list of supported hardware below is not meant to be exhaustive. Hardware is needed for developers, to further help development and testing. Please see our "Wanted List" (contact mickey).
The following systems may eventually work:
These systems will, probably, never be supported by this port since they are of 1.0 PA-RISC architecture, which is substantially inferiour to the 1.1:
This list is not meant to be exhaustive either, but sums up the most commonly encountered devices on hppa machines.
Most of the following documents have been released by Hewlett-Packard for the PA-RISC Linux project.
Of course, no hppa page, be it OpenBSD or not, could pretend to be serious without linking to the essential OpenPA reference website.
Snapshots are made available from time to time, in this location as well as in a few mirrors. Here are the OpenBSD/hppa snapshot installation instructions as well.
The boot.lif file contains both a bootloader and a kernel. To boot it from the network, a server machine has to be setup so as to let the hppa machine retrieve it:
8:0:9:70:c4:11 boot.lif # 9000/720 8:0:9:19:fb:a0 boot.lif # 9000/725
# 9000/715 boron:\ ha=0800095f5a6e:\ bf=boot.lif:\ hd=:\ ht=ethernet:\ ip=10.0.1.143:\ rp=/usr/local/exports/boron/root:\ sm=255.255.255.0:\ td=/tftpboot:
08:00:09:5f:5a:6e boron
10.0.1.143 boron
/usr/local/exports/boron/root boronYou might want to also create and export a swap area.
BOOT_ADMIN> boot lan islwill proceed to the bootstrap of boot.lif.
The OpenBSD source tree provides some cross-compilation facilities. First, a set of hppa cross tools (cross compiler, cross binutils, etc) must be created:
# cd /usr/src # make TARGET=hppa cross-includes cross-binutils cross-gccThis will build and install the various utilities in /usr/cross/hppa. Note that this step must be run as root, or using sudo.
mkboot is the only specific host tool needed for the boot.lif build.
$ cd /usr/src/sys/arch/hppa/stand/mkboot $ env MACHINE=hppa make obj $ env MACHINE=hppa make depend all
The kernel can be configured as usual, and then built using the cross-tools.
$ cd /usr/src/sys/arch/hppa/conf $ config GENERIC $ cd /usr/src/sys/arch/hppa/compile/GENERIC $ export CROSS=/usr/cross/hppa/usr/bin $ env MACHINE=hppa MACHINE_ARCH=hppa \ AR=$CROSS/ar AS=$CROSS/as CC=$CROSS/cc CPP=$CROSS/cpp LD=$CROSS/ld \ NM=$CROSS/nm RANLIB=$CROSS/ranlib SIZE=$CROSS/size STRIP=$CROSS/strip \ make depend bsd
With the kernel compiled, the boot loader can now be compiled and the lif file generated.
$ cd /usr/src/sys/arch/hppa/stand $ export CROSS=/usr/cross/hppa/usr/bin $ env MACHINE=hppa make SKIPDIR=mkboot obj $ env MACHINE=hppa MACHINE_ARCH=hppa \ AR=$CROSS/ar AS=$CROSS/as CC=$CROSS/cc CPP=$CROSS/cpp LD=$CROSS/ld \ NM=$CROSS/nm RANLIB=$CROSS/ranlib SIZE=$CROSS/size STRIP=$CROSS/strip \ make SKIPDIR=mkboot depend all