Re: 2.6.8-rc4-mm1 doesn't boot

From: Len Brown
Date: Thu Aug 12 2004 - 17:50:23 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/