Messages in this thread | | | Subject | Re: 2.6.8-rc4-mm1 doesn't boot | From | Len Brown <> | Date | 12 Aug 2004 18:43:00 -0400 |
| |
On Thu, 2004-08-12 at 17:50, Bjorn Helgaas wrote: > On Wednesday 11 August 2004 3:32 pm, Len Brown wrote: > > I've never understood this floppy IRQ6 business. > > Apparently it requests IRQ6, but doesn't show up in /proc/interrupts > > floppy_init() requests IRQ6, but then frees it before returning. It > looks like the driver only holds onto it while the device is actually > open, which explains why it doesn't usually show up in > /proc/interrupts.
ah, the mysterious floppy.c -- explained;-)
> Len later wrote: > > I assert it is a BIOS bug for the BIOS to set LNKD to > > IRQ6 if there is a floppy present and enabled; but fair > > game if there is no floppy. Though perhaps floppy.c > > doesn't understand that. > > Adrian has the floppies disabled in the BIOS, so maybe it's > legit to use IRQ6 for the NIC PCI interrupt. But floppy.c > doesn't check for anything like that as far as I can see. > > The fact that floppy.c seems to be able to poke the controller > and get an interrupt back (with "pci=routeirq") suggests to me > that the floppy controller responds even when disabled in the > BIOS, and that it actually expects IRQ6 to be level-triggered, > but the BIOS is leaving it configured as edge-triggered.
I expect that the the bug is that floppy.c, like other motherboard devices, should take advantage of ACPI for device resource enumeration. This is one of the gaps I described at OLS, and it is embodied in this bug report: http://bugzilla.kernel.org/show_bug.cgi?id=2733
My expectation is that if the SETUP option is changed to enable the floppy (the controller is probably burried inside an LPC super-io or south bridge, even if there is no physical drive in the box) Then we should see
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 *6 7 10 11 12 14 15) turn into
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 10 *11 12 14 15)
with the * moving off of 6 (11 in this example) showing that the BIOS selected a different active IRQ for this link.
Or even ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 7 10 *11 12 14 15)
Where IRQ6 is not in the possible-list, which would prevent Linux from setting the device to that IRQ even if we wanted to. (and again, the '*' on some other IRQ, 11 in this example)
Adrian, if you enable your not-present floppy in the BIOS, what does Linux do?
thanks, -Len
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |