Annotation of www/hppa.html, Revision 1.60
1.3 fn 1: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
2: <html>
1.1 deraadt 3: <head>
4: <title>OpenBSD/hppa</title>
1.3 fn 5: <link rev=made href=mailto:www@openbsd.org>
6: <meta name="resource-type" content="document">
7: <meta name="description" content="the OpenBSD/hppa page">
8: <meta name="keywords" content="openbsd,hppa">
9: <meta name="distribution" content="global">
1.55 horacio 10: <meta name="copyright" content="This document copyright 1996-2002 by OpenBSD.">
1.3 fn 11: </head>
12:
1.8 johns 13: <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#23238E">
1.3 fn 14:
1.30 deraadt 15: <h2>OpenBSD/hppa</h2>
1.1 deraadt 16:
1.3 fn 17: <hr>
1.30 deraadt 18:
1.20 mickey 19: This port is aimed to support the following HP 9000 models:
1.32 mickey 20: 705, 710, <b>712</b>, <b>715</b>, 720, <b>725</b>,
1.57 mickey 21: 730, <b>735</b>, 742, 750, <b>755</b>, A180, A180C, B132L, B132L+,
22: B160L, B180L, C100, C110, C132L, C160L, C180L, J200, J210, J210XC
1.20 mickey 23: (bold means "known to be working").
1.44 jufi 24: Other similar to those hardware configurations may be supported
1.42 ericj 25: as long as if they based on:
1.18 mickey 26: <ul>
1.35 mickey 27: <li>HP PA-RISC 7000, 7100, 7150, 7100LC, 7200, 7300LC processors;
1.23 mickey 28: <li>Viper (others ?) memory controller;
1.28 todd 29: <li>LASI, ASP, WAX bus/IO controller;
1.20 mickey 30: <li>and EISA bus controller;
1.23 mickey 31: <li>NCR53C700, NCR53C710, NCR53C720 SCSI I/O Processor;
32: <li>Venom, CRX-8, CRX-24, HCRX-8, HCRX-24 video controllers;
33: <li>HIL or PS/2 keyboard and mouse;
1.44 jufi 34: <li>EISA devices will work, but they won't be useful for booting,
1.28 todd 35: but some of those manufactured by HP for 700/800 systems.
1.18 mickey 36: </ul>
1.42 ericj 37: Systems which may work (eventually):
1.21 mickey 38: <ul>
1.58 mickey 39: <li>PA2.0 systems (in 32-bit mode);
1.24 mickey 40: <li>HP 9000 834, 835, 836, 844, 845, 846;
1.33 mickey 41: <li>HP 9000 E23, E25, E35, E45, E55;
1.24 mickey 42: <li>HP 3000 908, 918, 928, 938;
1.28 todd 43: <li>Hitachi VQ200, VQ210, and some other non-HP workstations;
1.24 mickey 44: <li>Precision Book from RDI Computer Corporation (well, unlikely)
45: <li>HP VME and VXI single board systems (requires VME at least)
1.21 mickey 46: </ul>
1.20 mickey 47: <br>
48: Hardware is needed for this project,
1.28 todd 49: see <a href="want.html">"Wanted List"</a>. (contact <a href=mailto:mickey@openbsd.org>mickey</a>).
1.20 mickey 50:
51: <h3><strong>Status:</strong></h3>
1.58 mickey 52: System boots to single-user, using <a href=http://hppa.lucifier.net/#boot_lif>bootable images</a>.
1.16 mickey 53:
54: <h3><strong>History:</strong></h3>
1.38 mickey 55: This project was started in one of those days when the only
56: open source operating systems for HP PA-RISC computers were
57: <a href=http://www.cs.utah.edu/projects/flux/lites/html>Lites</a> and
58: <a href=http://www.osf.org/mall/os/pa-mklinux>MkLinux</a>.
59: These two sources were a major supply of information and
60: code for initial development of the OpenBSD/hppa port.
61: The <a href=http://www.cs.utah.edu/~mike/hpbsd/hpbsd.html>HPBSD</a>
62: is encumbered by HP proprietary code and USL licensing and is
63: not publicly available.
64: One of the major direct benefits from previous porting efforts
65: (besides the code, of course ;) is
66: support for HP PA-RISC in GCC and binutils, which allowed quick
67: build of cross-tools environment for development.
68: <p>
69: Later on HP decided to sponsor a
1.58 mickey 70: <a href=http://www.parisc-linux.org/>Linux</a> port to PA-RISC
1.46 pvalchev 71: machines which actually resulted in some proprietary documentation
1.38 mickey 72: release, even they target different class of 9000 machines.
73: <p>
74: So far here is a history of OpenBSD/hppa port
75: <small>(it has no dates, but use
76: <a href=anoncvs.html>cvs</a> to see what happened when)</small>:
1.16 mickey 77: <ul>
1.57 mickey 78: <li>single user
79: <li>serial console support
1.41 mickey 80: <li>sti driver rewritten, with released specifications
1.37 mickey 81: <li>kernel symbol table loading by /boot (symbolic debugging !)
1.36 mickey 82: <li>init(8) execs fine, subsequent single-user shell <u>exits</u>,
83: meaning probably it found some problem initializing itself
84: <li>root on nfs, swap on nfs
1.32 mickey 85: <li>i82596-based ethernet (if_ie), in uncached memory mode
1.31 mickey 86: <li>Most of the MD kernel code written
1.32 mickey 87: <li>DDB support except watchpoints and single-stepping
1.31 mickey 88: <li>disk boot working
1.33 mickey 89: <li>Stinger (*CRX-*) graphics boards driver
1.22 mickey 90: <li>LASI, ASP, WAX and EISA bus adapters
1.17 mickey 91: <li>com, lpt, fdc drivers (no fd yet ;)
1.18 mickey 92: <li>PDC driver
1.16 mickey 93: <li>kernel bootstrap working
94: <li>network boot working through the LIF image
95: <li>cross-tools compiling/working
96: </ul>
97:
1.38 mickey 98: <h4>Documentation</h4>
99: <small>(most of which was released by HP for the
1.58 mickey 100: <a href=http://www.parisc-linux.org/>Linux/parisc</a> project)</small>:
1.38 mickey 101: <ol type=1>
1.58 mickey 102: <li>HP PA-RISC CPUs
1.38 mickey 103: <ol type=a>
1.58 mickey 104: <li><a href=http://ftp.parisc-linux.org/docs/PCXL_ers.ps>PA7100LC CPU ERS</a>
105: <li><a href=http://ftp.parisc-linux.org/docs/pcxl2_ers.ps>PA7300LC CPU ERS</a>
1.38 mickey 106: </ol>
107: <li><b>Processor Dependent Code/I/O Dependent Code Interface</b><br> <small>(selected chapters from "PA-RISC I/O Architecture Specification")</small>
108: <ol type=a>
1.58 mickey 109: <li><a href=http://ftp.parisc-linux.org/docs/pdc32.pdf>PDC 1.1</a>
110: <li><a href=http://ftp.parisc-linux.org/docs/iodc.pdf>IODC 1.1</a>
111: <li><a href=http://ftp.parisc-linux.org/docs/ver_nums.pdf>Version and Identification Number Allocation</a>
112: <li><a href=http://ftp.parisc-linux.org/docs/data_formats.pdf>Memory Data Formats 2.0</a>
113: <li><a href=http://ftp.parisc-linux.org/docs/pdc.pdf>PDC Procedures 2.0</a>
114: <li><a href=http://ftp.parisc-linux.org/docs/pdce.pdf>PDC Entry Points 2.0</a>
115: <li><a href=http://ftp.parisc-linux.org/docs/os_interface.pdf>OS Interface 2.0</a>
1.38 mickey 116: </ol>
1.39 miod 117: <li><b>Bus controllers/bridges/adaptors</b>
1.38 mickey 118: <ol type=a>
1.60 ! mickey 119: <li><a href=http://ftp.parisc-linux.org/docs/hardball_ers.pdf>ASP</a>
1.58 mickey 120: <li><a href=http://ftp.parisc-linux.org/docs/lasi_ers.ps>LASI Core Bus Adapter (including lan, scsi, serial, lpt controllers)</a>
121: <li><a href=http://ftp.parisc-linux.org/docs/dino_ers.ps>Dino PCI bridge</a>,
122: and <a href=http://ftp.parisc-linux.org/docs/Dino_3_1_Errata.html>Errata</a>
123: <li><a href=http://ftp.parisc-linux.org/docs/elroy_ers.ps>Elroy ERS (Edited for Open Source)</a>
124: <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>
1.38 mickey 125: </ol>
1.58 mickey 126: <li><a href=http://ftp.parisc-linux.org/docs/sti.pdf>Stinger graphics</a>
127: <li><a href=http://www.lsilogic.com/techlib/techdocs/old_storage/770_2_0.pdf>NCR 53C700/710/720 SCSI I/O Processors</a>
1.40 mickey 128: <small>(the doc is actually for 770, which is claimed as compatible)</small>
129: <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
1.38 mickey 130: </ol>
1.60 ! mickey 131: Or see more information at <a href=http://www.openpa.net/>OpenPA</a>.
1.38 mickey 132:
1.15 mickey 133: <h4>Build cross-tools:</h4>
1.18 mickey 134: <p>
1.45 miod 135: Currently, the in-tree binutils can't be used to generate cross-tools.
136: You should use a 2.7 source tree to build them, 2.8 and later will not
137: work.
138: <p>
1.15 mickey 139: <pre>
140: cd /usr/src
141: sudo make TARGET=hppa cross-tools
1.18 mickey 142: </pre>
143: </p>
144: <p>
145: cross-tools build process may fail in the libc stage, consider that's
146: all right, since libc support is not finished yet.
147: </p>
1.43 jufi 148: <a name="boot_lif"></a>
1.15 mickey 149: <h4>Build boot.lif file using cross-tools:</h4>
1.18 mickey 150: <p>
151: <pre>
1.15 mickey 152: cd /sys/arch/hppa/stand
153: make obj
1.26 todd 154: set cross=(/usr/cross/hppa/usr/bin)
1.32 mickey 155: make MACHINE=hppa MACHINE_ARCH=hppa \
1.56 mickey 156: "AS=$cross/as" "CC=$cross/cc" "CXX=$cross/c++" \
1.26 todd 157: "CPP=$cross/cpp" "LD=$cross/ld" \
158: "AR=$cross/ar" "STRIP=$cross/strip" \
159: "LORDER=$cross/lorder" "NM=$cross/nm" \
160: "RANLIB=$cross/ranlib" "SIZE=$cross/size"
1.15 mickey 161: </pre>
1.18 mickey 162: </p>
163: <p>
1.47 mickey 164: One will have a <a href=http://hppa.lucifier.net/#boot_lif><em>boot.lif</em></a>
1.28 todd 165: file to boot then in the obj-directory.
1.18 mickey 166: That image may include <em>diskless</em> kernel image if one was available
1.32 mickey 167: in the <em>sys/arch/hppa/compile/SHEPHERD_PIE/bsd</em>.
1.18 mickey 168: <br>
1.44 jufi 169: Kernel cross-build process is similar to the one for boot, consult
1.28 todd 170: <a href=http://www.openbsd.org/cgi-bin/man.cgi?query=config&apropos=0&sektion=0
171: &manpath=OpenBSD+Current&format=html>config(8)</a>
172: and
173: <a href=http://www.openbsd.org/cgi-bin/man.cgi?query=options&apropos=0&sektion=0&manpath=OpenBSD+Current&format=html>options(8)</a>
174: for kernel build options and configuration.
1.15 mickey 175: </p>
176: <h4>Recent development:</h4>
1.14 mickey 177: <pre>
1.34 mickey 178: BOOT_ADMIN> boot lan isl
1.14 mickey 179:
180: Booting
181:
182:
183:
184:
185:
1.51 mickey 186: >> OpenBSD/hppa BOOT 0.6
1.34 mickey 187: boot> boot bsd
1.51 mickey 188: booting lf0a:/bsd: fstat1695744+65536+225280 [168316+57624]=0x22e298 start=0x12
189: 000
1.54 mickey 190: [ bsd ELF symbol table not valid: bad magic ]
191: [ using 231900 bytes of bsd a.out symbol table ]
1.14 mickey 192: Copyright (c) 1982, 1986, 1989, 1991, 1993
193: The Regents of the University of California. All rights reserved.
1.51 mickey 194: Copyright (c) 1995-2001 OpenBSD. All right Reserved. http://www.OpenBSD.org
1.14 mickey 195:
1.54 mickey 196: OpenBSD 3.0-current (SHEPHERD_PIE) #334: Sat Dec 1 23:28:05 EST 2001
1.51 mickey 197: mickey@lucifier.net:/sys/arch/hppa/compile/SHEPHERD_PIE
198: HP9000/712/100 (King Gecko) PA-RISC 1.1
1.54 mickey 199: real mem = 67108864 (73728 reserved for PROM, 50331648 used by OpenBSD)
200: avail mem = 55824384
201: using 1630 buffers containing 6676480 bytes of memory
1.28 todd 202: mainbus0 (root) [flex fff80000]
1.18 mickey 203: pdc0 at mainbus0
1.54 mickey 204: mem0 at mainbus0 offset ffbf000: viper rev 0, ctrl 40400102<eisa_prf> >> 4040010b
205: cpu0 at mainbus0 offset ffbe000 irq 31: PCXL rev 6, lev 1, cat A, 80 MHz clock
1.32 mickey 206: cpu0: shadows, 128K/128K D/I cache, 64 shared TLB, 8 shared BTLB
1.54 mickey 207: lasi1 at mainbus0 offset 500000: rev 3.0
208: gsc1 at lasi1
209: com1 at gsc1 offset 5000
210: ie1 at gsc1 offset 7000: LASI/i82596CA v1.0, address 08:00:09:87:b5:76
211: lasi0 at mainbus0 offset 100000 irq 28: rev 3.0
1.28 todd 212: gsc0 at lasi0
1.54 mickey 213: "Optional RJ-16" at gsc0 (type a, sv 8d) offset 4060 not configured
214: "Optional RJ-16" at gsc0 (type a, sv 8d) offset 4040 not configured
215: "PS/2 port" at gsc0 (type a, sv 84) offset 8100 not configured
216: "PS/2 port" at gsc0 (type a, sv 84) offset 8000 not configured
217: "floppy controller" at gsc0 (type a, sv 83) offset a000 not configured
218: harmony0 at gsc0 offset 4000 irq 13
219: "teleshare tty0" at harmony0 not configured
220: "teleshare tty1" at harmony0 not configured
221: lpt0 at gsc0 offset 2000 irq 7
222: com0 at gsc0 offset 5000 irq 5
223: ie0 at gsc0 offset 7000 irq 8: LASI/i82596CA v1.0, address 08:00:09:87:b5:75
224: "Core SCSI" at gsc0 (type a, sv 82) offset 6000 not configured
225: sti0 at mainbus0 offset 8000000: HPA208LC1280 rev 8.04;7
1.51 mickey 226: sti0: 2048x1024 frame buffer, 1280x1024x8 display, offset 0x0
1.31 mickey 227: sti0: 8x16 font type 1, 16 bpc, charset 0-255
1.51 mickey 228: wsdisplay0 at sti0
1.14 mickey 229:
1.18 mickey 230: </pre>
1.3 fn 231: </p>
1.18 mickey 232: <small>info was typed from screen, sorry for typos</small>
1.3 fn 233: <hr>
1.47 mickey 234: In order to use the <a href=http://hppa.lucifier.net/#boot_lif>boot.lif</a> files
1.28 todd 235: you must prepare your server and instruct your machine to boot off the network:
1.45 miod 236: <ol>
237: <li>Server setup</li><br>
238: <ul>
1.48 mickey 239: <li> For older machines (705, 7[1235]0, old 715)
240: <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>
1.45 miod 241: <ul>
242: <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>
243: contains a single line per machine you entered to boot from the server.
244: Each line contains the ethernet address of the client hppa machine, and
245: the filename to be loaded from the tftp server. For example:
1.28 todd 246: <pre>
247: 8:0:9:70:c4:11 <a href=#boot_lif>boot.lif</a> # 9000/720
248: 8:0:9:19:fb:a0 <a href=#boot_lif>boot.lif</a> # 9000/725
249: </pre>
1.45 miod 250: </li>
251: </ul>
252: </li>
1.48 mickey 253: <li>Recent machines (712, new 715, 725) won't look for rbootd at all, but require a
1.51 mickey 254: <b>bootp</b> setup.<br>
1.45 miod 255: <ul>
256: <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:
257: <pre>
258: # 9000/715
1.49 miod 259: boron:\
1.45 miod 260: ha=0800095f5a6e:\
261: bf=boot.lif:\
262: hd=:\
263: ht=ethernet:\
1.52 miod 264: ip=10.0.1.143:\
1.53 mickey 265: rp=/usr/local/exports/boron/root:\
1.45 miod 266: sm=255.255.255.0:\
267: td=/tftpboot:
268: </pre>
269: </li>
1.48 mickey 270: <li>
271: Create directory /tftpboot and put the <a href=#boot_lif>boot.lif</a> in it.<br>
272: </li>
273: <li>
274: Write an entry for your hppa in the <b>/etc/ethers</b> file:<br>
275: <pre>
1.49 miod 276: 08:00:09:5f:5a:6e boron
1.48 mickey 277: </pre>
278: </li>
279: <li>
1.49 miod 280: Write an entry for 'boron' in the <b>/etc/hosts</b> file:<br>
1.48 mickey 281: <pre>
1.52 miod 282: 10.0.1.143 boron
1.48 mickey 283: </pre>
284: </li>
285: <li>
1.49 miod 286: Create directory /usr/local/exports/boron/root and put <a href=http://hppa.lucifier.net/root/dev/MAKEDEV>/dev/MAKEDEV</a>,
1.48 mickey 287: <a href=http://hppa.lucifier.net/root/sbin/init>/sbin/init</a>, <a href=http://hppa.lucifier.net/root/bin/ksh>/bin/ksh</a>
288: in their relative locations.
289: </li>
290: <li>
291: Write an entry in <b>/etc/exports</b> so the root directory gets exported to the client:
292: <pre>
1.49 miod 293: /usr/local/exports/boron/root boron
1.48 mickey 294: </pre>
295: </li>
296: <li>
297: 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>
1.51 mickey 298: and <a href=http://www.openbsd.org/cgi-bin/man.cgi?query=tftpd&apropos=0&sektion=8&manpath=OpenBSD+Current&format=html>tftpd</a>
299: 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>.
300:
301: </li>
1.48 mickey 302: <li>
303: 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>
1.51 mickey 304: , <a href=http://www.openbsd.org/cgi-bin/man.cgi?query=rarpd&apropos=0&sektion=8&manpath=OpenBSD+Current&format=html>rarpd</a>
305:
1.48 mickey 306: and <a href=http://www.openbsd.org/cgi-bin/man.cgi?query=portmap&apropos=0&sektion=8&manpath=OpenBSD+Current&format=html>portmap</a>
307: in <a
308: 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>.
309: </li>
310: </ul>
1.45 miod 311: </li>
312: <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>
313: </ul>
314: <li>Client Network Boot</li><br>
315: <ul>
316: <li>BOOT_ADMIN<br>
1.59 mickey 317: In order to get to the BOOT_ADMIN prompt, you must hit <em><esc></em> as the
1.28 todd 318: machine is coming up. Once it probes bootable devices, type 'a' for
319: the 'BOOT_ADMIN' prompt.
320: </li>
321: <li>network boot command <br>
322: Once at the 'BOOT_ADMIN' prompt, type:
323: <pre>
324: BOOT_ADMIN> boot lan isl
325: </pre>
326: ... and you are on your way to booting boot.lif!
327: </li>
1.45 miod 328: </ul>
1.28 todd 329: </ol>
330: <hr>
1.9 pauls 331: <a href=plat.html><img height=24 width=24 src=back.gif border=0 alt=OpenBSD></a>
1.1 deraadt 332: <a href=mailto:www@openbsd.org>www@openbsd.org</a>
1.3 fn 333: <br>
1.60 ! mickey 334: <small>$OpenBSD: hppa.html,v 1.59 2002/03/13 19:23:33 mickey Exp $</small>
1.3 fn 335:
336: </body>
337: </html>