[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