Documentation/Platforms/SPARC: Difference between revisions

From QEMU
Line 136: Line 136:
|sun4u
|sun4u
|HelenOS 0.7.0
|HelenOS 0.7.0
|HelenOS-0.7.0-sparc64-ultra.iso
|[http://www.helenos.org/releases/HelenOS-0.7.0-sparc64-ultra.iso HelenOS-0.7.0-sparc64-ultra.iso]
|Working
|Working
| Requires -nographic -prom-env boot-args="console=devices/\hw\pci0\00:03.0\com1\a" to boot.
| Requires -nographic -prom-env boot-args="console=devices/\hw\pci0\00:03.0\com1\a" to boot.
Line 151: Line 151:
|Working
|Working
| Requires -nographic in order to boot
| Requires -nographic in order to boot
|-
|sun4u
|Debian Stretch
|[https://people.debian.org/~glaubitz/debian-cd/ debian-9.0-sparc64-NETINST-1.iso]
|Working
| Requires -nographic in order to boot
|-
|sun4v
|OpenSPARC T1 Solaris 10 image
|[http://download.oracle.com/technetwork/systems/opensparc/OpenSPARCT1_Arch.1.5.tar.bz2 OpenSPARCT1_Arch.1.5.tar.bz2]
|Working
| Tested with the command line:
<blockquote>qemu-system-sparc64 -M niagara -L /path-to/S10image/ -nographic -m 256 -drive if=pflash,readonly=on,file=/S10image/disk.s10hw2</blockquote>
|-
|sun4v
|HelenOS 0.7.0
|[http://www.helenos.org/releases/HelenOS-0.7.0-sparc64-niagara.iso HelenOS-0.7.0-sparc64-niagara.iso]
|Working
| Tested with the command line:
<blockquote>qemu-system-sparc64 -M niagara -m 256 -L /usr/local/opensparc/image/ -drive file=hdisk.img,index=0,media=disk,format=raw -drive if=pflash,readonly=on,file=HelenOS-0.7.0-sparc64-niagara.iso -nographic</blockquote>
|}
|}



Revision as of 15:59, 18 April 2017

Welcome to the SPARC homepage. This page contains news and resources for users looking to emulate sun4m or sun4u systems under QEMU.

Status

The table below gives the status of the SPARC machines available in QEMU and is correct as of QEMU 2.8:

Machine Status
sun4m Complete, supported
sun4u Beta, supported
sun4v Incomplete, unsupported
niagara Complete, supported

Installation

Debian/RedHat packages

Users should install the qemu-system-sparc package in order the use the SPARC system emulators provided by their distribution.

Building from source

By default QEMU will build both the qemu-system-sparc and qemu-system-sparc64 system emulators unless QEMU has been configured with a specific target list. If you are looking to build just the SPARC system emulators from source yourself, then pass the options --target-list="sparc-softmmu sparc64-softmmu" to QEMU's configure script.

Compatibility

The tables below show the results of testing various SPARC and SPARC64 guests in QEMU in the latest release (2.9):

SPARC32:

Machine OS Image Status Notes
sun4m OpenADK (modern Linux kernel) http://www.openadk.org Working -
sun4m Solaris 1.1.2 ? Working -
sun4m Solaris 8 32-bit ? Working -
sun4m NextSTEP 3.3 ? Partially working Tends to hang during disk access, possible ESP emulation bug or interrupt delay required. Some success has been reported using a non-SMP host kernel suggesting a buggy interrupt race in the NS guest drivers.
sun4m NetBSD 7.99.1 (7.0 pre-release) NetBSD-7.99.1-sparc.iso Working Works fine, although intermittent ESP DMA errors appear on the console.
sun4m NetBSD 6.1.3 NetBSD-6.1.3-sparc.iso Working -
sun4m OpenBSD 5.2 install52.iso Working -
sun4m Debian Etch debian-40r4a-sparc-netinst.iso Working -
sun4m Debian Sarge debian-31r1a-sparc-businesscard.iso Working Requires -vga cg3 for graphics (default TCX adapter not supported)

SPARC64:

Machine OS Image Status Notes
sun4u OpenADK (modern Linux kernel) http://www.openadk.org Working -
sun4u NetBSD 7.0 NetBSD-7.0-sparc64.iso Working -
sun4u Milax 0.3.2 (OpenSolaris) milax032sparc.iso Broken Requires -nographic to boot. Fails in later part of kernel initialisation.
sun4u OpenBSD 5.5 install55.iso Working Requires -nographic to boot. Due to hard-coded device tree paths for the cmd646-ide device, the root device must be entered on boot.
sun4u HelenOS 0.7.0 HelenOS-0.7.0-sparc64-ultra.iso Working Requires -nographic -prom-env boot-args="console=devices/\hw\pci0\00:03.0\com1\a" to boot.
sun4u FreeBSD 10.3 FreeBSD-10.3-RELEASE-sparc64-disc1.iso Working Requires -nographic in order to boot. Due to a restriction in reading the psycho device properties, kernels < 10.3 panic on boot. A fix for this has been merged into both 10.3 and the up-and-coming 11.0 release.
sun4u Debian Wheezy debian-7.8.0-sparc-netinst.iso Working Requires -nographic in order to boot
sun4u Debian Stretch debian-9.0-sparc64-NETINST-1.iso Working Requires -nographic in order to boot
sun4v OpenSPARC T1 Solaris 10 image OpenSPARCT1_Arch.1.5.tar.bz2 Working Tested with the command line:

qemu-system-sparc64 -M niagara -L /path-to/S10image/ -nographic -m 256 -drive if=pflash,readonly=on,file=/S10image/disk.s10hw2

sun4v HelenOS 0.7.0 HelenOS-0.7.0-sparc64-niagara.iso Working Tested with the command line:

qemu-system-sparc64 -M niagara -m 256 -L /usr/local/opensparc/image/ -drive file=hdisk.img,index=0,media=disk,format=raw -drive if=pflash,readonly=on,file=HelenOS-0.7.0-sparc64-niagara.iso -nographic

Timeline

SPARC emulation is gradually improving over time and newer versions of QEMU will run significantly better than older ones. For more detailed information, check your QEMU version against the table below:

Version Machine Feature
2.9 niagara Complete rewrite from Artyom now able to boot OpenSPARC reference image (see the docs at https://qemu.weilnetz.de/doc/qemu-doc.html#Sparc64-System-emulator for more info)
sun4m Fix for SS-20 regression with original PROM bug.
2.8 * More TCG improvements from Richard.
2.7 sun4m Updated ldstub fix for latest TCG improvements and updated OpenBIOS boot path fix Solaris 9 boot regression
2.6 sun4m Fix for ldstub instruction resolves several 32-bit Solaris bugs (MUTEX_HELD hang, libC error, Java WebStart segfault)
2.6 sun4u FreeBSD 10.3+ can now run under qemu-system-sparc64 in -nographic mode
2.5 sun4u Fixes in OpenBIOS fix EBus enumeration under FreeBSD sparc64 in -nographic mode
2.5 * Significantly improved TCG performance for software TLB systems (including SPARC)
2.3 sun4m Fix Solaris 1.1.2 boot in OpenBIOS and multi-user mode in Solaris 9
sun4u Fix m48t59 MMIO access to allow guests to read the NVRAM clock correctly
2.2 sun4u Add ability to boot NetBSD sparc64 and OpenBSD sparc64 in -nographic mode
2.1 sun4u Fixes for APB PCI bridge and added IOMMU implementation
2.0 sun4m Add cg3 framebuffer implementation primarily to support older Solaris versions
1.7 sun4m Add TCX FCode ROM for framebuffer (allows TCX adapter to boot Sun PROM in graphics mode)

Useful links

This page details how to set up a basic Debian SPARC image in QEMU.

Artyom has contributed several patches to improve SPARC emulation under QEMU and has lot of related information, particularly for users trying to run Solaris images under emulation. Some of the content is a little out of date (OpenBIOS should work with practically all Solaris versions now) but the FAQ is very helpful indeed.

Torbjörn uses QEMU to build and test the GNU GMP libraries on various platforms, and while the information is a little out of date, there are some useful configurations listed on the page.

This page contains a description of how to take an SS-20 Solaris image from a physical machine and run it under QEMU.

Olivier Danet has implemented a sun4m machine in an FPGA which is capable of booting many SPARC32 OSs, and as a consequence has provided several patches to fix bugs in SPARC32 emulation (and also OpenBIOS)

OpenBIOS is the Open Firmware implementation used by QEMU for SPARC32/SPARC64 (and indeed also for PPC)

Neozeed's fun with virtualisation blog has several useful articles on booting various OSs (including SPARC) under QEMU.

Pictures

Solaris installer overview Solaris terminal program

Solaris installer progress Solaris desktop

Contact

Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>