OpenBSD/hp300 Frequently Asked Questions

Table of Contents

Boot ROM Information

Serial Port Information

Other sources of information

H.1 - Can OpenBSD/hp300 boot across the network?

HP 9000/300-series workstations support network booting with Boot ROM Revision B or later. (This includes any Boot ROM with a numeric revision). The HP Boot ROM uses the HP Remote Maintenance Protocol to download the boot code from the server. The server must run a daemon capable of responding to HP RMP boot requests, rbootd(8).

To set up your OpenBSD/hp300 workstation, follow the diskless(8) man page.

H.2 - What is the situation with X11 on the hp300?

We currently have the complete X11R6 clients and server from X.org. It is not possible to run HP-UX X11R5 server under emulation anymore.

H.3 - What does 'UNEXPECTED USE OF FFFFFFC4' mean?

This is the output of one of a set of temporary, informational only, exception handlers installed by the Boot ROM before an OS has been loaded. The address printed varies depending on the type of exception. The most likely cause here is trying to boot a kernel that is incompatible with the hardware. You will get something like this, for example, if you attempt to boot an HP-UX 7.0 or earlier kernel on a 68040 machine (which requires at least 7.05). If you're going to install OpenBSD, you probably don't need to worry about this message, though it is possible (but unlikely) that it indicates hardware trouble or a corrupt bootloader.

Boot ROM Information

H.4 - What commands does the HP Boot ROM understand?

All the early hp300 Boot ROMs are very primitive and only allow a few simple operations. You can only interact with it after it is first powered on -- if you reboot the machine, it will ignore anything you type and start loading the same OS you previously booted.

At any time after it recognizes the keyboard, while it is doing its self test or searching for a bootable system, you can hit reset to return it to a cold-boot configuration. On HIL keyboards, this is <control>-<shift>-break for non-AT layouts (where break is the key in the upper left, where escape is on sane keyboards), and <control>-<shift>-pause for AT layouts. There is no equivalent over serial terminal -- you'll need to power-cycle your machine.

After it beeps (i.e. recognizes the HIL keyboard), press <return> twice to get the list of bootable devices. To perform simple hardware checks, hit <control>-C before it starts booting an OS. You can then type T to perform an extended self test or L to perform the extended self test infinitely until it finds a fatal error or L is typed again.

The newer HP Boot ROM, present on Series 400 machines and some of the later 300s (345, 375, 380, 382, 385) is capable of a little bit more. To select which device to boot from, press <return> once, after it beeps twice (i.e. recognizes the HIL keyboard). To get to a configuration and test menu, press:

   C <return>
This will allow you to configure interrupt levels, select codes, and serial console properties. You can also hit <control>-C to get to a menu of extended tests with several fancy options.

For more information, Michael Wolfson has scanned in parts of the HP Apollo 9000 Series 400 HP-UX Owner's Guide, which has some good information on this topic.

H.5 - What order does the Boot ROM use to search for bootable devices?

From the Configuration Reference Manual, 98561-90020:

Revision A Boot ROM Specifications

The boot ROM can load a ROM system or a file from a LIF or SRM "SYSTEM" type file having a name of the form SYSa, where "a" is typically an ASCII letter, but may be any character legal in a file name.

ROM systems are assigned a single letter ID (only "B", for BASIC, is presently supported on Series 300).

All system files found are assigned an ID of the form "nna", where "a" is either the same letter "a" mentioned above (if an ASCII letter), or "Z" (if not an ASCII letter). "nn" is a number of the form " 1" to "99" denoting the order of occurrence of systems which result in the same ID letter "a". The range of system IDs is " 1A" to "99Z".

The boot ROM loads the first system found unless characters (other than that system's ID) are typed on the boot control keyboard (see below). The search order used by the boot ROM is:

Revision B and later also support booting over the network, using a 98643 card or built-in ethernet. For older systems, the best choice is to make your boot drive on HPIB at address 0. Remember, you'll need to capitalize the letters.

Newer Boot ROM Search Order

The newer machines (Models 345, 375, 380, 382, 385, and Series 400) have a different boot order. From HP Apollo 9000 Series 400 HP-UX Owner's Guide, A1630-90006:

The Scan for Systems selection searches mass storage devices for an operating system to boot. The first mass storage device found with an HP-UX Compatible operating system on it boots. Mass storage devices are searched by the priority shown in this table.

Priority Level Device Select Code Bus Address Unit Number
1 SCSI 0-31 7-5 0
2 HP-IB 0-31 7-5 0
3 SRM 14 N/A N/A
4 LAN 21 N/A N/A
5 Bubble RAM 30 N/A N/A
7 SCSI 0-31 4-0 0
8 HP-IB 0-31 4-0 0
9 SRM Other than 14 N/A N/A
10 LAN Other than 21 N/A N/A
11 Bubble RAM Other than 30 N/A N/A
12 EEPROM Other than 0 N/A 0

So, for these newer systems, your best bet is to make your boot drive a SCSI drive at address 6 (7 is the system controller on the motherboard).

It is also possible to configure the Boot ROM to default to a specific device from the configuration menu.

H.6 - Switching your Series 400 machine from Domain to "HP-UX Compatible Boot Mode"

This step is necessary, since OpenBSD can only boot a Series 400 machine when it's set up in "HP-UX Compatible Boot Mode". If, when you power on your machine, it does not present a menu as follows, then you need to follow the instructions below:
Copyright 1990,                         
Hewlett-Packard Company.                
All Rights Reserved.                    
BOOTROM  Series 400  Rev. 1.1           
MD12 REV 1.2 1990/08/07.14:27:08        
MC68030 Processor                       
MC68882 Coprocessor                     
Configuration EEPROM                    
Utility Chip at 41                      
First, you'll need either a Domain keyboard or a HIL keyboard. Now, put your machine into "service mode". For a 4XXs, there's a toggle switch on the back of the machine (near the top). For a 4XXt or 4XXdl, there's a green button on the front, behind the silly door. For a 425e, there's a toggle switch on the back of the machine (in the middle). Once you're in "service mode", the other green LED will light up. Reset the machine. You may then need to hit return to get the Domain boot prompt. At that prompt, you can type H to get a list of available commands. You need to type the following things to convert to HP-UX mode:
This is the full procedure captured from a serial console.

Be sure to turn off "service mode" when you're done. I found it prevented me from selecting which device I wanted to boot from. Moreover, on the 425e, the service switch selects the OpenBSD console.

H.7 - Where could I get a more recent Boot ROM for my 400s or 400t?

Michael Wolfson has images of the HP 425/433 Boot ROM in HP-UX mode. This is necessary when upgrading a 400 to a 425/433.

See The fatmac HP9000/300 guide for instructions on upgrading.

Serial Port Information

H.8 - What are the different types of serial ports, and how do I access them?

device name location device file max speed hardware handshaking FIFO serial console comments
dca0 built-in /dev/tty0 19200 no no DIP switches
non-null cable
for 318, 319, 320, 330, 340, 350, 360, 362, 370
located on Human/System Interface board
dca0 built-in /dev/tty0 38400 yes yes config Boot ROM for 345, 375, 380, 382, 385, 400 Series (except 425e)
located on motherboard
dcaN 98644A DIO-I card /dev/ttyN 19200 yes no DIP switches hardware handshaking only for transmit
dcaN 98626A DIO-I card /dev/ttyN 19200 yes no DIP switches hardware handshaking only for transmit
dclN 98628A DIO-I card /dev/ttyN 19200 yes yes
256 bytes
jumper weird centronics connector goes to normal db25
built-in /dev/ttya0
19200 no no no for 400 Series machines (except 425e), requires break-out cable
built-in /dev/ttya0
19200 no no yes for 425e only, serial console on apci0
dcmN 98642A DIO-I card /dev/tty0[0-3] 19200 yes yes
128/16 bytes
DIP switches Only port 0 has flow control
Only port 1 does console
Uses RJ-11 jacks
98638 DIO-II card /dev/tty0[0-3]
19200 yes yes
127/16 bytes
no Appears to kernel as two 98642 boards

H.9 - Setting up a serial console on a 98561, 98562, 98626, 98628, 98642, or 98644

Turn off power to your system before removing any cards. Remove the card with the serial interface.

Now, reinsert the card and power on your machine. All console messages will be sent over the serial port at 9600 bps, 8 bits, no parity, 1 stop bit. Theoretically, you should be using a null-modem cable, but I found that for my 98562, I needed a non-null modem cable.

H.10 - Setting up serial console on a Model 340

Turn off power to your system
There are four DIP switches visible through the rear panel
Flip the third switch from the left to one
Turn on your system

Now, all console messages will be sent over the serial port at 9600 bps, 8 bits, no parity, 1 stop bit.

H.11 - Setting up serial console on a Series 400 machine or a 345,375, 380, 382, or 385

Wait until your system beeps twice (this is to let you know it's recognized the keyboard). Type C<return> and wait until the configuration menu shows up. Then type in the following set of commands:

(If your machine does not have an HP-IB controller, replace 5 with 4 in the instructions above)

This is the full procedure captured from a serial console on my 400s. It may be slightly different for the 300 series machines (345, 375, 380, 382, 385).

Note that the 425e does not support serial console setup in the ROM. However, OpenBSD will use the first serial port (on apci0) as the console if the service/normal switch on the back is set to the service position; no other setup is necessary.

Now, your machine will reset and then send all console messages over the serial port at 9600 bps, 8 bits, no parity, 1 stop bit. Use a null-modem cable.

If you want to convert from serial console to monitor/keyboard console, follow the same procedure, except type L instead of R.

You may also temporarily override this setting by typing L<return> or R<return> after your system beeps twice and recognizes the keyboard. This will work even if you have a Domain keyboard.

Since the serial console will be mapped to /dev/console, you do not need to add an entry in /etc/ttys. You just need to verify that the /etc/ttys line for /dev/console is marked as being on. You probably want to change the terminal type from vt220 to vt100 or whatever terminal type you will be connecting to it.

H.12 - How do I build the cable to get at the hidden serial ports on a Series 400 machine?

Build the funky three-way splitter cable. Otherwise, a normal DB25 serial cable will work fine if you only want one serial port.
Note that a splitter is not needed for the 425e, on which the three serial ports are already broken out on the back panel.

This table gives the pinout for the serial connector on the rear panel.
HP Apollo 9000 Series 400 Domain/OS Owner's Guide (1990)
HP Order No. A1630-90005

Pin No. Signal Pin No. Signal
1 Ground 14 SIO2_RTS
4 SIO1_RTS 17 Spare
7 Inline resistor 20 SIO1_DTR
(not supported
in Domain/OS)
(not supported
in Domain/OS)
11 Spare 24 Spare
13 SIO2_RXD    

$OpenBSD: hp300faq.html,v 1.21 2015/07/02 05:49:05 bentley Exp $