[OpenBIOS] OpenSolaris starts to live on SPARC64
Mark Cave-Ayland
mark.cave-ayland at siriusit.co.uk
Tue Apr 6 10:50:45 CEST 2010
Artyom Tarasenko wrote:
> ok, 2.6 confirms that there is a problem with 80 characters limit:
> ...
>
> obp_devread(fd 0xffd9e740, buf 0xe110, nbytes 8192) = 8192
> obp_devseek(fd 0xffd9e740, hi 0, lo 15065088) = 0
> obp_devread(fd 0xffd9e740, buf 0xe110, nbytes 8192) = 8192
> obp_devclose(0xffd9e740) = 1
> obp_fortheval_v2( ['] find-device catch if 2drop true else
> current-device device-end then swap l!)
> Unhandled Exception 0x00000007
> PC = 0xffd05580 NPC = 0xffd05024
> Stopping execution
Definitely time for you to build a cross-gdb :) I notice a comment in
obp_fortheval_v2 that reads:
// for now, move something to the stack so we
// don't get a stack underrun.
//
// FIXME: find out why solaris doesnt put its stuff on the stack
//
fword("0");
fword("0");
So perhaps the OpenBIOS marshalling code for romvec doesn't handle
passing Forth stack parameters correctly? Try searching for Sun romvec
documentation to see what you can find about how parameters are passed
to/from the BIOS.
> 2.5.1 :
>
> obp_devread(fd 0xffd9eb94, buf 0xf00a0778, nbytes 8192) = 8192
> obp_devseek(fd 0xffd9eb94, hi 0, lo 275275776) = 0
> obp_devread(fd 0xffd9eb94, buf 0xf00a2778, nbytes 8192) = 8192
> obp_devseek(fd 0xffd9eb94, hi 0, lo 275283968) = 0
> obp_devread(fd 0xffd9eb94, buf 0xf00a4778, nbytes 8192) = 8192
> obp_devseek(fd 0xffd9eb94, hi 0, lo 275292160) = 0
> obp_devread(fd 0xffd9eb94, buf 0xf00a6778, nbytes 8192) = 8192
> obp_devseek(fd 0xffd9eb94, hi 0, lo 275316736) = 0
> obp_devread(fd 0xffd9eb94, buf 0xf00a8778, nbytes 8192) = 8192
> obp_devseek(fd 0xffd9eb94, hi 0, lo 275324928) = 0
> obp_devread(fd 0xffd9eb94, buf 0xf00aa778, nbytes 8192) = 8192
> obp_devseek(fd 0xffd9eb94, hi 0, lo 275333120) = 0
> obp_devread(fd 0xffd9eb94, buf 0xf00ac778, nbytes 8192) = 8192
>
> And then it just hangs. I don't see the "krtld: error during initial
> load/link phase" message.
Again, you'll need a cross-gdb to check this. At least you can then
break into OpenBIOS and find out at which point you're getting stuck in
a loop.
HTH,
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