I have a pretty old version of the Solaris Nevada code that I tried to boot, and I got a different error: open isn't unique. I'll post actual output here in a little while.
I'm pretty new to Qemu and OpenBIOS - what's the best way to go about debugging this? GDB? Qemu's built-in debugging?
Thanks, Nick
On 2009/11/13 at 11:38, Tarl Neustaedter Tarl.Neustaedter@Sun.COM wrote:
Nick Couchman wrote:
So, forgive the ignorant question, but does this look to be an OpenBIOS
issue or a Qemu issue?
Until you figure out why the seek is failing, you won't know.
Minor comment about "seek"; this is in the forth engine file support, and "seek" actually translates to scsi (or atapi) reads. It will pre-load about 8k of data for future reads, so when debugging this, if you put a breakpoint in your HBA code where scsi commands get issued, you may be able to figure out what mistake it's making.
-------- This e-mail may contain confidential and privileged material for the sole use of the intended recipient. If this email is not intended for you, or you are not responsible for the delivery of this message to the intended recipient, please note that this message may contain SEAKR Engineering (SEAKR) Privileged/Proprietary Information. In such a case, you are strictly prohibited from downloading, photocopying, distributing or otherwise using this message, its contents or attachments in any way. If you have received this message in error, please notify us immediately by replying to this e-mail and delete the message from your mailbox. Information contained in this message that does not relate to the business of SEAKR is neither endorsed by nor attributable to SEAKR.
On Sat, Nov 14, 2009 at 5:35 PM, Nick Couchman Nick.Couchman@seakr.com wrote:
I have a pretty old version of the Solaris Nevada code that I tried to boot, and I got a different error: open isn't unique. I'll post actual output here in a little while.
I'm pretty new to Qemu and OpenBIOS - what's the best way to go about debugging this? GDB? Qemu's built-in debugging?
Those are too low level, but a Forth debugger should be more useful. There is no debugger in OpenBIOS yet, but we'll have one very soon.
Nick Couchman wrote:
I have a pretty old version of the Solaris Nevada code that I tried to boot, and I got a different error: open isn't unique. I'll post actual output here in a little while.
Hmm. That's interesting. I wonder if we're getting a conflict between packages in openbios and what the boot blocks are creating. You might find it easier to debug the Solaris Nevada version, depending on just how old it is. Among other things, under OpenSolaris you can find the code for the boot blocks (which changed drastically from Solaris 10 to Nevada), so you aren't quite struggling in the dark.
Also, the Nevada version of the bootblocks responds to the "-H" argument, indicating that after loading the filesystem into /packages, it returns to the OK prompt rather than immediately trying to do the boot itself. That lets you set up breakpoints in the filesystem code before executing them.
I'm pretty new to Qemu and OpenBIOS - what's the best way to go about debugging this? GDB? Qemu's built-in debugging?
Probably best to wait for the forth debugger that is being discussed. Without breakpoints, you need to basically patch in breakpoints, which is doable but time-consuming.
Tarl Neustaedter wrote:
[...] Among other things, under OpenSolaris you can find the code for the boot blocks (which changed drastically from Solaris 10 to Nevada), so you aren't quite struggling in the dark.
Specifically, once you create yourself an account under OpenSolaris, the bootblocks can be found under:
http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/psm/stand/boot...
The top level is under common/boot.fth (note that it ends by calling do-boot which it just defined). For a CDrom, the filesystem code it defines is probably under hsfs/common/hsfs.fth
Good luck!