Re: No more floppy drive

From: Nate Lawson <nate_at_root.org>
Date: Mon, 30 Aug 2004 09:32:08 -0700
M. Warner Losh wrote:
> In message: <412D1CE6.3050603_at_root.org>
>             Nate Lawson <nate_at_root.org> writes:
> : M. Warner Losh wrote:
> : > In message: <20040825222345.GB79209_at_ip.net.ua>
> : >             Ruslan Ermilov <ru_at_freebsd.org> writes:
> : > : On Wed, Aug 25, 2004 at 04:17:33PM -0600, M. Warner Losh wrote:
> : > : > Generally one doesn't want ANY hints when one has pnpisabios or acpi
> : > : > supplying the hints, unless one really does have an exceptional device
> : > : > at that location.
> : > : > 
> : > : A lot of current_at_ users report missing /dev/fd0 due to this.  Can this
> : > : be fixed somehow?
> : > 
> : > acpi should be providing these hints, but it appears that either that
> : > code isn't working, hasn't been committed or there's no fallback to
> : > more traditional methods when there's no information about fd drives.
> : > This is one of the twistiest, nastiest, ugliest part of PCAT :-(
> : 
> : The code I added merely does:
> : 
> : if (_FDE working)
> :      add fd[0-2] children accordingly
> :      if (fdX._FDI working)
> :          set type on fdX
> : else
> :      unmodified hints probe for fd[0-2]
> : 
> : if (fdX type not set)
> :      unmodified drive type probe via rtc
> : 
> : Since the probe is unmodified if _FDE is not present, I can't see a new 
> : problem here.  If this is a new problem, it must be elsewhere.
> 
> I'll take a look at things.  I think it may have to do with
> presence/absence things.
> 
> Warner

Ok, as suspected, our floppy driver is being overly ambitious in 
allocating IO ports.  See these messages for how it was solved in Linux 
(and Windows).

http://www.ussg.iu.edu/hypermail/linux/kernel/0202.0/1286.html
http://www.ussg.iu.edu/hypermail/linux/kernel/0202.0/1603.html
http://www.ussg.iu.edu/hypermail/linux/kernel/0202.0/1606.html

Basically, systems that have AML that claim 0x3f2-0x3f5,0x3f7 are 
correct and we need to only allocate those ports.  In fact, we shouldn't 
allocate 0x3f0-0x3f1 unless on a PS/2 system.  However, our floppy code 
assumes a base of 0x3f0 and that's why people report error messages like:

fdc0: <floppy drive controller> port 0x3f7,0x3f4-0x3f5,0x3f2-0x3f3
       irq 6 drq 2 on acpi0
fdc0: output ready timeout
fdc0: cmd 3 failed at out byte 1 of 3
device_attach: fdc0 attach returned 6

-Nate
Received on Mon Aug 30 2004 - 14:32:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:09 UTC