[OpenBIOS] Booting SunOS from OpenBIOS

Mark Cave-Ayland mark.cave-ayland at ilande.co.uk
Tue Mar 26 11:02:08 CET 2013


On 26/03/13 08:33, Artyom Tarasenko wrote:

> Hi Mark,
>
> [adding the OpenBIOS mailing list, hoping to get some more feedback]
>
> by the way, currently Jean Michel has to use the proprietary OBP.
> There seems to be a problem with loading the SunOS 4.x under OpenBIOS:
>
> $  sparc-softmmu/qemu-system-sparc -L pc-bios -nographic -hda disk-solaris-1.1.2
>
> Configuration device id QEMU version 1 machine id 32
> CPUs: 1 x FMI,MB86904
> UUID: 00000000-0000-0000-0000-000000000000
> Welcome to OpenBIOS v1.0 built on Aug 19 2012 13:36
>    Type 'help' for detailed information
> Trying disk...
> Not a bootable ELF image
> Loading a.out image...
> Loaded 7680 bytes
> entry point is 0x4000
> bootpath: /iommu/sbus/espdma/esp/sd at 0,0
>
> Jumping to entry point 00004000 for type 00000005...
> switching to new context:
> Unhandled Exception 0x00000007
> PC = 0x00401a04 NPC = 0x00401a08
> Stopping execution
>
>
> Is the OpenBIOS guess correct and SunOS 4.x actually does have an a.out loader?

Yes, that looks good to me. From memory the Solaris 8 bootloader is an 
a.out bootloader based at 0x4000, and the kernel loads at 0x400000 so 
you're definitely getting into the kernel image.

The quick and easy way to get a rough idea as to where the failure lies 
is to copy the kernel ELF image from your Solaris disk image and run 
objdump on it to find out the name of the function where the exception 
occurs based upon the exception address.

If you're already in the kernel panic() function, then use a 
sparc-linux-gdb attached to QEMU with a breakpoint to get a stack 
backtrace at the exception point, which again should give you an idea of 
where the issue is based upon the function names.


HTH,

Mark.



More information about the OpenBIOS mailing list