PA-RISC Emulation QEMU
Overview
QEMU is an open source computer emulation and virtualization software, first released in 2003 by Fabrice Bellard. It supports many different computer systems and includes support for many RISC architectures besides x86. PA-RISC emulation has been included in QEMU since 2018.
QEMU emulates a complete computer in software without the need for specific virtualization hardware. With QEMU, a full HP Visualize B160L and C3700 workstation can be emulated to run PA-RISC operating systems like HP-UX Unix and compatible applications.
Systems support
QEMU supports emulating two types of PA-RISC workstations, both 32-bit and 64-bit, with necessary devices and I/O.
- HP Visualize B160L workstation with 32-bit PA-7300LC processor
- HP Visualize C3700 workstation with 64-bit PA-8700 processor (from QEMU 8.2, but still unstable)
Hardware support
Most of the major onboard hardware of the currently two workstations is supported by QEMU with some drivers and specific devices still missing.
Processors
Supported are 32-bit PA-RISC 1.1 PA-7300LC processors and 64-bit PA-RISC PA-8700 processors. Although both emulated machines are in reality single-CPU, QEMU allows both to emulate up to 16 virtual processors running in parallel.
QEMU currently allows to configure up to 3840 MB of memory. 32-bit PA-RISC operating systems will only allow 3584 MB. Supporting more memory for 64-bit operating systems is planned for the future.
Buses and chipsets
Onboard PCI, GSC and Runway buses and bus bridges are supported. Some HP chipsets are supported: LASI (partially), Dino, U2/Uturn, Astro and Elroy.
Other chipsets (ASP, Cell, zx1) and buses (ISA, EISA, VME) are not supported.
Networking
Most physical PA-RISC machines shipped with a DEC 21142/43 Tulip network card, which is supported by QEMU. Other PCI network cards like RealTek RTL8129/8139 Fast-Ethernet or Intel Gigabit Ethernet (e1000) can be emulated if the operating system (HP-UX or Linux) support it.
Unsupported are all other types of HP network interface like the 10 MB Ethernet (82596DX and i82C596CA on ASP and LAS), FDDI on the 735/755 and others.
Storage
Storage is supported on LSI NCR 53C95A Ultra-Wide controllers.
Currently unsupported are earlier SIOP NCR 53C700 and NCR 53C710 devices for Narrow-SCSI integrated into LASI or on older HP 9000 workstations.
Graphics
Text-mode (STI) and graphics (X11) are supported on Artist graphics adapter. No other adapters are supported. X11 graphics for CDE are working.
Human I/O and multimedia
Input/output is supported via PS/2 interfaces. USB is only partially supported.
Harmony
16-bit audio, found on many PA-RISC workstations, is not supported.
OS support
Some of the major PA-RISC operating systems and releases work under QEMU emulation of HP B160L and C3700 PA-RISC workstations.
- HP-UX Unix from HP
- Linux on PA-RISC
- NetBSD/hppa from version 8.0
- Partially: MkLinux
QEMU emulates PDC (the BIOS
), I/O routines and hardware so the emulation appears as a complete system to the operating system.
OpenPA tested a few operating systems in late 2024.
Releases
The following QEMU versions have been available for PA-RISC.
- QEMU 9.2.0 (December 2024): Stable version for 32-bit and 64-bit PA-RISC
- QEMU 8.2 (September 2023): Support for 64-bit C3700
- QEMU 7.1.0 (August 2022): Added many PA-RISC enhancements to QEMU
- QEMU 2.12 (2018): First release to support PA-RISC (Helge Deller, Richard Henderson)
QEMU is available as source and included as binary in various operating systems package managers for installing third party software:
- Debian: Included in APT,
apt-get install qemu-system
- Source: For compiling QEMU by tarballs or from git
- MacOS with brew:
brew install qemu
- Fedora (dnf), Gentoo (emerge), RHEL (yum), SUSE (zypper)
- Windows binaries (Win32 and 64-bit, MSYS2)
Configuration
Example of QEMU with PA-RISC configuration, running HP-UX on a HP Visualize B160L workstation. This assumes QEMU has been installed in version 9.2.0.
Starting QEMU
Start QEMU with a minimal configuration and HP-UX boot CD-ROM ISOs:
# qemu-system-hppa -drive file=hdd.img -serial mon:stdio \ -cdrom iso/hpux.iso -boot menu=on -boot order=d -m 256 -machine B160L -smp cpus=1
This will start up QEMU to the PDC BIOS
(SeaBIOS emulation of PDC):
SeaBIOS PA-RISC 32-bit Firmware Version 17 (QEMU 9.2.0) Duplex Console IO Dependent Code (IODC) revision 17 ------------------------------------------------------------------------------ (c) Copyright 2017-2024 Helge Deller and SeaBIOS developers. ------------------------------------------------------------------------------ Processor Speed State Coprocessor State Cache Size --------- -------- --------------------- ----------------- ---------- 0 250 MHz Active Functional 0 KB Emulated machine: HP B160L (32-bit PA1.1), 32-bit PDC, OS32 Available memory: 256 MB Good memory required: 16 MB Primary boot path: FWSCSI.0.0 Alternate boot path: FWSCSI.2.0 Console path: SERIAL_1.9600.8.none Keyboard path: SERIAL_1.9600.8.none Available boot devices: FWSCSI.0.0 : lsi 00:00.0 0:0 Drive QEMU QEMU HARDDISK 2.5+ FWSCSI.2.0 : DVD/CD [lsi 00:00.0 2:0 Drive QEMU QEMU CD-ROM 2.5+] ------- Main Menu ------------------------------------------------------------- Command Description ------- ----------- BOot [PRI|ALT|<path>] Boot from specified path HElp [<menu>|<command>] Display help for menu or command RESET Restart the system EXIT Exit QEMU emulation ------- Main Menu: Enter command >
From the PDC, we proceed to the HP-UX installer:
Main Menu: Enter command > BOOT ALTERNATE Interact with IPL (Y, N, or Cancel)?> N
To later boot the installed HP-UX on the drive image, remove -boot order=d
and boot the primary drive in PDC (FWSCSI.0.0):
Main Menu: Enter command > BOOT PRIMARY
Settings
Some of most important basic settings, as used above in Starting QEMU for installing operating systems.
Drives
-drive file=hdd.img
sets the first SCSI harddrive in QEMU to an HD image, which can be created by # qemu-img create hdd.img 2G
-cdrom iso/hpux.iso
sets the SCSI CD-ROM to an ISO image for booting
Hardware
-m 256
sets the main memory RAM to 256 MB
-machine B160L
configures a HP Visualize B160L workstation
-smp cpus=1
sets a single CPU
Boot and console
-boot order=d
sets first boot order to the CD
-boot menu=on
asks for the PDC boot menu
-serial mon:stdio
standard I/O and monitor to console
-serial telnet:0.0.0.0:8001,server,nowait -monitor stdio -nographic
for serial console redirected to local telnet
Tested operating systems
The following systems have been tested with QEMU version 9.2.0 as of late 2024:
- HP-UX 10.20 from May 2000 boots and installs, X11 and CDE work fine
on B160L with 512 MB RAM and 2 GB disk - HP-UX 11.00 from June 2002 and March 2004 boots and installs, X11 is spotty
using 2 GB RAM and 4 GB disk - HP-UX 10.20 from December 1999 boots and installs
- HP-UX 11.11 (11i) from December 2004 boot hangs on B160L and crashes on C3700
hangs while detecting I/O devices - HP-UX 9.07 or 9.05: boot ISOs but no progress after that
possibly missing QEMU drivers - OpenBSD/hppa 7.6 boots
install76.iso
, installs but crashes on reboot of HD - NeXTSTEP 3.3 boots but the installer crashes
with 128 MB memory; possibly missing QEMU drivers - Using a C3700 as emulated machine was spotty
These are admittedly quick test results and problems might be configuration issues or actual bugs and limitations in QEMU drivers. More information might be found on official QEMU pages but OpenPA will pursue more tests.
Documentation
- QEMU for PA-RISC overview, Linux kernel.org (August 2024)
- Download QEMU, QEMU (2024)
- SeaBIOS PDC (BIOS) on PA-RISC, Helge Deller github (2024)
- Dellerweb QEMU, Helge Deller, n.d.
- QEMU on PA-RISC, Helge Deller github (2024)
- QEMU Features/HPPA, QEMU Wiki, 2020