[OpenBIOS] QEMU / OpenBIOS booting SunOS 4.1.3 / 4.1.4

Parag Patel parag at codegen.com
Tue Jun 6 04:02:12 CEST 2006

Stefan Reinauer wrote:
>Welcome to OpenBIOS v1.0RC1 built on Jun 5 2006 15:07
>  Type 'help' for detailed information
>[sparc] Kernel already loaded
>OBP version 3, revision 2.25 (plugin rev 2)
>Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
>    The NetBSD Foundation, Inc.  All rights reserved.
>Copyright (c) 1982, 1986, 1989, 1991, 1993
>    The Regents of the University of California.  All rights reserved.
>NetBSD 3.0 (GENERIC) #0: Mon Dec 19 04:01:27 UTC 2005
>        builds at b3.netbsd.org:/home/builds/ab/netbsd-3-0-RELEASE/sparc/200512182024Z-ob
>total memory = 127 MB
>avail memory = 120 MB
>data fault: pc=0xf02a4f3c addr=0x7ff000
>panic: kernel fault

It's been quite a while since I last played with NetBSD and OF.  The
last was with a PowerPC board.  As I recall, NetBSD makes heavy use of
the client-interface callbacks to get some important info.

One of my tricks with SmartFirmware was to load the entire NetBSD
kernel (builtin ELF loader), turn on tracing, then try to boot.  Any
callbacks etc would nicely print out as they were executed, so it was a
lot easier to see at which point it was failing.

I also added dprintfs in the NBSD routines that performed the various
calls to OF.  The usual debugging stuff.  'Course this requires having a
cross-compile environment handy to build custom NBSD kernels to test. 

Booting Solaris was a whole new level of pain.  A lot of Sun's
intermediate boot-loaders made heinous use of Forth and required all
sorts of Sun-specific hacks to get them to run.

>Booting from the NetBSD 3.0 CD (sparccd-3.0.iso) I got an exception,
>since the a.out header shows some weird values:
>Welcome to OpenBIOS v1.0RC1 built on Jun 5 2006 15:07
>  Type 'help' for detailed information
>[sparc] Booting file 'cdrom' with parameters '<NULL>'
>Loading a.out image...
>  N_TXTADDR: 0x00002000 (0x30800007 bytes)
>  N_TXTOFF : 0x00000020 (0x00000200)
>  N_DATADDR: 0x30802007 (0 bytes)
>Loaded 8388615(0x30800007) bytes
>entry point is 0x4000
>Jumping to entry point...
>Unhandled Exception 0x00000002
>PC = 0x00000000 NPC = 0x00000004
>Stopping execution

This sure looks like it's trying to jump through a NULL pointer.
 /__)_ _ _ _    There are three things I always forget.  Names, faces --
/   (// (/(/    the third I can't remember.  -- Italo Svevo
 /__)_ _ _ _    Iron Law of Distribution:  Them that has, gets.
/   (// (/(/

More information about the OpenBIOS mailing list