[OpenBIOS] Solaris 9: failed boot with strange device names
Mark Cave-Ayland
mark.cave-ayland at siriusit.co.uk
Wed Aug 25 19:06:25 CEST 2010
Mark Cave-Ayland wrote:
> Does anyone know what this second CPU MMU node is used for? Should the
> /chosen "mmu" property point to /virtual-memory instead? Or should this
> node be an exact copy of /virtual-memory?
So I moved all of the MMU methods under /virtual-memory and changed the
/chosen "mmu" property to point there, and now both Milax OpenSolaris
and Solaris 9 get further:
Solaris 9:
finddevice("cdrom:f") = 0xffe2f9e0
getproplen(0xffe2f9e0, "device_type") = 0x00000006
getproplen(0xffe2f9e0, "device_type") = 0x00000006
getprop(0xffe2f9e0, "device_type", 0x00133878, 6) = service getprop:
possible argument error (0 1)
6
0x00133878 62 6c 6f 63 6b 00 __ __ __ __ __ __ __ __ __ __ block.
open("cdrom:f") = 0x00000000
getproplen(0xffe1dd98, "stdout") = 0x00000004
getproplen(0xffe1dd98, "stdout") = 0x00000004
getprop(0xffe1dd98, "stdout", 0x001376f8, 4) = service getprop: possible
argument error (0 1)
4
0x001376f8 ff e8 83 b0 __ __ __ __ __ __ __ __ __ __ __ __ ��.�
Cannot open cdrom:f
panic - boot: ufsboot: cannot determine filesystem type of root device.
exit()
EXIT
-1 >
- Looks like the CIF open of "cdrom:f" fails which is strange because it
works fine from the Forth prompt.
Milax:
interpret 'h# 70000000000 constant kmem64-base h# 70000252000 constant
kmem64-end h# ffffffffffc00000 constant kmem64-pagemask h#
e0000000064016b6 constant kmem64-template : kmem64-tte ( addr cnum --
false | tte-data true ) if (
addr ) drop false exit then ( false ) dup
kmem64-base kmem64-end within if ( addr ) kmem64-pagemask and
( addr' ) kmem64-base -
( addr' ) kmem64-template + handle_calls return:
Unhandled Exception 0x0000070000242000
PC = 0x000000000101eb3c NPC = 0x000000000101eb40
Stopping execution
- Now this is very interesting. Looks like we are missing a Forth pgmap@
function which according to the OF spec does this:
pgmap@ ( virt -- pme )
The page map entry pme corresponds to the virtual address virt.
I think that this requires some kind of Forth wrapper around one of the
OFMEM functions to pull out a TTE?
ATB,
Mark.
--
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063
Sirius Labs: http://www.siriusit.co.uk/labs
More information about the OpenBIOS
mailing list