[OpenBIOS] Solaris 9: failed boot with strange device names
Mark Cave-Ayland
mark.cave-ayland at siriusit.co.uk
Sun Aug 15 21:35:50 CEST 2010
Tarl Neustaedter wrote:
> There is an interpose missing in there...
>
> Ah, yes. The scsidisk.fth does an open-package of "disk-label" (found in
> obp/pkg/boot/sunlabel.fth of the open-sourced openboot), which in turn
> does an interpose of "ufs-file-system". The interpose means that
> subsequent calls to open and any other functions get directed to the
> interposing package, which can only get to the scsidisk package by
> $call-parent.
So it was a hard-coded case within /packages/disk-label after all - that
explains why I couldn't figure out what was going on. Sigh.
I added a quick bit of code in packages/sun-parts.c to detect this case,
but was surprised to see that it wasn't getting triggered. Some further
investigation shows that device strings of the form "disk,|foo|" are
being rejected by the Forth in open-dev, i.e.
s" disk" open-dev u. -> returns a valid ihandle
s" disk,|foo|" open-dev u. -> returns false
I'm guessing that we should simply just split on a ',' in the same way
as we would do with a ':' if it were present, i.e. and pass the
remainder of the string as the package argument?
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