On Thu, Oct 14, 2010 at 10:46 PM, Artyom Tarasenko <atar4qemu(a)gmail.com> wrote:
On Thu, Oct 14, 2010 at 10:32 PM, Mark Cave-Ayland
The attached patch changes OFMEM so that instead of allocating new space
within the Forth dictionary every time the /memory and /virtual-memory
available/translations nodes are updated, we simply change the property to
point directly to a static buffer. This has the effect of saving substantial
amounts of memory during OpenSolaris 10 boot (in fact the final dictionary
size after boot is now < 256K once again).
Blue/Andreas: please could you take a look at this patch and make sure it
doesn't break anything in your SPARC64/PPC tests?
On the plus side, with this patch applied Milax gets to the end of its
natural boot without crashing giving the following output:
OpenBIOS for Sparc64
Configuration device id QEMU version 1 machine id 0
CPUs: 1 x SUNW,UltraSPARC-IIi
Welcome to OpenBIOS v1.0 built on Oct 14 2010 20:18
Type 'help' for detailed information
Not a bootable ELF image
Not a bootable a.out image
Loading FCode image...
Loaded 7084 bytes
entry point is 0x4000
Ignoring failed claim for va 1000000 memsz bf34e!
Ignoring failed claim for va 1402000 memsz 303b3!
Ignoring failed claim for va 1800000 memsz 60a30!
Jumping to entry point 00000000010071d8 for type 0000000000000001...
switching to new context: entry point 0x10071d8 stack 0x00000000ffe06b49
warning:interpret: exception -13 caught
SunOS Release 5.11 Version MilaX_0.3.2 64-bit
Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
spacex@:interpret: exception -13 caught
kdbg-words:interpret: exception -13 caught
cb-r/w:interpret: exception -13 caught
(Can't load tod module) EXIT
Does anyone know what the tod modules does? Is it
Time Of Day (i.e. we are
missing some kind of hardware clock emulation?)
I think so. Actually m48t59 is emulated in sparc32, but not connected
in case of sparc64.
The referencing comment in the opensolaris source:
* Appropriate tod module will be dynamically selected while booting
* based on finding a device tree node with a "device_type" property value
* of "tod". If such a node describing tod is not found, for backward
* compatibility, a node with a "name" property value of "eeprom" and
* "model" property value of "mk48t59" will be used. Failing to find a
* node matching either of the above criteria will result in no tod module
* being selected; this will cause the boot process to halt
On the real U30 machine:
ok cd /pci@1f,4000/ebus@1/eeprom@14,0
reg 00000014 00000000 00002000
solaris/sparc under qemu blog: http://tyom.blogspot.com/