Mitch Bradley found a bug in the Sparc CPU emulation. I gave him access to my qemu session and he stepped through the code. Is sort of shame, I haven't done it myself, as I thought about it 2 weeks ago.
This bug is actually much more heavy than the previous one. While the previous one affected only the hand crafted assembly code, this one should hit the compiled code as well: the handling of carry flag in subxcc instruction is wrong. And, yes, it's RISC architecture, so this instruction is also used for comparison...
I'm really astonished that Linux/sparc is working under qemu since years. Of course Linux may be just more robust, but it also may mean that gcc doesn't use some sparcv8 instructions, and is therefore inefficient.
Showing posts with label bootblk. Show all posts
Showing posts with label bootblk. Show all posts
Sunday, October 11, 2009
Saturday, September 5, 2009
Yes, I did it! OBP is functional under qemu!
Wrote another hack, and now I can use OBP under qemu! Woo-hoo! All in all it took just 7 weekends. :)
The bad news is that.... It doesn't do much better than OpenBIOS. I can boot Linux, and NetBSD (this one is more complex, as OBP checks disklabel, and NetBSD miniroots don't have it), but booting Solaris 9 gives...
...the very error message as under OpenBIOS:
bootblk: can't find the boot program
I still think it is a progress: OBP has a debugger, while OpenBIOS doesn't. If nothing else helps I can step through the boot loader.
And anyway the effort wasn't useless: I found one bug in CPU, and three in scsi layer.
The bad news is that.... It doesn't do much better than OpenBIOS. I can boot Linux, and NetBSD (this one is more complex, as OBP checks disklabel, and NetBSD miniroots don't have it), but booting Solaris 9 gives...
...the very error message as under OpenBIOS:
bootblk: can't find the boot program
I still think it is a progress: OBP has a debugger, while OpenBIOS doesn't. If nothing else helps I can step through the boot loader.
And anyway the effort wasn't useless: I found one bug in CPU, and three in scsi layer.
Subscribe to:
Comments (Atom)