The very first experience has shown that bootblk loads ufsboot successfully, but then it hangs. I'm feeling myself getting back few months in the past. Back then I was debugging pretty much similar routines in the bootblk, but the main job was done by Mitch Bradley. I sort of hoped I skipped the necessity to learn the gory details of the UFS filesystem. Ok, back to school. ;-) . My very first long shot:
$ strings sun4m/ufsboot
['] find-device catch if 2drop true else current-device device-end then swap l!
Trying to find out whether this sentence works I found out that OpenBIOS doesn't support input lines longer than 80 characters! It would be interesting to find out whether it's just a console limitation, or the API too. If it's an API limitation it may be exactly the bug that prevents Solaris from booting.
0 > " /openprom" ['] find-device ok
3 > . . . -29a594 9 -264cec ok
- "ok" is not a prompt, but a response. I don't think it's important.
- It operates with signed hexadecimals. This looks pretty weird. Here comes the same question again: is this just a console representation, or another API bug.
Gonna check it with OpenBIOS developers.