2010/4/5 Mark Cave-Ayland mark.cave-ayland@siriusit.co.uk:
Mark Cave-Ayland wrote:
Unmodified Solaris 2.6 doesn't get this far, I guess due to the 80 chars limitation. Will check the patched version later.
Hmmmm this looks more promising. If you compile with DEBUG_CIF enabled in libopenbios/client.c and try again then you can see all the calls into OpenBIOS, and hence the device nodes and properties that are being accessed. This will probably tell you why you are getting the null path error. It's interesting to note that type 0x5 is an a.out as opposed to an ELF binary.
Actually, I was totally wrong. SPARC32 uses the romvec interface, so instead have a look at compiling with CONFIG_DEBUG_OBP set in arch/sparc32/romvec.c to see what the client is trying to do.
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
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.