[BACK]Return to hppa.html CVS log [TXT][DIR] Up to [local] / www

File: [local] / www / hppa.html (download) (as text)

Revision 1.78, Mon Jan 13 20:40:18 2003 UTC (21 years, 4 months ago) by mickey
Branch: MAIN
Changes since 1.77: +13 -2 lines

add a list of totally unlikely to be supported systems

<!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN"
	"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>OpenBSD/hppa</title>
<link rev="made" href="mailto:www@openbsd.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="resource-type" content="document">
<meta name="description" content="the OpenBSD/hppa page">
<meta name="keywords" content="openbsd,hppa">
<meta name="distribution" content="global">
<meta name="copyright" content="This document copyright 1996-2003 by OpenBSD.">
</head>

<body bgcolor="#ffffff" text="#000000" link="#23238e">
<a href="index.html"><img alt="[OpenBSD]" height="30" width="141" src="images/smalltitle.gif" border="0"></a>
<p>
<h2><font color="#e00000">OpenBSD/hppa</font></h2>

<hr>

<p>
OpenBSD/hppa runs on a large set of the 32-bit Hewlett Packard Precision
Architecture workstations and servers (HP PA-RISC).
</p>

<p>
A mailing list dedicated to the OpenBSD/hppa port is available at
<u><font color="#23238e">hppa@openbsd.org</font></u>.
To join the OpenBSD/hppa mailing list, send a message body of <b>"subscribe
hppa"</b> to <a href="mailto:majordomo@openbsd.org">majordomo@openbsd.org</a>.
Please be sure to check our <a href="mail.html">mailing list policy</a> before
subscribing.
</p>

<p>
The current port maintainer is
<a href="mailto:mickey@openbsd.org">Michael Shalayeff</a>.
Others are definitely welcome to contribute!
</p>

<a href="#toc"></a>
<h3><font color="#0000e0"><i>Table of contents</i></font></h3>
<p>
<ul>
  <li><a href="#history">Past history of the port</a>
  <li><a href="#status">Current status</a>
  <li><a href="#projects">Project list</a>
  <li><a href="#hardware">Supported hardware list</a>
  <li><a href="#hwdocs">Hardware documentation</a>
  <li><a href="#install">Getting and installing OpenBSD/hppa</a>
  <li><a href="#netboot">Netbooting OpenBSD/hppa</a>
  <li><a href="#cross">Cross-compiling kernels</a>
</ul>
</p>

<hr>
<a name="history"></a>
<h3><font color="#0000e0"><strong>History:</strong></font></h3>

<p>
This project was started in those days when the only
open source operating systems for HP PA-RISC computers were
<a href="http://www.cs.utah.edu/projects/flux/lites/html">Lites</a> and
<a href="http://www.mklinux.org">MkLinux</a>.
These two sources were a major supply of information and
code for initial development of the OpenBSD/hppa port.
<a href="http://www.cs.utah.edu/~mike/hpbsd/hpbsd.html">HPBSD</a>
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.
</p>

<p>
Later on, Hewlett-Packard decided to sponsor a
<a href="http://www.parisc-linux.org/">Linux</a> 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.
</p>

<hr>
<a name="status"></a>
<h3><font color="#0000e0"><strong>Current status:</strong></font></h3>

<p>
Although there have been no official releases of this port yet,
the supported systems boot to multi-user and full snapshots are made
periodically.
</p>

<p>
Currently, no storage devices are supported, so the only way to run this
port is in a diskless environment.
</p>

<hr>
<a name="projects"></a>
<h3><font color="#0000e0"><strong>Projects (in no particular order):
</strong></font></h3>

<p>
<ul>
  <li>Improve overall stability
  <li>Support the on-board SCSI controller (NCR 53c7xx)
  <li>Standalone boot blocks (once SCSI support is ready)
  <li>Support keyboard and mouse (PS/2 and HIL) natively
  <li>Improve port-specific documentation
  <li>X11 support
</ul>
</p>

<hr>
<a name="hardware"></a>
<h3><font color="#0000e0"><strong>Supported hardware:</strong></font></h3>

<p>
<h4>Supported models</h4>
</p>

<p>
<ul>
  <li>PA7100-based: 715/33, 715/50, 715/75, 725/50, 725/75, 735/100, 755/100
  <li>PA7100LC-based: 712, 715/64, 715/80, 715/100, 715/100XC, 725/64, 725/100
  <li>PA7150-based: 735/125, 755/125
  <li>PA7200-based: J200, J210, J210XC, C100, C110
</ul>
</p>

<p>
<h4>Supported peripherals</h4>
</p>

<p>
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 <a href="want.html">"Wanted List"</a>
(contact <a href="mailto:mickey@openbsd.org">mickey</a>).
</p>

<p>
<ul>
<li><strong>
<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=io&amp;sektion=4&amp;arch=hppa">Bus/IO
controllers</a></strong>
  <ul>
  <li>Phantom PseudoBC GSC+ Port
(<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=phantomas&amp;sektion=4&amp;arch=hppa">phantomas</a>)
  <li>GSC
(<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=gsc&amp;sektion=4&amp;arch=hppa">gsc</a>):
  LASI
(<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=lasi&amp;sektion=4&amp;arch=hppa">lasi</a>),
  ASP
(<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=asp&amp;sektion=4&amp;arch=hppa">asp</a>)
  </ul>
<li><strong>SGC/GSC graphics</strong>
(<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sti&amp;sektion=4">sti</a>)
  <ul>
  <li>Artist (as found on 712)
  <li>CRX-8, CRX-24, HCRX-8, HCRX-24
  </ul>
<li><strong>Serial ports</strong>
  <ul>
  <li>On-board ns16550 or similar
(<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=com&amp;sektion=4">com</a>)
  </ul>
<li><strong>Parallel ports</strong>
  <ul>
  <li>On-board parallel port
(<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=lpt&amp;sektion=4">lpt</a>)
  </ul>
<li><strong>Ethernet</strong>
  <ul>
  <li>On-board Intel i82596 ethernet
(<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ie&amp;sektion=4&amp;arch=hppa">ie</a>)
  </ul>
<li><strong>Miscellaneous devices</strong>
  <ul>
  <li>Battery-backed real time clock
  <li>Keyboard console (via PDC support)
  </ul>
</ul>
</p>

<p>
<h4>Unsupported models</h4>
</p>

<p>
The following systems may eventually work:
<ul>
  <li>PA7000-based machines: 705, 710, 720, 730, 750
  <li>PA2.0 systems (in 32-bit mode)
  <li>HP 9000 836, 844, 845, 846
  <li>HP 9000 E23, E25, E35, E45, E55
  <li>HP 3000 908, 918, 928, 938
  <li>Hitachi VQ200, VQ210, and some other non-HP workstations
  <li>Precision Book from RDI Computer Corporation (well, unlikely)
  <li>HP VME and VXI single board systems (requires VME at least)
</ul>
</p>

<p>
These systems will, probably, never be supported by this port since they are of 1.0
.Tn PA-RISC
architecture, which is substantially inferiour to the 1.1:
<ul>
  <li>HP 9000 600, 635, 645
  <li>HP 9000 800, 808, 815, 822, 825, 832, 834, 835, 840, 842, 845, 850, 852, 855, 860, 865, 870, 890
  <li>HP 9000 900
</ul>
</p>

<p>
<h4>Unsupported peripherals</h4>
</p>

<p>
This list is not meant to be exhaustive either, but sums up the most commonly
encountered devices on hppa machines.
<ul>
<li><strong>Bus/IO controllers</strong>
  <ul>
  <li>EISA bus
  <li>PCI bus
  </ul>
<li><strong>SCSI controllers</strong>
  <ul>
  <li>NCR53C710 SCSI I/O Processors
(<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=osiop&amp;sektion=4">osiop</a>)
  <li>NCR53C720 SCSI I/O Processors
(<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=siop&amp;sektion=4">siop</a>)
  </ul>
<li><strong>Input devices</strong>
  <ul>
  <li>PS/2 keyboard and mouse
  <li>HIL keyboard and mouse
  </ul>
<li><strong>On-board floppy controller</strong>
<li><strong>On-board audio</strong>
</ul>
</p>

<hr>
<a name="hwdocs"></a>
<h3><font color="#0000e0"><strong>Hardware documentation:</strong></font></h3>

<p><small>
Most of the following documents have been released by Hewlett-Packard for
the <a href="http://www.parisc-linux.org/">PA-RISC Linux</a> project.
</small></p>

<p>
<ol type=1>
<li>HP PA-RISC CPUs
	<ol type=a>
<li><a href="http://ftp.parisc-linux.org/docs/PCXL_ers.ps">PA7100LC CPU ERS</a>
<li><a href="http://ftp.parisc-linux.org/docs/pcxl2_ers.ps">PA7300LC CPU ERS</a>
	</ol>
<li>Processor Dependent Code/I/O Dependent Code Interface<br> <small>(selected chapters from "PA-RISC I/O Architecture Specification")</small>
	<ol type=a>
<li><a href="http://ftp.parisc-linux.org/docs/pdc32.pdf">PDC 1.1</a>
<li><a href="http://ftp.parisc-linux.org/docs/iodc.pdf">IODC 1.1</a>
<li><a href="http://ftp.parisc-linux.org/docs/ver_nums.pdf">Version and Identification Number Allocation</a>
<li><a href="http://ftp.parisc-linux.org/docs/data_formats.pdf">Memory Data Formats 2.0</a>
<li><a href="http://ftp.parisc-linux.org/docs/pdc.pdf">PDC Procedures 2.0</a>
<li><a href="http://ftp.parisc-linux.org/docs/pdce.pdf">PDC Entry Points 2.0</a>
<li><a href="http://ftp.parisc-linux.org/docs/os_interface.pdf">OS Interface 2.0</a>
	</ol>
<li>Bus controllers/bridges/adaptors
	<ol type=a>
<li><a href="http://ftp.parisc-linux.org/docs/hardball_ers.pdf">ASP</a>
<li><a href="http://ftp.parisc-linux.org/docs/lasi_ers.ps">LASI Core Bus Adapter (including lan, scsi, serial, lpt controllers)</a>
<li><a href="http://ftp.parisc-linux.org/docs/dino_ers.ps">Dino PCI bridge</a>,
and <a href="http://ftp.parisc-linux.org/docs/Dino_3_1_Errata.html">Errata</a>
<li><a href="http://ftp.parisc-linux.org/docs/elroy_ers.ps">Elroy ERS (Edited for Open Source)</a>
<li>Astro <a href="http://ftp.parisc-linux.org/docs/astro_intro.ps">Overview</a>, <a href="http://ftp.parisc-linux.org/docs/astro_errors.ps">Error handling</a>,<a href="http://puffin.external.hp.com/docs/astro_ioc.ps">R2I Operations</a>, <a href="http://puffin.external.hp.com/docs/astro_regmap.ps">Registers Map</a>, <a href="http://puffin.external.hp.com/docs/astro_runway.ps">Runway Interface</a>, <a href="http://puffin.external.hp.com/docs/astro_sysmap.ps">System Mamory Map</a>
	</ol>
<li><a href="http://ftp.parisc-linux.org/docs/sti.pdf">Stinger
graphics</a>
<li><a href="http://www.lsilogic.com/techlib/techdocs/old_storage/770_2_0.pdf">NCR
53C700/710/720 SCSI I/O Processors</a>
    <small>(the doc is actually for 770, which is claimed as compatible)</small>
<li>Intel
<a href="http://developer.intel.com/design/network/datashts/290219.htm">i82596DX/SX</a>
and
<a href="http://developer.intel.com/design/network/datashts/290218.htm">i82596CA</a>
Ethernet Controllers
</ol>
</p>

<p>
Of course, no hppa page, be it OpenBSD or not, could pretend to be serious
without linking to the essential <a href="http://www.openpa.net/">OpenPA</a>
reference website.
</p>

<hr>
<a name="install"></a>
<h3><font color="#0000e0">
<strong>Getting and installing OpenBSD/hppa:</strong>
</font></h3>

<!-- not yet kiddies
<p>
The latest supported OpenBSD/hppa release is
<a href="32.html">OpenBSD 3.2</a>.
Here are the
<a href="ftp://ftp.OpenBSD.org/pub/OpenBSD/3.2/hppa/INSTALL.hppa">
OpenBSD/hppa 3.2 installation instructions
</a>.
</p>
-->

<p>
Snapshots are made available from time to time, in
<a href="ftp://ftp.OpenBSD.org/pub/OpenBSD/snapshots/hppa">this location</a>
as well as in a few
<a href="ftp.html">mirrors</a>.
Here are the
<a href="ftp://ftp.OpenBSD.org/pub/OpenBSD/snapshots/hppa/INSTALL.hppa">
OpenBSD/hppa snapshot installation instructions
</a> as well.
</p>

<hr>
<a name="netboot"></a>
<h3><font color="#0000e0"><strong>Netbooting OpenBSD/hppa:</strong></font></h3>

<p>
The <tt>boot.lif</tt> 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:
<ol>
  <li>Server setup
    <ul>
    <li>For older machines (705, 7[1235]0, old 715)
	<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rbootd&amp;sektion=8">rbootd</a>
	must be setup and started.
      <ul>
      <li><tt>/etc/rbootd.conf</tt> contains a single line per machine
      needing to boot from the server. Each line contains the ethernet
      address of the client hppa machine, and the filename to be loaded from
      the tftp server (relative to <tt>/usr/mdec/rbootd</tt>).
      For example:
	<pre>
	8:0:9:70:c4:11    <a href="#boot_lif">boot.lif</a>    # 9000/720
	8:0:9:19:fb:a0    <a href="#boot_lif">boot.lif</a>    # 9000/725
	</pre>
      </li>
      </ul>
    </li>
    <li>Recent machines (712, newer 715, 725) will not look for rbootd at all,
    but instead require a <b>bootp</b> setup.
      <ul>
      <li><tt>/etc/<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bootptab&amp;sektion=5">bootptab</a></tt>
      contains an information block for each machine.  For example:
	<pre>
	# 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:
	</pre>
      </li>
	<li>
	Create directory <tt>/tftpboot</tt> and put the
	<tt><a href="#boot_lif">boot.lif</a></tt> file in it.<br>
	</li>
	<li>
	Write an entry for the hppa in <tt>/etc/ethers</tt>:
	<pre>
	08:00:09:5f:5a:6e	boron
	</pre>
	</li>
	<li>
	Write another entry for it in <tt>/etc/hosts</tt>:
	<pre>
	10.0.1.143	boron
	</pre>
	</li>
	<li>
	Create directory <tt>/usr/local/exports/boron/root</tt> and unpack
	at least <tt>base32.tgz</tt> and <tt>etc32.tgz</tt> in it.
	</li>
	<li>
	After the sets are unpacked, create device nodes in <tt>dev/</tt> by
	running <tt>MAKEDEV</tt> and alter the configuration files in
	<tt>/etc</tt> (refer to the installation notes for details).
	</li>
	<li>
	Finally, add an entry to <tt>/etc/exports</tt> in order to export
	the root directory to the client:
	<pre>
	/usr/local/exports/boron/root boron
	</pre>
	You might want to also create and export a swap area.
	</li>
	<li>
	The last step is to enable the necessary daemons for all of this to
	work.
	<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=bootpd&amp;sektion=8">bootpd</a>
	and
	<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=tftpd&amp;sektion=8">tftpd</a>
	are usually run from
	<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=inetd&amp;sektion=8">inetd</a>,
	so <tt>/etc/inetd.conf</tt> has to be modified and
	<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=inetd&amp;sektion=8">inetd</a>
	restarted.
	</li>
	<li>
	For proper NFS server operation,
	<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=portmap&amp;sektion=8">portmap</a>,
	<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mountd&amp;sektion=8">mountd</a>
	and
	<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=nfsd&amp;sektion=8">nfsd</a>
	need to be enabled, as well as
	<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rarpd&amp;sektion=8">rarpd</a>
	and
	<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rpc.bootparamsd&amp;sektion=8">rpc.bootparamsd</a>
	in
	<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=rc.conf&amp;sektion=5">rc.conf</a>.
	</li>
	</ul>
    </li>
    <li>For further reading on server setup for network booting in general,
    please refer to the
    <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=diskless&amp;sektion=8">diskless(8)</a>
    manual page.
    </li>
    </ul>
 <p>
  <li>Client Network Boot
  <ul>
    <li>BOOT_ADMIN<br>
	In order to get to the BOOT_ADMIN prompt, hit the <em>&lt;esc&gt;</em>
	key as the machine is coming up. Once it has probed bootable devices,
	a menu will be displayed; if the prompt is <i>not</i> <b>BOOT_ADMIN</b>,
	it will be necessary to type <i>``a''</i> to access it.
    </li>
    <li>Network boot command<br>
	Once at the 'BOOT_ADMIN' prompt, the command
<pre>
	BOOT_ADMIN> boot lan isl
</pre>
        will proceed to the bootstrap of boot.lif.
  </ul>
  </li>
</ol>
</p>

<hr>
<a name="cross"></a>
<h3><font color="#0000e0"><strong>Cross-compiling kernels:</strong></font></h3>

<p>
The OpenBSD source tree provides some cross-compilation facilities.
First, a set of hppa cross tools (cross compiler, cross binutils, etc) must
be created:
<pre>
# cd /usr/src
# make TARGET=hppa cross-includes cross-binutils cross-gcc
</pre>
This will build and install the various utilities in <tt>/usr/cross/hppa</tt>.
Note that this step must be run as root, or using
<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=sudo&amp;sektion=8">sudo</a>.
</p>

<a name="boot_lif"></a>
<h4>Building boot.lif using cross-tools</h4>

<p>
<ul>
  <li>Building <i>mkboot</i>
  <p>
  mkboot is the only specific host tool needed for the boot.lif build.
  <pre>
$ cd /usr/src/sys/arch/hppa/stand/mkboot
$ env MACHINE=hppa make obj
$ env MACHINE=hppa make depend all
  </pre>
  </p></li>
  <li>Building the kernel
  <p>
  The kernel can be configured as usual, and then built using the cross-tools.
  <pre>
$ 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
  </pre>
  </p></li>
  <li>Build boot.lif
  <p>With the kernel compiled, the boot loader can now be compiled and the
  lif file generated.
  <pre>
$ 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
  </pre>
  </p></li>
</ul>
The final boot.lif file stands in
<tt>/usr/src/sys/arch/hppa/stand/boot/obj/boot.lif</tt>
</p>

<hr>
<a href="plat.html">
<img height="24" width="24" src="back.gif" border="0" alt="Supported platforms">
</a>
<br>
<small><a href="mailto:www@openbsd.org">www@openbsd.org</a></small>
<br>
<small>$OpenBSD: hppa.html,v 1.78 2003/01/13 20:40:18 mickey Exp $</small>
</body>
</html>