[OpenBIOS] Sun OBP bugs in 1.0RC1

Peter pjcreath+openbios at gmail.com
Tue Feb 27 16:52:38 CET 2007

On 2/15/07, Peter <pjcreath+openbios at gmail.com> wrote:
> 5) Error message:
> "Unhandled Exception 0x00000009
> PC = 0xf0138b20 NPC = 0xf0138b24
> Stopping execution"

Bug: This is a combination of a bug in the SunOS kernel (that never
occurs in real hardware) and in qemu.  SunOS is trying to printf() an
error message before mapping a required device (_utimers).  This error
message doesn't occur on real hardware, so this access exception
doesn't occur on a real SparcStation.  The error message is due to an
invalid machine ID specified by qemu in the nvram.  Qemu is setting
the machine ID to 0x80, which is not recognized by SunOS.  SunOS
recognizes only 0x71 and 0x72.  According to idprom.h (quoted in part
at http://www.sunmanagers.org/archives/1993/0050.html), these
correspond to:

#define IDM_SUN4M_690	 0x71	/* SPARCsystem 600 series */
#define IDM_SUN4M_50	 0x72	/* Campus 2 */

Fix: Change qemu-0.9.0/hw/sun4m.c:154 to set the machine ID to 0x72
(the value of a SparcStation 10) instead of 0x80.  It may be
preferable to make qemu more configurable in this regard, but this
will do for now.  I've forwarded this information to the qemu-devel
mailing list.

There's now another subsequent access exception that I still need to chase down.

More information about the OpenBIOS mailing list