Re: [BUG] pnpbios breaks floppy support

From: Robert Hancock
Date: Sun Feb 01 2009 - 02:08:49 EST


Philippe De Muyter wrote:
Hello linux experts,

Today I tried to upgrade a PC's kernel from 2.6.11 to 2.6.22, and
I saw some strange messages when booting :

Floppy drive(s): fd0 is 1.44M
floppy0: Floppy io-port 0x03f2 in use

Previously, I had :

Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077

Needless to say, my floppy hardware works perfectly, and my floppy
was usable with the old kernel, while the floppy is now inaccessible
with the new kernel. Even /dev/fd0 does not exist anymore.

Searching for a cause to that problem, I saw the following messages
before the floppy probe in the new kernel :

PnPBIOS: Scanning system for PnP BIOS support...
PnPBIOS: Found PnP BIOS installation structure at 0xc00fd5e0
PnPBIOS: PnP BIOS version 1.0, entry 0xf0000:0x5ba3, dseg 0xf0000
PnPBIOS: 17 nodes reported by PnP BIOS; 17 recorded by driver
[...]
pnp: 00:07: ioport range 0x3f0-0x3f1 has been reserved
pnp: 00:07: ioport range 0x3f3-0x3f3 has been reserved
[...]

Searching the web and the outdated pnp kernel documentation, I
finally found an option to add to my kernel parameters line :

pnpbios=off

Now my floppy works again, but I am not really satisfied.

What do I loose with the 'pnpbios=off' option ?

Isn't there a smoother option to allow pnpbios but avoiding to reserve
floppy's io-ports ?

Should I modify rather /drivers/block/floppy.c or /drivers/pnp/*.c
to make pnpbios and floppy driver coexist peacefully ? And is there
an example of such modifications for other standard peripherals ?

Presumably the problem is that your BIOS marks the IO ports used by the floppy controller as reserved which prevents the floppy driver from binding to them. (2.6.11 probably was before we even processed PnP reserved regions.)

I think we now have handling for the case where the reservations overlap PCI devices, but I think it's the first I've heard of them overlapping the floppy IO ports..
--
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/