SunOS 4.1.4
Sun Microsystems used the name SunOS (Wikipedia) for its BSD (Wikipedia) based UNIX operating system starting with the Motorola 68000 powered Sun-1 (Wikipedia) launched in 1982 through the Sun-2, Sun-3 and Sun-4 based workstations and servers up to the final SunOS release (SunOS 4.1.4) in 1998. With the release of the System V release 4 based Solaris 2.x in 1992, SunOS versions from 4.1.1 were re-branded as Solaris 1.x while retaining their BSD flavor.
Since SunOS 4 and Solaris 2+ are a bit different I'll look at them separately, to see how they handle and report on running under QEMU.
By default the 32-bit SPARC system emulation in QEMU creates a Sun SPARCstation 5 system (Wikipedia):
- Buses: Mbus & Sbus
- CPU: microSPARC II
- RAM: 128 MB (max. 256 MB)
- SCSI controller: Sun esp (Emulex SCSI Processor)
- Network controller: Sun LANCE (based on AMD Lance)
- Graphics: Sun TCX
So using the commands from the generic and SunOS system information posts let's see what's what.
uname
Operating system name, version and system architecture.
sun4qemu# uname -a SunOS sun4qemu 4.1.4 2 sun4m
So we have SunOS version 4.1.4 release 2 on an Mbus Sun-4 (SPARC) system named "sun4qemu". That confirms the system to be as expected.
showrev
Alternative view of operating system release information giving a little more detail.
# showrev -a *************** showrev version 1.15 ***************** * Hostname: "sun4qemu" * Hostid: "80123456" * Kernel Arch: "sun4m" * Application Arch: "sun4" * Kernel Revision: 4.1.4 (GENERIC) #2: Fri Oct 14 11:09:47 PDT 1994 * Release: 4.1.4 * OpenWindows: OW * SunView: /usr/lib/libsuntool :0.54 /usr/lib/libsunwindow :0.55 /usr/lib/libpixrect :2.14 /usr/lib/libdl :1.0 /usr/lib/libc :1.9 * Patch: No patch information found. *******************************************************
A little bit more meat here with a more readable version of the operating system information. This also tells us a bit about the available windowing systems in this case the OpenWindows and SunView versions.
Worth noting that the SunView windowing system was dropped from Solaris in Solaris 2.3, so earlier releases are required to run SunView based applications.
devinfo
A report of device information using a tree structure to show relationships.
sun4qemu# devinfo Node 'SUNW,SPARCstation-5', unit #0 (no driver) Node 'packages', unit #0 (no driver) Node 'options', unit #0 (no driver) Node 'aliases', unit #0 (no driver) Node 'openprom', unit #0 (no driver) Node 'iommu', unit #0 Node 'sbus', unit #0 Node 'espdma', unit #0 Node 'esp', unit #0 Node 'sd', unit #3 Node 'SUNW,bpp', unit #0 (no driver) Node 'ledma', unit #0 Node 'le', unit #0 Node 'SUNW,CS4231', unit #0 Node 'power-management', unit #0 (no driver) Node 'SUNW,tcx', unit #0 Node 'obio', unit #0 Node 'zs', unit #0 Node 'zs', unit #1 Node 'eeprom', unit #0 (no driver) Node 'slavioconfig', unit #0 (no driver) Node 'auxio', unit #0 (no driver) Node 'counter', unit #0 (no driver) Node 'interrupt', unit #0 (no driver) Node 'power', unit #0 (no driver) Node 'SUNW,fdtwo', unit #0 Node 'memory', unit #0 (no driver) Node 'virtual-memory', unit #0 (no driver) Node 'FMI,MB86904', unit #0 (no driver)
The tree structure reflects the relationships between the various devices:
- System: SUNW,SPARCstation-5
- SCSI controller: esp
- Parallel port controller: SUNW,bpp
- Ethernet device: le
- Audio device: SUNW,CS4231
- Display controller: SUNW,tcx
- Floppy controller: SUNW,fdtwo
- CPU: FMI,MB86904
I'm guessing that some of the "no driver" messages are due to miss-matches between the hardware described by the system and the emulation of those devices, of course most are likely cases where a driver is not required.
In any case the device tree looks to match up with our expectations for the emulated system.
dmesg
System log messages
sun4qemu# dmesg May 14 13:04 VAC ENABLED SunOS Release 4.1.4 (GENERIC) #2: Fri Oct 14 11:09:47 PDT 1994 Copyright (c) 1983-1993, Sun Microsystems, Inc. cpu = SUNW,SPARCstation-5 mod0 = FMI,MB86904 (mid = 0) mem = 261836K (0xffb3000) avail mem = 253947904 entering uniprocessor mode Ethernet address = 52:54:0:12:34:56 espdma0 at SBus slot 5 0x8400000 esp0 at SBus slot 5 0x8800000 pri 4 (onboard) sd3: non-CCS device found at target 0 lun 0 on esp0 sd3 at esp0 target 0 lun 0 sd3: <SUN2.1G cyl 2733 alt 2 hd 19 sec 80> Warning! System Clock freq out of range! ledma0 at SBus slot 5 0x8400010 le0 at SBus slot 5 0x8c00000 pri 6 (onboard) SUNW,CS42310 at SBus slot 4 0xc000000 pri 9 (sbus level 5) SUNW,tcx0 at SBus slot 3 0x800000 and SBus slot 3 0x2000000 and SBus slot 3 0x4000000 and SBus slot 3 0x6000000 and SBus slot 3 0xa000000 and SBus slot 3 0xc000000 and SBus slot 3 0xe000000 and SBus slot 3 0x701000 and SBus slot 3 0x200000 and SBus slot 3 0x300000 and SBus slot 3 0x0 and SBus slot 3 0x240000 and SBus slot 3 0x280000 pri 9 (sbus level 5) tcx0: revision 0, screen 1024x768 zs0 at SBus slot 5 0x1100000 pri 12 (onboard) zs1 at SBus slot 5 0x1000000 pri 12 (onboard) SUNW,fdtwo0 at SBus slot 5 0x1400000 pri 11 (onboard) fdintr: nobody sleeping root on sd3a fstype 4.2 swap on sd3b fstype spec size 98800K dump on sd3b fstype spec size 98788K le0: AUI Ethernet
Lost of stuff in here including the reporting of the system type and the various devices. There is also a warning "Warning! System Clock freq out of range!" which is likely related to the emulation being a bit faster than real SPARCstation 5 hardware. Otherwise this looks consistent with the expected hardware, so it looks to be going great.
Sun OpenBoot PROM
The system firmware (OpenBoot) also provides some information about the system. Here a binary dump of the firmware from a real SPARCstation 5 is used rather than the QEMU supplied OpenBIOS firmware. While OpenBIOS supports the show-devs command the other commands are hardware specific and are not implemented on OpenBIOS.
Note the 'ok' is the firmware prompt.
show-devs
Show devices on the system.
ok show-devs /FMI,MB86904 /virtual-memory@0,0 /memory@0,0 /obio /iommu@0,10000000 /openprom /aliases /options /packages /obio/SUNW,fdtwo@0,400000 /obio/power@0,910000 /obio/interrupt@0,e00000 /obio/counter@0,d00000 /obio/auxio@0,900000 /obio/slavioconfig@0,800000 /obio/eeprom@0,200000 /obio/zs@0,0 /obio/zs@0,100000 /iommu@0,10000000/sbus@0,10001000 /iommu@0,10000000/sbus@0,10001000/SUNW,tcx@3,800000 /iommu@0,10000000/sbus@0,10001000/power-management@4,a000000 /iommu@0,10000000/sbus@0,10001000/SUNW,CS4231@4,c000000 /iommu@0,10000000/sbus@0,10001000/ledma@5,8400010 /iommu@0,10000000/sbus@0,10001000/SUNW,bpp@5,c800000 /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000 /iommu@0,10000000/sbus@0,10001000/ledma@5,8400010/le@5,8c00000 /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000 /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/st /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd /packages/obp-tftp /packages/deblocker /packages/disk-label
Notable items are:
- CPU: FMI,MB86904
- floppy controller: SUNW,fdtwo
- display device: SUNW,tcx
- audio device: SUNW,CS4231
- ethernet device and interface: ledma
- bidirectional parallel port device: SUNW,bpp
- SCSI controller, interface & disks: espdma
As for the SunOS devinfo command, the tree structure represents the relationships between the devices and the system buses.
cpu-info
CPU information
ok cpu-info CPU FMI,MB86904 Rev. 2.3 : 529.0 Mhz SBus (Divide By 2) : 764.5 Mhz DRAM Refresh Setting : 7 DRAM Speed Setting : 0
The emulation is showing its performance here, the real SPARCstation 5 didn't ship with processor or Sbus showing these kinds of speeds. According the various internet sources the Sbus speed should be clocked at between 16 and 25 MHz, which may explain the "Warning! System Clock freq out of range!" message reported in the dmesg output. The warning doesn't appear when using OpenBIOS suggesting that it handles these figures slightly differently, most likely by changing the Sbus divider to keep it within the expected frequency range.
module-info
Processor module information.
ok module-info CPU FMI,MB86904 Rev. 2.3 : 529.0 Mhz SBus (Divide By 2) : 764.5 Mhz
Similar to cpu-info, the details of the processor and Sbus are reported. For the SPARCstation 5 there is only one processor so the information is a bit redundant with that reported by cpu-info. For systems with multiple processor modules (e.g. SPARCstation 10 or SPARCstation 20), a bit more information about the bus speeds and the installed modules would be reported.
Thoughts
The 32-bit SPARC based SPARCstation 5 emulation in QEMU appears to be pretty robust and gives better performance than the real hardware. It even supports the graphic system allowing the windowing systems to be used with an emulated keyboard and mouse.
Apparently things aren't quite as good with the other 32-bit SPARC systems emulated, with issues appearing when attempting to use graphics or multi-processor support on those systems. However single processor headless systems appear to be fine, and the issues are being worked on.
Sources
- Reference Manual Pages for SunOS 4.1.2 [PDF]
- SPARC-HOWTO
- OpenBoot™ 4.x Command Reference Manual [PDF]
- Sun OpenBoot PROM Quick Reference Card [PDF]
QEMU Command
For those interested, the emulated system, using Sun OpenBoot, was started using the command:
$ qemu-system-sparc -machine 'SS-5' -bios ss5.bin -m size=256M -drive file=hda_ss5_sunos.qcow2,bus=0,unit=0,media=disk -net nic -net user -name 'SunOS 4.1.4 on SPARCstation 5'
Once the OpenBoot firmware has started the system on disk was started with:
ok boot disk0
Since the target operating system is SunOS using the Sun OpenBoot firmware maximises compatibility. The QEMU supplied OpenBIOS can be used instead.
No comments:
Post a Comment