On Fri, Dec 11, 2009 at 12:22 AM, Nick Couchman Nick.Couchman@seakr.com wrote:
Ide emulation issue is not on qemu list yet. From what I see here it is not really a driver implementation fault because driver callback gets bogus pointer. Probably this is caused by some clash with low memory location where device i/o space is mapped.
Pardon my ignorance, but are you saying that Qemu is throwing a bogus pointer back to OpenBIOS, or that there's something wrong with OpenBIOS that's requesting the wrong memory location? So is it worth opening a thread on the qemu-devel list, or is everyone who needs to work the problem already on this list?
I think it's both parties, in that openbios calls cause qemu code to crash, which should not happen. Still the crash is in emulation code, and that is to be fixed eventually. What I'm sure about at the moment is that we can work around qemu issues in this area by moving most of pci address space out of 32bit memory. Related change to qemu is already proposed on the qemu-devel list quite a while ago, and most of the required changes are now implemented, like 64bit wide addressing for mapped pci memory space - that is now possible. What's left is the actual remapping change, that would need more time to get into code base, as current proposal may be seen as functional but conceptually wrong workaround. That said I'd be happy to see a fix for this cmd646 crash issue in qemu, and will look into tracing this crash to root cause.