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

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

Revision 1.58, Fri Mar 8 23:31:08 2002 UTC (22 years, 2 months ago) by mickey
Branch: MAIN
Changes since 1.57: +22 -22 lines

updates and cleanups from paul@pdp11.org

<!DOCTYPE HTML PUBLIC  "-//IETF//DTD HTML Strict//EN">
<html>
<head>
<title>OpenBSD/hppa</title>
<link rev=made href=mailto:www@openbsd.org>
<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-2002 by OpenBSD.">
</head>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#23238E">

<h2>OpenBSD/hppa</h2>

<hr>

This port is aimed to support the following HP 9000 models:
705, 710, <b>712</b>, <b>715</b>, 720, <b>725</b>,
730, <b>735</b>, 742, 750, <b>755</b>, A180, A180C, B132L, B132L+,
B160L, B180L, C100, C110, C132L, C160L, C180L, J200, J210, J210XC
(bold means "known to be working").
Other similar to those hardware configurations may be supported
as long as if they based on:
<ul>
<li>HP PA-RISC 7000, 7100, 7150, 7100LC, 7200, 7300LC processors;
<li>Viper (others ?) memory controller;
<li>LASI, ASP, WAX bus/IO controller;
<li>and EISA bus controller;
<li>NCR53C700, NCR53C710, NCR53C720 SCSI I/O Processor;
<li>Venom, CRX-8, CRX-24, HCRX-8, HCRX-24 video controllers;
<li>HIL or PS/2 keyboard and mouse;
<li>EISA devices will work, but they won't be useful for booting,
	but some of those manufactured by HP for 700/800 systems.
</ul>
Systems which may work (eventually): 
<ul>
<li>PA2.0 systems (in 32-bit mode);
<li>HP 9000 834, 835, 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>
<br>
Hardware is needed for this project,
see <a href="want.html">"Wanted List"</a>. (contact <a href=mailto:mickey@openbsd.org>mickey</a>).

<h3><strong>Status:</strong></h3>
System boots to single-user, using <a href=http://hppa.lucifier.net/#boot_lif>bootable images</a>.

<h3><strong>History:</strong></h3>
This project was started in one of 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.osf.org/mall/os/pa-mklinux>MkLinux</a>.
These two sources were a major supply of information and
code for initial development of the OpenBSD/hppa port.
The <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 ;) is
support for HP PA-RISC in GCC and binutils, which allowed quick
build of cross-tools environment for development.
<p>
Later on HP decided to sponsor a
<a href=http://www.parisc-linux.org/>Linux</a> port to PA-RISC
machines which actually resulted in some proprietary documentation
release, even they target different class of 9000 machines.
<p>
So far here is a history of OpenBSD/hppa port
<small>(it has no dates, but use
<a href=anoncvs.html>cvs</a> to see what happened when)</small>:
<ul>
<li>single user
<li>serial console support
<li>sti driver rewritten, with released specifications
<li>kernel symbol table loading by /boot (symbolic debugging !)
<li>init(8) execs fine, subsequent single-user shell <u>exits</u>,
	meaning probably it found some problem initializing itself
<li>root on nfs, swap on nfs
<li>i82596-based ethernet (if_ie), in uncached memory mode
<li>Most of the MD kernel code written
<li>DDB support except watchpoints and single-stepping
<li>disk boot working
<li>Stinger (*CRX-*) graphics boards driver
<li>LASI, ASP, WAX and EISA bus adapters
<li>com, lpt, fdc drivers (no fd yet ;)
<li>PDC driver
<li>kernel bootstrap working
<li>network boot working through the LIF image
<li>cross-tools compiling/working
</ul>

<h4>Documentation</h4>
<small>(most of which was released by HP for the
<a href=http://www.parisc-linux.org/>Linux/parisc</a> project)</small>:
<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><b>Processor Dependent Code/I/O Dependent Code Interface</b><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><b>Bus controllers/bridges/adaptors</b>
	<ol type=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>

<h4>Build cross-tools:</h4>
<p>
Currently, the in-tree binutils can't be used to generate cross-tools.
You should use a 2.7 source tree to build them, 2.8 and later will not
work.
<p>
<pre>
cd /usr/src
sudo make TARGET=hppa cross-tools
</pre>
</p>
<p>
cross-tools build process may fail in the libc stage, consider that's
all right, since libc support is not finished yet.
</p>
<a name="boot_lif"></a>
<h4>Build boot.lif file using cross-tools:</h4>
<p>
<pre>
cd /sys/arch/hppa/stand
make obj
set cross=(/usr/cross/hppa/usr/bin)
make MACHINE=hppa MACHINE_ARCH=hppa \
	"AS=$cross/as" "CC=$cross/cc" "CXX=$cross/c++" \
	"CPP=$cross/cpp" "LD=$cross/ld" \
	"AR=$cross/ar" "STRIP=$cross/strip" \
	"LORDER=$cross/lorder" "NM=$cross/nm" \
	"RANLIB=$cross/ranlib" "SIZE=$cross/size"
</pre>
</p>
<p>
One will have a <a href=http://hppa.lucifier.net/#boot_lif><em>boot.lif</em></a>
file to boot then in the obj-directory.
That image may include <em>diskless</em> kernel image if one was available
in the <em>sys/arch/hppa/compile/SHEPHERD_PIE/bsd</em>.
<br>
Kernel cross-build process is similar to the one for boot, consult
<a href=http://www.openbsd.org/cgi-bin/man.cgi?query=config&apropos=0&sektion=0
&manpath=OpenBSD+Current&format=html>config(8)</a>
and
<a href=http://www.openbsd.org/cgi-bin/man.cgi?query=options&apropos=0&sektion=0&manpath=OpenBSD+Current&format=html>options(8)</a>
for kernel build options and configuration.
</p>
<h4>Recent development:</h4>
<pre>
BOOT_ADMIN&gt; boot lan isl

Booting





&gt;&gt; OpenBSD/hppa BOOT 0.6
boot&gt; boot bsd
booting lf0a:/bsd: fstat1695744+65536+225280 [168316+57624]=0x22e298 start=0x12
000
[ bsd ELF symbol table not valid: bad magic ]
[ using 231900 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-2001 OpenBSD. All right Reserved.  http://www.OpenBSD.org

OpenBSD 3.0-current (SHEPHERD_PIE) #334: Sat Dec  1 23:28:05 EST 2001
    mickey@lucifier.net:/sys/arch/hppa/compile/SHEPHERD_PIE
HP9000/712/100 (King Gecko) PA-RISC 1.1
real mem = 67108864 (73728 reserved for PROM, 50331648 used by OpenBSD)
avail mem = 55824384
using 1630 buffers containing 6676480 bytes of memory
mainbus0 (root) [flex fff80000]
pdc0 at mainbus0
mem0 at mainbus0 offset ffbf000: viper rev 0, ctrl 40400102&lt;eisa_prf&gt; &gt;&gt; 4040010b
cpu0 at mainbus0 offset ffbe000 irq 31: PCXL rev 6, lev 1, cat A, 80 MHz clock
cpu0: shadows, 128K/128K D/I cache, 64 shared TLB, 8 shared BTLB
lasi1 at mainbus0 offset 500000: rev 3.0
gsc1 at lasi1
com1 at gsc1 offset 5000
ie1 at gsc1 offset 7000: LASI/i82596CA v1.0, address 08:00:09:87:b5:76
lasi0 at mainbus0 offset 100000 irq 28: rev 3.0
gsc0 at lasi0
"Optional RJ-16" at gsc0 (type a, sv 8d) offset 4060 not configured
"Optional RJ-16" at gsc0 (type a, sv 8d) offset 4040 not configured
"PS/2 port" at gsc0 (type a, sv 84) offset 8100 not configured
"PS/2 port" at gsc0 (type a, sv 84) offset 8000 not configured
"floppy controller" at gsc0 (type a, sv 83) offset a000 not configured
harmony0 at gsc0 offset 4000 irq 13
"teleshare tty0" at harmony0 not configured
"teleshare tty1" at harmony0 not configured
lpt0 at gsc0 offset 2000 irq 7
com0 at gsc0 offset 5000 irq 5
ie0 at gsc0 offset 7000 irq 8: LASI/i82596CA v1.0, address 08:00:09:87:b5:75
"Core SCSI" at gsc0 (type a, sv 82) offset 6000 not configured
sti0 at mainbus0 offset 8000000: HPA208LC1280 rev 8.04;7
sti0: 2048x1024 frame buffer, 1280x1024x8 display, offset 0x0
sti0: 8x16 font type 1, 16 bpc, charset 0-255
wsdisplay0 at sti0

</pre>
</p>
<small>info was typed from screen, sorry for typos</small>
<hr>
In order to use the <a href=http://hppa.lucifier.net/#boot_lif>boot.lif</a> files
you must prepare your server and instruct your machine to boot off the network:
<ol>
  <li>Server setup</li><br>
    <ul>
    <li> For older machines (705, 7[1235]0, old 715)
	<a href=http://www.openbsd.org/cgi-bin/man.cgi?query=rbootd&apropos=0&sektion=0&manpath=OpenBSD+Current&format=html>rbootd</a> must be setup and started.<br>
      <ul>
      <li><b>/etc/<a href=http://www.openbsd.org/cgi-bin/man.cgi?query=rbootd&apropos=0&sektion=0&manpath=OpenBSD+Current&format=html>rbootd</a>.conf</b>
contains a single line per machine you entered 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.  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, new 715, 725) won't look for rbootd at all, but require a
<b>bootp</b> setup.<br>
      <ul>
      <li><b>/etc/<a href=http://www.openbsd.org/cgi-bin/man.cgi?query=bootptab&apropos=0&sektion=5&manpath=OpenBSD+Current&format=html>bootptab</a></b> 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 /tftpboot and put the <a href=#boot_lif>boot.lif</a> in it.<br> 
	</li>
	<li>
	Write an entry for your hppa in the <b>/etc/ethers</b> file:<br> 
	<pre>
	08:00:09:5f:5a:6e	boron
	</pre>  
	</li>
	<li>
	Write an entry for 'boron' in the <b>/etc/hosts</b> file:<br> 
	<pre>
	10.0.1.143	boron
	</pre>  
	</li>
	<li>
	Create directory /usr/local/exports/boron/root and put <a href=http://hppa.lucifier.net/root/dev/MAKEDEV>/dev/MAKEDEV</a>,
	 <a href=http://hppa.lucifier.net/root/sbin/init>/sbin/init</a>, <a href=http://hppa.lucifier.net/root/bin/ksh>/bin/ksh</a>		
	 in their relative locations. 
	</li>
	<li>
	Write an entry in <b>/etc/exports</b> so the root directory gets exported to the client:
	<pre>
	/usr/local/exports/boron/root boron
	</pre>  
	</li>
	<li>
	Remember you will have to enable <a href=http://www.openbsd.org/cgi-bin/man.cgi?query=bootpd&apropos=0&sektion=8&manpath=OpenBSD+Current&format=html>bootpd</a>
	 and <a href=http://www.openbsd.org/cgi-bin/man.cgi?query=tftpd&apropos=0&sektion=8&manpath=OpenBSD+Current&format=html>tftpd</a>
		in /etc/inetd.conf, and restart <a href=http://www.openbsd.org/cgi-bin/man.cgi?query=inetd&apropos=0&sektion=8&manpath=OpenBSD+Current&format=html>inetd</a>.
      
	</li>
      	<li>
	Also remember to enable <a href=http://www.openbsd.org/cgi-bin/man.cgi?query=nfsd&apropos=0&sektion=8&manpath=OpenBSD+Current&format=html>nfs_server</a>
	, <a href=http://www.openbsd.org/cgi-bin/man.cgi?query=rarpd&apropos=0&sektion=8&manpath=OpenBSD+Current&format=html>rarpd</a> 

	and <a href=http://www.openbsd.org/cgi-bin/man.cgi?query=portmap&apropos=0&sektion=8&manpath=OpenBSD+Current&format=html>portmap</a> 
	in <a
href=http://www.openbsd.org/cgi-bin/man.cgi?query=rc.conf&apropos=0&sektion=8&manpath=OpenBSD+Current&format=html>/etc/rc.conf</a>.
	</li>
	</ul>
    </li>
    <li>For further reading on server setup for network booting in general, see also: <a href=http://www.openbsd.org/cgi-bin/man.cgi?query=diskless&apropos=0&sektion=0&manpath=OpenBSD+Current&format=html>diskless(8)</a>.</li>
    </ul>
  <li>Client Network Boot</li><br>
  <ul>
    <li>BOOT_ADMIN<br>
	In order to get to the BOOT_ADMIN prompt, you must hit <em>\<esc\></em> as the
	machine is coming up.  Once it probes bootable devices, type 'a' for
	the 'BOOT_ADMIN' prompt.
    </li>
    <li>network boot command <br>
	Once at the 'BOOT_ADMIN' prompt, type:
<pre>
	BOOT_ADMIN> boot lan isl
</pre>
	... and you are on your way to booting boot.lif!
    </li>
  </ul>
</ol>
<hr>
<a href=plat.html><img height=24 width=24 src=back.gif border=0 alt=OpenBSD></a> 
<a href=mailto:www@openbsd.org>www@openbsd.org</a>
<br>
<small>$OpenBSD: hppa.html,v 1.58 2002/03/08 23:31:08 mickey Exp $</small>

</body>
</html>