Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Dec 2004 01:51:08 -0800 (PST)
From:      Dan Strick <strick@covad.net>
To:        freebsd-stable@freebsd.org
Subject:   painful delay during 5.3 boot
Message-ID:  <200412080951.iB89p8t6000555@mist.nodomain>

next in thread | raw e-mail | index | archive | help
(I am posting this message to freebsd-stable because release 5.3 is
allegedly now stable and freebsd-current is now beginning to concern
itself with things that will belong to release 6.0.  Let me know if
another mailing list would be more appropriate.)

When FreeBSD 5.3-RC1 was being tested I reported (in freebsd-current)
a problem with the kernel pausing for about 2 minutes in the middle of
the auto-configuration monologue.  It was suggested that the problem was
that the floppy driver mistakenly thought there was a diskette in the
driver and kept probing it until some retry limit was exceeded.
Someone suggested that I add some extra diagnostic code to the driver
and report what it wrote during bootstrap.  I did that and there were
no further postings about the issue in freebsd-current.  A couple of
release candidates later the problem went away and I assumed it was
fixed.

The problem just resurfaced when I built a custom 5.3 kernel.  It turns
put that the problem was never fixed.  The kernel on the 5.3 release
installation disk now just rejects the floppy drive when it configures
the floppy controller and the system comes up without the floppy drive,
something I didn't notice because I was doing a CD installation.

This is what the installation CD kernel says about the floppy during
a verbose boot:

    fdc0: <floppy drive controller> port 0x3f7,0x3f0-0x3f5 irq 6 ...
    fdc0: does not respond
    device_attach: fdc0 attach returned 6

For reasons I don't understand, the custom 5.3 kernel I built is more
tolerant.  When it probes the floppy controller during a verbose boot
it says:

    fdc0: <floppy drive controller> port 0x3f7,0x3f0-0x3f5 irq 6 ...
    fdc0: ic_type 90 part_id 80 
    fdc0: [MPSAFE]
    fdc0: [FAST]
    fd0: <1440-KB 3.5" drive> on fdc0 drive 0

and later spends about 120 seconds trying to read a nonexistent
diskette after writing these lines:

    ioapic0: routing intpin 19 (PCI IRQ 19) to cluster 0
    ioapic0: routing intpin 21 (PCI IRQ 21) to cluster 0
    ioapic0: routing intpin 22 (PCI IRQ 22) to cluster 0

and before writing these lines:

    GEOM: new disk ad0
    GEOM: new disk ad1
    GEOM: new disk ad4

I know the problem is with the floppy drive because the floppy activity
light comes on during the 120 second pause and because popping a floppy
diskette into the drive makes the system wake up and finish booting.

I am pretty sure the problem is new in FreeBSD 5.3.  I don't recall
having this problem in any previous release (including 5.1 and 5.2)
and I boot release 4.10 every day without the agonizing pause.

Could this be due to a floppy hardware problem?  (How can I tell?
Is there any documentation anywhere about the PC floppy disk controller
interface?)  The floppy disk drive seems to work correctly.

Dan Strick



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200412080951.iB89p8t6000555>