(A bit of background: I have an O350 netbooting, accessing its hard drive, keeping track of the time of day, and so on. Basically mostly working in single-processor mode, though serial is untested, the PS/2 keyboard/mouse ports are unsupported, the only use of the L1 is as a console device, and so on. I have an O300 that is not extremely far behind, but definitely needs some more work, and I'm still buying more hardware to work with.)
First off, I'm not (yet?) using the IOC3 Metadriver, just the IP27 drivers.
Second, that "just add $n$ to the IRQ number" idea is horrifically broken in a modern Linux kernel (dynamically-allocated IRQ numbers, after all). It probably works on IP30 because of the pcibr driver allocating numbers for all eight IRQ pins at once. Next thing we know, it'll turn out to vary depending on which type of system or expansion card the IOC3 is in.
Third, I misremembered. My notes say that it's a conflict between the SCSI controller and the USB host controller leading to lost interrupts, not the IOC3. Which isn't to say that there's not an IOC3 IRQ issue still, but that it's not at the level of "known IRQ conflict"... yet, if ever.
Fourth, none of the MIPS Bridge/XBridge/PIC drivers, even for IP30, support all of the song and dance involved with shared IRQs, or the mapping of interrupt lines other than INTA.
Fifth, while I have a plan of attack for sorting out my IRQ issues, currently it only affects my O300, so it's not a huge critical thing for me right now.
Sixth, Ralf was suggesting switching to IRQ domains...
Hrm... I wonder if we could do that to get better support with the VPro driver? Although first I'd need to get a working VPro machine...
Kumba wrote:Not to threadjack, but IOC3 IRQ conflict? IIRC, at least on Octane with the Metadriver, IOC3 should be requesting two IRQs, one for ethernet, and ethernet+2 for I/O by kb/mouse. Serial uses a UART polling hack built into 8250 core to run the serial ports for now (by telling it to use IRQ 0), but the end goal would be to make the Altix DMA-capable IOC3 driver work.nyef wrote: For that matter, I still don't have any "fully working" MIPS64 Linux systems quite yet (by which I mean with a working bootloader, and SMP if it's not a Fuel, and there's that IOC3 IRQ conflict, and if it is a Fuel or Tezro then the graphics card driver, and then there's the L1 controller stuff...).
First off, I'm not (yet?) using the IOC3 Metadriver, just the IP27 drivers.
Second, that "just add $n$ to the IRQ number" idea is horrifically broken in a modern Linux kernel (dynamically-allocated IRQ numbers, after all). It probably works on IP30 because of the pcibr driver allocating numbers for all eight IRQ pins at once. Next thing we know, it'll turn out to vary depending on which type of system or expansion card the IOC3 is in.
Third, I misremembered. My notes say that it's a conflict between the SCSI controller and the USB host controller leading to lost interrupts, not the IOC3. Which isn't to say that there's not an IOC3 IRQ issue still, but that it's not at the level of "known IRQ conflict"... yet, if ever.
Fourth, none of the MIPS Bridge/XBridge/PIC drivers, even for IP30, support all of the song and dance involved with shared IRQs, or the mapping of interrupt lines other than INTA.
Fifth, while I have a plan of attack for sorting out my IRQ issues, currently it only affects my O300, so it's not a huge critical thing for me right now.
Sixth, Ralf was suggesting switching to IRQ domains...
Kumba wrote:Apparently so. I was digging into my chat logs from 2004, and Stan used a patched strace to monitor Xsgi calls to MGras, which helped him figure out some of the DMA bits needed to write the Impact driver. I don't think he ever released that patch, though. Would probably be useful for a lot of things outside of Linux porting.nyef wrote: Second, can we use strace against Xsgi on IRIX itself to any useful purpose?
Hrm... I wonder if we could do that to get better support with the VPro driver? Although first I'd need to get a working VPro machine...