Deprecating / Removing floppy drive support

Cy Schubert Cy.Schubert at komquats.com
Mon Dec 4 00:23:33 UTC 2017


In message <20171204092457.I961 at besplex.bde.org>, Bruce Evans writes:
> On Sun, 3 Dec 2017, Warner Losh wrote:
>
> > On Sun, Dec 3, 2017 at 1:05 PM, Cy Schubert <Cy.Schubert at komquats.com>
> > wrote:
> >
> >> In message <201712031655.vB3GtIME041023 at pdx.rh.CN85.dnsmgr.net>, "Rodney
> >> W.
> >> Gri
> >> mes" writes:
>
> The inner quoting is more broken than usual (split in the middle of
> rgrimes' name).
>
> >>> **RANT ON**
> >>>
> >>> Data point:  OpenBSD still supports install from floppies.. so
> >>> my guess is that OpenBSD has been able to keep this code running,
> >>> it is a "Sad State of Affairs" that FreeBSD with 300+ developers
> >>> can not manage the same.  As Eitan pointed out, its only a 1000
> >>> lines so of code.   Really now, we can manage to keep the mass
> >>> of clang and zfs running, but we can not keep a 1000 line fdc.c
> >>> running?
>
> Actually 5000+ lines of code: at least:
> - 2835 lines in dev/fdc
> - 195 lines in sys/fdcio.h
> - 335 lines in man4/fdc.4
> - 2578 lines in fdcontrol, fdformat, fdread and fdwrite
>
> > The floppy driver itself is fine. It relies, however, on ISADMA working. It
> > got broken and nobody noticed. Also, FreeBSD has SMP while OpenBSD does
> > not, so that's been a much larger code velocity over all.
> >
> > Reading works OK. It's writing that fails. So this datapoint is consistent
> > with my experience. There's other issues that need to be fixed apart from
> > ISADMA, but those are minor in comparison.
>
> ISADMA worked for writing by fdformat and cp of 1 floppy under -current here.
> I used a UP i386 system with 1GB.  If the bug only affects SMP, and64 or
> large memory, then it is easy to work around by not using these.  Memory
> above 4GB is especially easy to avoid using a boot option.

The following on a my amd64 testbed while writing. 

bob# dmesg
g_vfs_done():fd0[READ(offset=184320, length=512)]error = 5
bob# uname -a
FreeBSD bob 12.0-CURRENT FreeBSD 12.0-CURRENT #10 r326456M: Sat Dec  2 
00:54:10 PST 2017     root at bob:/export/obj/opt/src/svn-current/amd64.amd64/s
ys/BREAK  amd64
bob# sysctl hw.realmem
hw.realmem: 5368709120
bob# 

You are right Bruce. Using the same machine but with FreeBSD-12 i386 it 
works perfectly.

bob# uname -a
FreeBSD bob 12.0-CURRENT FreeBSD 12.0-CURRENT #8 r326456M: Sat Dec  2 
07:42:12 PST 2017     root at bob:/export/obj/opt/src/svn-current/i386.i386/sys
/BREAK  i386
bob# 

I think the todo here is either a) fix fdc(4) to work on amd64 or b) remove 
fdc(4) from GENERIC on amd64.

>
> >> I've spent some time thinking about this while cleaning up the yard of old
> >> leaves today. All three of my machines downstairs still have fdc(4)
> >> controllers and take a poke at it.
> >>
> >> USB floppy does also work. The ufdformat USB floppy format (not yet
> >> committed, thank you bms@) also works in 12 (it didn't in 7 due to borked
> >> USB in 7). I've yet to decide whether to commit it as is or merge it into
> >> the existing fdformat.
> >
> > I'd commit it as is (ufdformat). It's functionality is quite a bit
> > different because the CDBs are much less expressive than the full NEC 765
> > chip supports (which is itself a subset of what you can do on a floppy, but
> > I digress).
>
> So usb floppy drives can't even duplicate fdformat's functionality?
> There is also hard to replace functionality in other utilites.

Not at the moment but I plan on committing a USB version of fdformat when 
it passes review. It works perfectly using a TEAC FD-05PUW 3000.


-- 
Cheers,
Cy Schubert <Cy.Schubert at cschubert.com>
FreeBSD UNIX:  <cy at FreeBSD.org>   Web:  http://www.FreeBSD.org

	The need of the many outweighs the greed of the few.




More information about the freebsd-arch mailing list