[OpenBIOS] Qemu/OpenBIOS 64-bit
Mark Cave-Ayland
mark.cave-ayland at ilande.co.uk
Sat Dec 28 11:16:02 CET 2013
On 28/12/13 00:54, Tarl Neustaedter wrote:
> On 2013-Dec-27, 19:08 , Nick Couchman wrote:
>> [root at qemu-openbios-dev ~]# /opt/qemu/bin/qemu-system-sparc64 -cdrom
>> /mnt/iso/Solaris/sol-10-u9-ga-sparc-dvd.iso -boot d -nographic -m 2048
>> OpenBIOS for Sparc64
>> Configuration device id QEMU version 1 machine id 0
>> kernel cmdline
>> CPUs: 1 x SUNW,UltraSPARC-IIi
>> UUID: 00000000-0000-0000-0000-000000000000
>> Welcome to OpenBIOS v1.1 built on Dec 27 2013 23:00
>> Type 'help' for detailed information
>> Trying cdrom:f...
>> Not a bootable ELF image
>> Not a bootable a.out image
>>
>> Loading FCode image...
>> Loaded 7420 bytes
>> entry point is 0x4000
>> Ignoring failed claim for va 1000000 memsz a8cb6!
>> Ignoring failed claim for va 1402000 memsz 4b4a8!
>> Ignoring failed claim for va 1800000 memsz 61b48!
>
> Those are a problem. My recollection is that it's loading Solaris
> (genunix) in at 100.0000. Failing those claims means something is busted
> with the memory model.
(Disclaimer: it's probably been at least a year since I last looked at
this in detail)
I seem to remember that the memory regions in question are remapped to
two different physical addresses by the bootloader at two different
points during boot; the remapping is allowed to happen but OFMEM drops a
warning onto the serial console as at the time I wasn't sure if this was
a valid thing to do or not.
>> Jumping to entry point 00000000010071d8 for type 0000000000000001...
>> switching to new context: entry point 0x10071d8 stack 0x00000000ffe86a01
>> warning:interpret: exception -13 caught
>
> That's a problem. No idea what an exception -13 means. I'm surprised it
> was able to continue after that.
From memory I think this is the chunk of Forth code in the Solaris
kernel that sets up something on HME hardware (which QEMU currently does
not emulate).
>> SunOS Release 5.10 Version Generic_142909-17 64-bit
>> Copyright (c) 1983, 2010, Oracle and/or its affiliates. All rights
>> reserved.
>> spacex@:interpret: exception -13 caught
>
> spacex@ is an forth operation to do a 64-bit load from an arbitrary
> address space. Most of them are used to access physical memory, for
> things like manipulating MMUs, although there are a few for dealing with
> some of the IO devices. This sounds like somewhere QEMUs machine model
> doesn't directly match what Solaris 5.10 thinks it should.
I'm fairly sure this error occurs because spacex@ isn't yet implemented
in OpenBIOS. It wouldn't be too difficult to add it though.
>> could not find debugger-vocabulary-hook>threads:interpret: exception
>> -13 caught
>> (Can't load tod module) EXIT
>
> That looks like Solaris is trying to panic, and something had trashed
> the forth vocabulary. Debugger-vocabulary-hook is a defer word in
> openboot which is invoked on enter-forth, I suspect the >threads is from
> Solaris' forthdebug module.
Again I think the fault here is that the
debugger-vocabulary-hook>threads defer doesn't exist in OpenBIOS at the
moment. But also the RTC hardware isn't currently mapped correctly in
QEMU - it's currently mapped as ioport rather than MMIO IIRC. Artyom had
some patches to fix this but I never managed to apply them (and the
corresponding QEMU changes).
ATB,
Mark.
More information about the OpenBIOS
mailing list