On 25/01/13 20:54, Artyom Tarasenko wrote:
Thanks for doing this. So I've had a play with PearPC and I can make the CMD646ATA fail during its start method similar to the way that QEMU does by commenting out the IDE interface IRQ entry from the "interrupt-map" property. This seems to support my theory that the problem is related to interrupt mapping.
Looks very similar to sparc64/sun4u problems I struggled ~ a half a year ago.
Great - thanks for the insight!
Now AIUI g3beige is an "Old World" Mac and so the interrupt information should be held in the "AAPL,interrupts" property. I've verified that both QEMU and OpenBIOS calculate the irq_line in the same way (based upon device id), however I do see that some of the "AAPL,interrupts" values contain more than one integer. I wonder what this is supposed to represent?
Could it be that the irq line is wired to the interrupt controller not as a PCI irq line? Similarly to the sun4u machines? Have you looked in the Linux/PPC cmd646 driver for the insights?
I've checked in the QEMU/OpenBIOS source that the PCI irq_line is set correctly, and that does go through a Grackle <-> PCI IRQ mapping function so I would think it is okay.
Aside from ProgrammingKid's comments, AFAICT from my test images here the Linux CMD64x driver appears to be working okay - at least the driver loads and manages to probe the CDROM correctly.
ATB,
Mark.